HERE SDK の最適化

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

機能設定を使用

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

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

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

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

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

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

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

この DETAIL_RENDERING フィーチャーは Headless Editionには関連していません。

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

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

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

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

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

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

機能設定を更新

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

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

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

未使用の音声を削除

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

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

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

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

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

未使用のフォントを削除

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

ABI 分割

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

デフォルトでは、 HERE SDK for Android には次のABIが含まれています。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を使用することを検討してください。

その他のオプション

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

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

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

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