HERE SDK を最適化します
この 最適化ガイド では、 HERE SDK のサイズを縮小し、ロードまたは処理する必要のあるデータを削減してランタイムの動作を最適化するためのオプションをいくつか示します。
機能の設定は、次のアプリケーションアップデートのインストール後にを呼び出して更新でき mapUpdater.performFeatureUpdate()
ます。 AndroidManifest
ファイル内の機能設定が更新されたら、このメソッドを呼び出します。
その結果、キャッシュされたマップ データ が削除され、その後更新されます。 また、ダウンロードしたリージョンが更新され、変更内容が反映されます。
アップデートをいつ実行するかは開発者の責任で決定してください。 HERE SDK は、このような更新がいつ行われるかを決定または通知しません。 performFeatureUpdate()
の呼び出しは、アプリケーションが更新された後で 1 回のみ必要です。 開発者が機能の設定を変更していない場合は、この関数を呼び出す必要はありません。
注
SearchEngine
や RoutingEngine
などのエンジン では、キャッシュされた、またはダウンロードされたマップ データは使用されません。 関連する機能が無効になっていない場合、OfflineSearchEngine
および OFflineRoutingEngine
のみがこのようなデータを使用します。 たとえば、アプリがオンラインで完全に動作することが確実な場合は、オフライン検索機能を無効にしても安全です。 ただし、一時的に接続が失われたときにアプリ が POI を検索できるようにする OfflineSearchEngine
場合は、そのような失われた POI を検出したときににに切り替えることができます。そのため、関連する機能を無効にしないでください。
上記のように、一部の無効化された機能については、デバイスがオンライン接続され、機能が必要な場合に、デバイスが対応するデータをダウンロードすることがあります。 たとえば、「 landmarks_3d 」機能が無効になっているが、対応する MapScene
レイヤーが有効になっている場合 MapView
、デバイスは、ビューポイント で 3D ランドマークが表示されたときに、必要なテクスチャをダウンロードして 3D ランドマークをレンダリングします。
「 offline_search 」と「 offline_routing 」を除く、上記のすべての一覧表の機能について、 HERE SDK はまず必要なデータがキャッシュで利用可能かどうかを確認します。 オフライン Region
で使用するためにダウンロードされたがあるかどうかが確認されます。 見つからない場合、 HERE SDK は必要なデータをワイヤレスでダウンロードしようとします。 "offline_search" と "offline_routing" の場合、動作は同じですが、 AIR 経由ではデータは要求されません。
未使用の音声を削除します
未使用の音声ガイダンスファイルを削除することで、 HERE SDK のサイズを削減できます。
これらのファイルは、テキスト / スピーチボイスメッセージでターン・バイ・ターンナビ (矢印ナビ) を使用する場合にのみ必要です。
未使用のファイルを削除するには、次の操作を行います。
- HERE SDK フレームワークを展開し
assets/voice_assets
、フォルダを検索します。 - フレームワークのサイズを縮小する場合は、不要な音声パッケージを削除できます。
- Android Studio を使用して AAR を再アーカイブします。
HERE サポートされているすべての音声言語のリストと、 HERE SDK フレームワーク内に保存されている関連する音声スキンの名前を見つけることができます。
未使用のフォントを削除します
未使用のフォントを削除することで、 HERE SDK のサイズを削減できます。 これについては、 HERE で説明します。
ABI 分割
サイズ管理 : ABI 分割を使用すると、 HERE SDK AAR バイナリファイルのサイズを削減できます。 その結果、アプリケーションが使用するデバイスのストレージ容量が少なくなります。
デフォルトでは、 HERE SDK 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
、 すべての Abis を含むユニバーサル APK も生成されますが、これは明らかにはるかに大きくなります。
splits
Gradle ブロックの詳細について は、「 Abis 用に複数の 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
に指定できます。