HERE SDK の最適化
この 最適化ガイド では、 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
を指定して、返される検索結果を制限できます。