HERE SDK の最適化

この 最適化ガイド では、 HERE SDK のサイズを縮小し、ロードまたは処理する必要のあるデータを削減してランタイムの動作を最適化するためのオプションをいくつか示します。

機能設定を使用

LayerConfiguration を設定すると 、MapViewをパンするとき、またはオフラインで使用するために新しい Region をダウンロードするときに、キャッシュにロードするマップ データの量を指定できます。 たとえば、ターン・バイ・ターンナビ (矢印ナビ)などのフィーチャーがアプリケーションで使用されていない場合 、フィーチャーの設定のnavigation を削除できます。

その結果、MapView をパンすると、キャッシュにダウンロードされるデータ量が少なくなります。 さらに、新しいRegionをダウンロードすると、サイズが小さくなります。

LayerConfigurationSDKOptions.layerConfigurationを経由してアイテムのFeatureリストとして設定すると 、一覧表示され ているフィーチャーのみが有効になり、それ以外のフィーチャーはすべて 無効になります。 1 つのフィーチャーは1つのみを無効にする場合は、他のすべてのフィーチャーを有効にするか、または無効にする必要があります。

たとえば、フィーチャー・一覧に navigationTRUCK が含まれている場合、 ナビゲーション フィーチャーとトラックフィーチャーのみが有効になり、その他のフィーチャーはすべて無効になります。

Region が 初めてダウンロードまたはキャッシュされたときに、グローバルに設定されたのみLayerConfiguration が使用されます。 すでにダウンロードされているリージョンのLayerConfiguration を更新する場合は、リージョンを削除して再度ダウンロードするか、または mapUpdater.performFeatureUpdate() を呼び出します ( 以下のも参照 ) 。

現在、以下のフィーチャーを指定できます。 表には、デフォルトで有効になっているフィーチャーも表示されます。

フィーチャー 有効 説明
detailRendering はい 建物などの追加のレンダリングの詳細。 MapViewにのみ使用されます。 設定されていない場合、オフラインのリージョンをダウンロードするとき、またはそのようなデータが含まれているエリアをプリフェッチするときに、データが除外されます。 ただし、オンラインでの使用中には、このようなデータがキャッシュにダウンロードされて表示されることがあります。
navigation はい ナビゲーション中のマップマッチングに使用されるマップ データ。 設定されていない場合、オンラインまたはオフラインで使用しているときにナビゲーションが正しく動作しないことがあります。
offlineSearch はい 検索に使用されるマップ データ。 設定されていない場合、 OfflineSearchEngine を使用するとが正しく動作しないことがあります。
offlineRouting はい ルートの計算に使用されるマップ データ。 設定されていない場合、 OfflineRoutingEngine を使用するとが正しく動作しないことがあります。
truck はい トラックルートの計算に使用されるマップ データ。 設定しないと、 OfflineRoutingEngine を使用してトラックルートを計算するときにが正しく動作しないことがあります。 トラックナビゲーション中の地図の一致にも使用されます。 設定しないと、オフラインで使用しているときにトラックナビゲーションが正しく動作しないことがあります。 オンライントラックナビゲーションは、デバイスがオンライン接続されている場合でも機能します。
landmarks3d いいえ テクスチャ付き 3D ランドマークのレンダリングに使用されるマップ データ。 設定されていない場合、オフラインのリージョンをダウンロードするとき、またはそのようなデータが含まれているエリアをプリフェッチするときに、データが除外されます。 LANDMARKSレイヤーがMapSceneに対して表示されるように設定されている場合、3D ランドマークはオンライン使用中にも表示されます。
junctionView3x4, junctionView16x9 いいえ 複雑な交差点に適した 3D ビジュアル。 このアセットデータは、ガイダンス中に SVG 画像を表示するために使用できます。 有効にすると、ダウンロードされたリージョンに、対応する JunctionViewWarning イベントで使用される交差点表示イメージが含まれます。 これは、旅程を開始する前にアセットをダウンロードする場合に役立ちます。 有効になっていない場合、必要なデータが必要なときにダウンロードされます。 各イメージは最大 15 MB を使用できます。 HERE SDK の今後のリリースでは、リアルさのレベルを下げることでサイズが最適化されることに注意してください。 デフォルトでは、レイヤーは有効になっていません。
junctionSign3X4junctionSign4X3junctionSign3X5、、 junctionSign5X3 junctionSign16X9 いいえ 署名者のビジュアル。 このアセットデータは、ガイダンス中に SVG 画像を表示するために使用できます。 有効にすると、ダウンロードされたリージョンに、対応する SignpostWarning イベントで使用される交差点表示イメージが含まれます。 有効になっていない場合、必要なデータが必要なときにダウンロードされます。 各イメージは最大 300 KB を使用できます。 有効になっていない場合、必要なデータが必要なときにダウンロードされます。 デフォルトでは、レイヤーは有効になっていません。
rendering はい Carto POI などの基本的なレンダリングフィーチャーのセット。 ベースレイヤーとして、このフィーチャーを無効にすることはできません。
traffic はい RDS-TMC 形式を使用してトラフィックブロードキャストフィーチャーを提供するマップ データ。 インターネット接続がない場合に使用して、ルーティングモジュールが無線チャネル経由で送信されるトラフィックデータを利用して、OfflineRoutingEngineを使用してルートを作成できるようにします。
ev いいえ EV 充電ステーションのオフライン マップデータ。
truckServiceAttributes いいえ トラックに関連する属性をOfflineSearchEngineから戻すことができます。
fuelStationAttributes いいえ OfflineSearchEngineによって燃料属性が返されるようにします。
offlineBusRouting いいえ バスルートの計算に使用されるマップ データ。 設定されていない 場合 、 OfflineRoutingEngineBusOptionsでルートを計算できないことがあります。
terrain いいえ 地形データを表すために使用されるマップ データ 。

