ML Kit Android アプリの APK のサイズを小さくする

ML Kit オンデバイス モデルを使用するアプリを本番環境にデプロイする前に、このページの推奨事項に従って、アプリのダウンロード サイズを小さくすることを検討してください。

アプリを Android App Bundle としてビルドする

アプリを Android App Bundle としてビルドしてデプロイします。これにより、Google Play が特定の画面密度、CPU アーキテクチャ、言語用の APK を自動的に生成できるようになります。ユーザーは、デバイス設定に一致する APK をダウンロードするだけで済みます。最も重要な点として、ユーザーはデバイスのアーキテクチャに一致するネイティブ コード ライブラリのみをダウンロードします。

高度: オプションの ML 特徴を動的機能モジュールに移行する

アプリの主な目的ではない機能で ML Kit を使用する場合は、アプリをリファクタリングして、その機能とその ML Kit の依存関係を動的機能モジュールに移動することを検討してください。

ML Kit の機能をオンデマンド機能モジュールで動作させるには、ベース APK の build.gradle ファイルに、ML Kit プレイストアの動的機能サポート ライブラリの依存関係を含めます。

dependencies {
    // ...
    implementation 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta2'
}

これにより、ユーザーが不必要にアプリの ML モデル(大容量のもの)をダウンロードすることを防止できます。

高度: 未使用の ML Kit バイナリを除外する

ML Kit は、32 ビットと 64 ビットの両方のアーキテクチャをサポートするように構築されています。アプリが 32 ビットモードのみをサポートしている場合(たとえば、32 ビットバイナリのみを提供するライブラリを使用している場合)は、未使用の ML Kit ライブラリをビルドから除外できます。

android {
  defaultConfig {
      ndk {
          // Don't package arm64-v8a or x86_64
          abiFilters 'armeabi-v7a', 'x86'
      }
  }
}