Plug-in Android per Gradle 3.3.0 (gennaio 2019)
Questa versione del plug-in Android richiede quanto segue:
Versione minima | Versione predefinita | Note | |
---|---|---|---|
Gradle | 4.10.1 | 4.10.1 | Per scoprire di più, consulta la sezione Aggiornare Gradle. Quando utilizzi Gradle 5.0 e versioni successive, la dimensione dell'heap di memoria del daemon Gradle predefinito diminuisce da 1 GB a 512 MB. Ciò potrebbe comportare una regressione delle prestazioni della build. Per ignorare questa impostazione predefinita, specifica le dimensioni dell'heap del daemon Gradle nel file gradle.properties del progetto. |
Strumenti di compilazione SDK | 28.0.3 | 28.0.3 | Installa o configura gli strumenti di creazione dell'SDK. |
Questo aggiornamento secondario supporta la compatibilità con nuove impostazioni predefinite e funzionalità per la visibilità dei pacchetti in Android 11.
Per informazioni dettagliate, consulta le note di rilascio della versione 4.0.1.
3.3.2 (marzo 2019)
Questo aggiornamento secondario supporta Android Studio 3.3.2 e include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco di correzioni di bug degne di nota, leggi il post correlato sul blog sugli aggiornamenti delle release.
3.3.1 (febbraio 2019)
Questo aggiornamento secondario supporta Android Studio 3.3.1 e include varie correzioni di bug e miglioramenti delle prestazioni.
Nuove funzionalità
-
Sincronizzazione migliorata del classpath: quando risolve le dipendenze nei classpath di runtime e di compilazione, il plug-in Android Gradle tenta di risolvere determinati conflitti di versioni downstream per le dipendenze che appaiono in più classpath.
Ad esempio, se il classpath di runtime include la libreria A versione 2.0 e il classpath di compilazione include la libreria A versione 1.0, il plug-in aggiorna automaticamente la dipendenza dal classpath di compilazione alla libreria A versione 2.0 per evitare errori.
Tuttavia, se il classpath del runtime include la libreria A versione 1.0 e la compilazione include la libreria A versione 2.0, il plug-in non esegue il downgrade della dipendenza dal classpath di compilazione alla libreria A versione 1.0 e riceverai un errore. Per scoprire di più, consulta Risolvere i conflitti tra i classpath.
-
Compilazione Java incrementale migliorata quando si utilizzano processori di annotazioni: Questo aggiornamento riduce il tempo di compilazione migliorando il supporto per la compilazione Java incrementale quando si utilizzano processori di annotazioni.
Nota: questa funzionalità è compatibile con Gradle 4.10.1 e versioni successive, ad eccezione di Gradle 5.1 a causa del problema 8194 di Gradle.
-
Per i progetti che utilizzano Kapt (la maggior parte dei progetti solo Kotlin e i progetti ibridi Kotlin-Java): la compilazione Java incrementale è abilitata, anche quando utilizzi il data binding o il plug-in retro-lambda. L'elaborazione delle annotazioni da parte dell'attività Kapt non è ancora incrementale.
-
Per i progetti che non utilizzano Kapt (progetti solo Java): se i processori di annotazioni che utilizzi supportano tutti l'elaborazione incrementale delle annotazioni, la compilazione incrementale di Java è abilitata per impostazione predefinita. Per monitorare l'adozione del processore di annotazioni incrementali, consulta Gradle issue 5277.
Se, tuttavia, uno o più processori di annotazioni non supportano le build incrementali, la compilazione incrementale di Java non è abilitata. In alternativa, puoi includere il seguente flag nel file
gradle.properties
:android.enableSeparateAnnotationProcessing=true
Quando includi questo flag, il plug-in Android Gradle esegue i processori di annotazioni in un'attività separata e consente all'attività di compilazione Java di essere eseguita in modo incrementale.
-
-
Informazioni di debug migliori quando si utilizza un'API obsoleta: quando il plug-in rileva che stai utilizzando un'API non più supportata, ora può fornire informazioni più dettagliate per aiutarti a determinare dove viene utilizzata l'API. Per visualizzare le informazioni aggiuntive, devi includere quanto segue nel file
gradle.properties
del progetto:android.debug.obsoleteApi=true
Puoi anche attivare il flag passando
-Pandroid.debug.obsoleteApi=true
dalla riga di comando. -
Puoi eseguire test di strumentazione sui moduli delle funzionalità dalla riga di comando.
Modifiche al comportamento
-
Configurazione delle attività lazy:il plug-in ora utilizza la nuova API di creazione delle attività di Gradle per evitare di inizializzare e configurare le attività che non sono necessarie per completare la build corrente (o le attività non presenti nel grafico delle attività di esecuzione). Ad esempio, se hai più varianti di build, come le varianti di build "release" e "debug", e stai creando la versione "debug" della tua app, il plug-in evita di inizializzare e configurare le attività per la versione "release" della tua app.
La chiamata di alcuni metodi precedenti nell'API Variants, ad esempio
variant.getJavaCompile()
, potrebbe comunque forzare la configurazione dell'attività. Per assicurarti che la build sia ottimizzata per la configurazione delle attività differita, richiama nuovi metodi che restituiscono invece un oggetto TaskProvider, comevariant.getJavaCompileProvider()
.Se esegui attività di build personalizzate, scopri come adattarti alla nuova API di creazione delle attività di Gradle.
-
Per un determinato tipo di build, quando imposti
useProguard false
, il plug-in ora utilizza R8 anziché ProGuard per ridurre e offuscare il codice e le risorse dell'app. Per saperne di più su R8, leggi questo post del blog del Blog per sviluppatori Android. -
Generazione più rapida della classe R per i progetti di libreria: in precedenza, il plug-in Android Gradle generava un file
R.java
per ciascuna delle dipendenze del progetto e poi compilava queste classi R insieme alle altre classi dell'app. Il plug-in ora genera direttamente un file JAR contenente la classe R compilata della tua app, senza prima creare classiR.java
intermedie. Questa ottimizzazione può migliorare significativamente le prestazioni di compilazione per i progetti che includono molti sottoprogetti e dipendenze della libreria e migliorare la velocità di indicizzazione in Android Studio. -
Quando crei un Android App Bundle, gli APK generati da questo bundle di app che hanno come target Android 6.0 (livello API 23) o versioni successive ora includono versioni non compresse delle tue librerie native per impostazione predefinita. Questa ottimizzazione evita la necessità per il dispositivo di creare una copia della libreria e riduce le dimensioni su disco dell'app. Se preferisci disattivare questa ottimizzazione, aggiungi quanto segue al file
gradle.properties
:android.bundle.enableUncompressedNativeLibs = false
-
Il plug-in impone le versioni minime di alcuni plug-in di terze parti.
-
Sincronizzazione del progetto con una sola variante: la sincronizzazione del progetto con la configurazione della build è un passaggio importante per consentire ad Android Studio di comprendere la struttura del progetto. Tuttavia, questo processo può richiedere molto tempo per i progetti di grandi dimensioni. Se il tuo progetto utilizza più varianti di build, ora puoi ottimizzare le sincronizzazioni del progetto limitandole solo alla variante attualmente selezionata.
Per attivare questa ottimizzazione, devi utilizzare Android Studio 3.3 o versioni successive con Android Gradle Plugin 3.3.0 o versioni successive. Quando soddisfi questi requisiti, l'IDE ti chiede di abilitare questa ottimizzazione quando sincronizzi il progetto. L'ottimizzazione è attivata per impostazione predefinita anche nei nuovi progetti.
Per attivare manualmente questa ottimizzazione, fai clic su File > Impostazioni > Sperimentale > Gradle (Android Studio > Preferenze > Sperimentale > Gradle su Mac) e seleziona la casella di controllo Sincronizza solo la variante attiva.
Nota: questa ottimizzazione supporta completamente i progetti che includono i linguaggi Java e C++ e supporta in parte Kotlin. Quando attivi l'ottimizzazione per i progetti con contenuti Kotlin, la sincronizzazione Gradle torna a utilizzare internamente le varianti complete.
-
Download automatico dei pacchetti SDK mancanti: questa funzionalità è stata estesa per supportare NDK. Per saperne di più, leggi Download automatico dei pacchetti mancanti con Gradle.
Correzioni di bug
-
Il plug-in Android per Gradle 3.3.0 risolve i seguenti problemi:
- Il processo di build chiama
android.support.v8.renderscript.RenderScript
anziché la versione AndroidX, nonostante Jetifier sia abilitato - Conflitti dovuti a
androidx-rs.jar
, incluso il bundling staticoannotation.AnyRes
- Quando utilizzi RenderScript, non devi più impostare manualmente la versione di Build Tools
nei file
build.gradle
- Il processo di build chiama