Riduci le dimensioni degli APK della tua app ML Kit per Android

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Prima di eseguire il deployment in produzione di un'app che utilizza un modello ML-device, ti consigliamo di seguire i consigli riportati in questa pagina per ridurre le dimensioni di download dell'app.

Creare un'app come Android App Bundle

Crea la tua app ed eseguine il deployment come Android App Bundle, in modo che Google Play possa generare automaticamente APK per densità dello schermo, architetture CPU e lingue specifiche. Gli utenti dovranno scaricare solo gli APK che corrispondono alla configurazione del dispositivo e, soprattutto, scaricare solo le librerie di codice native che corrispondono all'architettura del loro dispositivo.

Avanzato: spostamento delle funzionalità ML facoltative nei moduli di funzionalità dinamiche

Se utilizzi ML Kit in una funzionalità della tua app che non è il suo scopo principale, valuta la possibilità di refactoring dell'app per spostare tale funzionalità e le relative dipendenze di ML Kit in un modulo di funzionalità dinamiche.

Affinché le funzionalità di ML Kit funzionino in un modulo di funzionalità on demand, nel tuo file build.gradle di base dell'APK di base, includi la dipendenza della libreria di supporto delle funzionalità dinamiche del Play Store del ML Kit.

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

In questo modo, eviti che gli utenti scarichino inutilmente i modelli ML della tua app, che possono essere di grandi dimensioni.

Avanzate: escludi programmi binari di ML Kit non utilizzati

ML Kit è supportato con architettura sia a 32 bit che a 64 bit. Se la tua app supporta solo la modalità a 32 bit, ad esempio perché utilizzi una libreria che fornisce solo programmi binari a 32 bit, puoi escludere le librerie di ML Kit non utilizzate dalla build:

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