Un app bundle è diverso da un APK in quanto non puoi eseguirne il deployment dispositivo. È un formato di pubblicazione che include tutti i dati compilati della tua app codice e risorse in un singolo artefatto della build. Quindi, dopo aver caricato con un app bundle firmato, Google Play ha tutto ciò che serve per creare e firmare APK dell'app e pubblicarli per gli utenti.
Inizia
La maggior parte dei progetti di app non richiederà un impegno eccessivo per supportare Android App Bundle.
Questo perché il modulo che include codice e risorse per la base
L'APK è il modulo dell'app standard, che ricevi per impostazione predefinita quando
crea un nuovo progetto dell'app in Android Studio.
Vale a dire, il modulo che applica il plug-in application
di seguito ai propri
Il file build.gradle
fornisce il codice e le risorse per la funzionalità di base
della tua app.
Alla moda
// The standard application plugin creates your app's base module. plugins { id 'com.android.application' }
Kotlin
plugins { // The standard application plugin creates your app's base module. id("com.android.application") }
Oltre a fornire la funzionalità di base dell'app, il modulo di base fornisce inoltre molte configurazioni di build e voci manifest influiscono sull'intero progetto dell'app.
La configurazione della build del modulo di base
Per la maggior parte dei progetti di app esistenti, non è necessario modificare nulla nella configurazione di compilazione del modulo. Tuttavia, se stai prendendo in considerazione l'aggiunta moduli delle funzionalità per il tuo progetto dell'app o se in precedenza hai rilasciato l'app utilizzando più APK, ci sono alcuni aspetti relativi alla configurazione della build del modulo di base che dovresti tenere a mente.
Codice di versione e aggiornamenti delle app
Con Android App Bundle, non devi più gestire i codici di versione per più APK caricati su Google Play. Invece, gestire un solo codice di versione nel modulo di base dell'app, come mostrato di seguito:
// In your base module build.gradle file
android {
defaultConfig {
…
// You specify your app’s version code only in the base module.
versionCode 5
versionName "1.0"
}
}
Dopo aver caricato l'app bundle, Google Play utilizza il codice di versione nell'app modulo di base per assegnare lo stesso codice di versione a tutti gli APK da cui genera gruppo. In altre parole, quando un dispositivo scarica e installa la tua app, Gli APK dell'app condividono lo stesso codice di versione.
Se vuoi aggiornare l'app con nuovo codice o nuove risorse, devi aggiornare il codice di versione nel modulo di base dell'app e creare un nuovo app bundle completo. Quando carichi l'app bundle su Google Play, viene generato un nuovo insieme di APK. in base al codice di versione specificato dal modulo di base. In seguito, quando gli utenti aggiorna la tua app, su Google Play saranno disponibili le versioni aggiornate di tutti gli APK attualmente installato sul dispositivo. Ciò significa che tutti gli APK installati vengono aggiornati alla il nuovo codice di versione.
Altre considerazioni
- Firma dell'app: se includi informazioni per la firma nei file di build, dovresti includerlo solo nel file di configurazione della build del modulo di base. Per ulteriori informazioni, vedi Configura Gradle per firmare la tua app.
- Riduzione del codice:se vuoi
abilitare la riduzione del codice per il tuo
l'intero progetto dell'app (inclusi i moduli delle funzionalità), devi
quindi dal file build.gradle del modulo di base. Vale a dire che puoi
regole ProGuard personalizzate in un modulo delle funzionalità,
ma la proprietà
minifyEnabled
in caratteristica configurazioni di build del modulo vengono ignorate. - Il blocco
splits
viene ignorato:Gradle durante la creazione di un app bundle ignora le proprietà nel bloccoandroid.splits
. Se vuoi controllare i tipi di APK di configurazione supportati dall'app bundle, utilizza invece Daandroid.bundle
a disabilita i tipi di APK di configurazione. - Controllo delle versioni dell'app: il modulo di base determina il codice di versione e la versione l'intero progetto dell'app. Per ulteriori informazioni, vai alla sezione su come gestire gli aggiornamenti delle app.
Riattivare o disattivare i tipi di APK di configurazione
Per impostazione predefinita, quando crei un app bundle, questa supporta la generazione della configurazione
APK per ogni insieme di risorse linguistiche, risorse per la densità schermo e ABI
librerie. L'utilizzo del blocco android.bundle
nel
build.gradle
, come mostrato di seguito, puoi disattivare il supporto per uno o più
tipi di APK di configurazione:
Alla moda
android { // When building Android App Bundles, the splits block is ignored. // You can remove it, unless you're going to continue to build multiple // APKs in parallel with the app bundle splits {...} // Instead, use the bundle block to control which types of configuration APKs // you want your app bundle to support. bundle { language { // This property is set to true by default. // You can specify `false` to turn off // generating configuration APKs for language resources. // These resources are instead packaged with each base and // feature APK. // Continue reading below to learn about situations when an app // might change setting to `false`, otherwise consider leaving // the default on for more optimized downloads. enableSplit = false } density { // This property is set to true by default. enableSplit = true } abi { // This property is set to true by default. enableSplit = true } } }
Kotlin
android { // When building Android App Bundles, the splits block is ignored. // You can remove it, unless you're going to continue to build multiple // APKs in parallel with the app bundle splits {...} // Instead, use the bundle block to control which types of configuration APKs // you want your app bundle to support. bundle { language { // This property is set to true by default. // You can specify `false` to turn off // generating configuration APKs for language resources. // These resources are instead packaged with each base and // feature APK. // Continue reading below to learn about situations when an app // might change setting to `false`, otherwise consider leaving // the default on for more optimized downloads. enableSplit = false } density { // This property is set to true by default. enableSplit = true } abi { // This property is set to true by default. enableSplit = true } } }
Gestione delle modifiche alla lingua
Google Play determina quali risorse linguistiche installare con l'app in base all'app alla selezione della lingua nelle impostazioni del dispositivo dell'utente. Consideriamo un utente che cambia la lingua predefinita di sistema dopo aver già scaricato l'app. Se la tua app supporta quella lingua, il dispositivo richiede e scarica ulteriori di configurazione degli APK per le risorse linguistiche di Google Play.
Per le app che offrono un selettore lingua all'interno dell'applicazione e in modo dinamico
cambiare la lingua dell'app, a prescindere dall'impostazione della lingua a livello di sistema;
è necessario apportare alcune modifiche per evitare arresti anomali dovuti a risorse mancanti. Entrambi
Imposta la proprietà android.bundle.language.enableSplit
su false
oppure considera
implementare i download di lingue on demand utilizzando la libreria Play Core come
descritto in Download di risorse linguistiche aggiuntive