一覧表示されている各フィーチャーは、 1 つ以上の OCM レイヤーグループに関連しています。 OCM レイヤーグループの名前は、 API リファレンス のフィーチャーごとに確認できます。 ただし、ほとんどのユースケースの場合、関連する OCM レイヤー名を知っていても関連ありません。

さらに、 HERE SDK エディションで現在使用するのに適していない 2 つのレイヤーADASEHORIZON(電子ホライズン)があります。これらのレイヤーは現在は無視してかまいません。 デフォルトでは、これらはすでに無効になっています。

フィーチャーが無効になっている場合、そのフィーチャーに必要なデータがキャッシュ内のスペースまたはダウンロードRegion の一部 としては使用されません。 また、フィーチャーをオフラインで使用することはできません。 また、offlineSearchが無効になっているのにOfflineSearchEngineを使おうとした場合など、エラーが発生することもあります。詳細については、以下を参照してください。

SearchEngineRoutingEngine などのエンジン では、キャッシュされた、またはダウンロードされたマップ データは使用されません。 関連するフィーチャーが無効になっていない場合、OfflineSearchEngine および OfflineRoutingEngine のみがこのようなデータを使用します。 たとえば、アプリがオンラインで完全に動作することが確実な場合は、オフライン検索フィーチャーを無効にしても安全です。 ただし、一時的に接続が失われたときにアプリ が POI を検索できるようにする 場合は、そのような失われた POI を検出したときににOfflineSearchEngine に切り替えることができます。そのため、関連するフィーチャーを無効にしないでください。

上記のように、一部の無効化されたフィーチャーについては、デバイスがオンライン接続され、フィーチャーが必要な場合に、デバイスが対応するデータをダウンロードすることがあります。 たとえば、このlandmarks3d フィーチャーが無効になっていても、対応するレイヤーMapScene が有効になっている場合、デバイスは必要なテクスチャをダウンロードして 、 3D ランドマークがMapViewのビューポイントに表示されたときにレンダリングします。

上記のすべてのフィーチャについて、 offlineSearch およびofflineRoutingを除き、 HERE SDK はまず、必要なデータがキャッシュで利用可能かどうかを確認します。 オフラインで使用するためにダウンロードされたRegion があるかどうかが確認されます。 見つからない場合、 HERE SDK は必要なデータをワイヤレスでダウンロードしようとします。 offlineSearchofflineRoutingの動作は同じですが、ワイヤレスではデータは要求されません。

機能設定を更新

機能の設定は、次のアプリケーションアップデートのインストール後にを呼び出して更新でき mapUpdater.performFeatureUpdate()ます。 AndroidManifest/file で機能設定が更新されたら、このメソッドを呼び出しPList ます。

その結果、キャッシュされたマップ データ が削除され、その後更新されます。 また、ダウンロードしたリージョンが更新され、変更内容が反映されます。

アップデートをいつ実行するかは開発者の責任で決定してください。 HERE SDK は、このような更新がいつ行われるかを決定または通知しません。 performFeatureUpdate() の呼び出しは、アプリケーションが更新された後で 1 回のみ必要です。 開発者がフィーチャーの設定を変更していない場合は、この関数を呼び出す必要はありません

未使用の音声を削除

未使用の音声ガイダンスファイルを削除することで、 HERE SDK のサイズを削減できます。

