Android Gradle Plugin 2.2.0 (settembre 2016)
- Dipendenze:
- Novità:
-
- Utilizza Gradle 2.14.1, che include miglioramenti delle prestazioni e nuove funzionalità e corregge una vulnerabilità di sicurezza che consente l'escalation dei privilegi locali quando si utilizza il daemon Gradle. Per maggiori informazioni vedi i dettagli. Note di rilascio di Gradle.
- Utilizzando i
externalNativeBuild {}
DSL, Gradle ora ti consente collegarsi alle fonti native e compilare librerie native usando CMake o ndk-build. Dopo aver creato le tue librerie native, Gradle e li pacchettizza nell'APK. Per scoprire di più sull'utilizzo di CMake e ndk-build with Gradle, leggi l'articolo Aggiungere codice C e C++ al tuo Progetto. - Quando esegui un dalla riga di comando, Gradle ora tenta di eseguire il download automatico eventuali componenti o aggiornamenti dell'SDK mancanti da cui dipende il progetto. Per scoprire di più, leggi l'articolo Download automatico pacchetti mancanti con Gradle.
- Una nuova funzionalità sperimentale di memorizzazione nella cache consente a Gradle di velocizzare la creazione volte pre-dexing, memorizzazione e riutilizzo delle versioni pre-dexing le tue biblioteche. Per scoprire di più sull'utilizzo di questa funzionalità sperimentale, leggi la sezione Builder Cache.
- Migliora le prestazioni della build adottando un nuovo pacchetto predefinito
che gestisce zip, firma e zipaligning in un'unica attività. Tu
possono tornare a usare i vecchi strumenti di pacchettizzazione
android.useOldPackaging=true
al tuogradle.properties
file. Durante l'utilizzo del nuovo pacchetto , l'attivitàzipalignDebug
non è disponibile. Tuttavia, puoi crearne uno tu stessocreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - La firma dell'APK ora utilizza lo schema di firma dell'APK
v2, oltre alla firma JAR tradizionale. Tutte le piattaforme Android accettano i
APK risultanti. Qualsiasi modifica a questi APK dopo la firma ne invalida la
le firme v2 e impedisce l'installazione su un dispositivo. Per disattivare questa funzione:
aggiungi quanto segue al file
build.gradle
a livello di modulo:Alla moda
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Per le build multidex, ora puoi utilizzare le regole ProGuard per determinare
che Gradle dovrebbe compilare nel file DEX principale della tua app. Poiché
Il sistema Android carica per primo il file DEX principale all'avvio dell'app,
possono dare la priorità a determinate classi all'avvio compilandole nel file DEX principale
. Dopo aver creato un file di configurazione ProGuard specifico per il tuo
DEX principale, passa il percorso del file di configurazione a Gradle utilizzando
buildTypes.multiDexKeepProguard
. L'utilizzo di questa DSL è diverso dall'utilizzobuildTypes.proguardFiles
, che fornisce funzionalità ProGuard generali per la tua app e non specifica classi per il file DEX principale. - Aggiunge il supporto per il flag
android:extractNativeLibs
, che può ridurre le dimensioni della tua app quando la installi su un dispositivo. Se imposti il flag sufalse
nel campo<application>
del file manifest dell'app, i pacchetti Gradle non compressi e versioni allineate delle tue librerie native al tuo APK. Questo impediscePackageManager
di copiare le librerie native dall'APK agli oggetti durante l'installazione e ha il vantaggio aggiuntivo di aggiornamenti delta dell'app più piccoli. - Ora puoi specificare
versionNameSuffix
eapplicationIdSuffix
per i gusti dei prodotti. (Problema 59614)
- Modifiche:
-
-
getDefaultProguardFile
ora restituisce il ProGuard predefinito forniti dal plug-in Android per Gradle e non più utilizza quelli dell'SDK Android. - Prestazioni e funzionalità migliorate del compilatore Jack:
- Jack ora supporta la copertura dei test di Jacoco durante l'impostazione
Da
testCoverageEnabled
atrue
. - Supporto migliorato per i processori di annotazione. Annotazione
processori sul tuo classpath, ad esempio
compile
vengono applicate automaticamente alla tua build. Puoi specificare anche un processore di annotazione nella build e utilizzando i comandijavaCompileOptions.annotationProcessorOptions {}
DSL nel tuo filebuild.gradle
a livello di modulo:Alla moda
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
Se vuoi applicare un processore di annotazioni durante la compilazione ma non includerla nell'APK, usa il
annotationProcessor
ambito delle dipendenze:Alla moda
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
Per un elenco di parametri impostabili, esegui il comando riportato di seguito la riga di comando:
java -jar /build-tools/jack.jar --help-properties
- Jack ora supporta la copertura dei test di Jacoco durante l'impostazione
Da
- Per impostazione predefinita, se la dimensione heap del daemon Gradle è di almeno 1,5
GB, Jack ora viene eseguito nello stesso processo di Gradle. Per regolare
dimensione dello heap del daemon, aggiungi quanto segue
File
gradle.properties
:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
Versione minima | Versione predefinita | Note | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | Per scoprire di più, consulta la sezione sull'aggiornamento di Gradle. |
Strumenti di creazione SDK | 23.0.2 | 23.0.2 | Installa o configura gli strumenti di creazione dell'SDK. |