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

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

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

Android App Bundle としてアプリをビルドしてデプロイすると、特定の画面解像度、特定の CPU アーキテクチャ、特定の言語用の APK が Google Play によって自動的に生成されるようになります。これにより、ユーザーは自分の端末の構成に適合する APK のみをダウンロードできるようになります。また、非常に重要な点として、ユーザーは自分の端末のアーキテクチャに適合するネイティブ コード ライブラリのみをダウンロードするだけで済みます。

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

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

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

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'
      }
  }
}