これらのファイルは、テキスト / スピーチボイスメッセージでターン・バイ・ターンナビ (矢印ナビ) を使用する場合にのみ必要です。

未使用のファイルを削除するには、次の操作を行います。

Android の場合 :

  • HERE SDK フレームワークを展開し 、フォルダassets/voice_assetsを検索
  • フレームワークのサイズを縮小する場合は、不要な音声パッケージを削除
  • Android Studio を使用して AAR を再アーカイブ

iOS の場合 :

  • heresdk.frameworkの内部でフォルダios-arm64/voice_assetsを開き、不要な音声パッケージを削除します。

ここで サポートされているすべての音声言語のリストと、 HERE SDK フレームワーク内に保存されている関連する音声スキンの名前を見つけることができます。

未使用のフォントを削除

未使用のフォントを削除することで、 HERE SDK のサイズを削減できます。 これについては、 ここで説明します。

Android の ABI スプリット

サイズ管理 : ABI 分割を使用すると、 HERE SDK AAR バイナリファイルのサイズを削減できます。 その結果、アプリケーションが使用するデバイスのストレージ容量が少なくなります。

デフォルトでは、HERE SDKには次のAbis for Androidが含まれています。armeabi-v7a, arm64-v8a (主にデバイスに使用)、, x86( x86_64 主にエミュレータに使用)。 ABIスプリットを有効にして、アプリケーションをビルドできます armeabi-v7a arm64-v8a 。たとえば、またはアーキテクチャのみを対象としています。

これを行うには、アプリ build.gradle のファイルを変更します。

android {
  (...)
  splits {
    abi {
      enable true
      reset()
      include 'x86_64', 'arm64-v8a' // Choose what you need.
      universalApk false
    }
  }
  (...)
}

./gradlew assembleRelease コマンド ライン から実行すると、次の 2 つの APK が生成されます。 app-x86_64-release.apk および app-arm64-v8a-release.apk。 各 APK には必要な ABI のみが含まれているため、サイズは大幅に小さくなります。 splits ブロックをuniversalApk trueに設定変更すると 、すべてのABIを含むユニバーサル APK も生成されますが、これは明らかにはるかに大きくなります。

splits Gradle ブロックの詳細について は、「 ABI 用に複数の APK を設定する」を参照してください。

デフォルトでは、HERE SDK for releaseでビルドされたAPKは、アプリの機能に応じて103 MB以上になります。 そのため、Playストアでアプリをリリースするには、ABIスプリットまたは Android App Bundles(AAB)のいずれかを使用する必要があります。 現時点では、PlayストアはAPKを100 MBに制限しており、ABBの制限は150 MBに制限されています。 選択したアーキテクチャのABIスプリットを介して構築された複数のAPKを維持したくない場合は、代わりにABBを使用することを検討してください。

iOS のファットバイナリ

iOS向けHERE SDKフレームワークは 、デバイス(arm64) シミュレータ(x86_64)用に構築されたファットバイナリです。 したがって、両方のアーキテクチャが含まれています。 これにより、シミュレータ 実際のデバイスに簡単に導入できます。 また、Xcodeのクラッシュを象徴するデバッグシンボルも含まれています。

HERE SDK フレームワークは Apple の XCFramework バンドルタイプ (XCFW) に準拠しているため、アプリの配布に使用できます。 Xcode で は、アプリに署名する開発チームを選択し、 汎用 iOS デバイス を選択 して 、 [ 製品 ] -> [ アーカイブ] を選択する必要があります。

ターゲットデバイス用にエクスポートされたアプリ(つまり、結果のIPA)のバイナリサイズは、占有するスペースが少なくなります。 不要なファイルを手動で削除することもできます。 ただし、アーカイブ時に明示的に除外しない限り、IPAにはすべてのアーキテクチャが含まれていることに注意してください。 デバイス上の実際のサイズははるかに少ないスペースを占有し、Appleは必要なアーキテクチャのみを含めることを保証します。 したがって、App Storeからの実際のダウンロードサイズも はるかに小さくなります。 このXcodeガイドも参照してください。 そのため、App Storeを介してアプリをデプロイする場合は、HERE SDKフレームワークをそのまま使用することをお勧めします。デプロイプロセスの一部としてすべてのサイズの最適化が自動的に行われるためです。

その他のオプション

HERE SDK の最適化-その他のオプションは次のとおりです。

さらに、すべてのエンジンには、フィーチャーの設定方法を許可するいくつかのオプションが含まれています。 たとえば、SearchEngine を使用する場合、SearchOptionsを指定して、返される検索結果を制限できます。

」に一致する結果は 件です

    」に一致する結果はありません