Plug-in Android per Gradle 2.2.0 (settembre 2016)
- Dipendenze:
- Novità:
-
- Utilizza Gradle 2.14.1, che include miglioramenti alle prestazioni e nuove funzionalità, nonché corregge una vulnerabilità di sicurezza che consente l'escalation dei privilegi locali quando si utilizza il daemon Gradle. Per maggiori dettagli, consulta le note di rilascio di Gradle.
- Con il DSL
externalNativeBuild {}
, Gradle ora ti consente di eseguire il collegamento alle sorgenti native e compilare le librerie native utilizzando CMake o ndk-build. Dopo aver creato le librerie native, Gradle le impacchetta nell'APK. Per scoprire di più sull'utilizzo di CMake e ndk-build con Gradle, leggi l'articolo Aggiungere codice C e C++ al progetto. - Quando esegui un compilazione dalla riga di comando, ora Gradle tenta di scaricare automaticamente eventuali componenti o aggiornamenti mancanti dell'SDK di cui dipende il tuo progetto. Per scoprire di più, leggi l'articolo Scaricare automaticamente i pacchetti mancanti con Gradle.
- Una nuova funzionalità di memorizzazione nella cache sperimentale consente a Gradle di accelerare i tempi di compilazione pre-dexing, archiviando e riutilizzando le versioni pre-dexing delle librerie. Per scoprire di più sull'utilizzo di questa funzionalità sperimentale, consulta la guida Costruire la cache.
- Migliora il rendimento della compilazione adottando una nuova pipeline di imballaggio predefinita che gestisce l'archiviazione, la firma e l'allineamento in un'unica attività. Puoi
ripristinare l'utilizzo degli strumenti di pacchetti precedenti aggiungendo
android.useOldPackaging=true
algradle.properties
file. Quando utilizzi il nuovo strumento di imballaggio, l'attivitàzipalignDebug
non è disponibile. Tuttavia, puoi crearne uno autonomamente chiamando il metodocreateZipAlignTask(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 gli APK risultanti. Qualsiasi modifica a questi APK dopo la firma ne invalida
le firme v2 e ne impedisce l'installazione su un dispositivo. Per disattivare questa funzionalità,
aggiungi quanto segue al file
build.gradle
a livello di modulo:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Per le build multidex, ora puoi utilizzare le regole di ProGuard per determinare quali classi Gradle deve compilare nel file DEX principale della tua app. Poiché
il sistema Android carica prima il file DEX principale all'avvio dell'app, puoi dare la priorità a determinate classi all'avvio compilandole nel file DEX
principale. Dopo aver creato un file di configurazione ProGuard specifico per il
file DEX principale, passa il percorso del file di configurazione a Gradle utilizzando
buildTypes.multiDexKeepProguard
. L'utilizzo di questo DSL è diverso dall'utilizzo dibuildTypes.proguardFiles
, che fornisce regole ProGuard generali per la tua app e non specifica le classi per il file DEX principale. - Aggiunge il supporto per il flag
android:extractNativeLibs
, che può ridurre le dimensioni dell'app quando la installi su un dispositivo. Quando imposti questo flag sufalse
nell'elemento<application>
del file manifest dell'app, Gradle pacchettizza le versioni non compresse e aliniate delle librerie native con l'APK. In questo modo, impedisci aPackageManager
di copiare le librerie native dall'APK al file system del dispositivo durante l'installazione e hai il vantaggio aggiuntivo di ridurre le dimensioni degli aggiornamenti delta della tua app. - Ora puoi specificare
versionNameSuffix
eapplicationIdSuffix
per le versioni del prodotto. (Issue 59614)
- Modifiche:
-
-
getDefaultProguardFile
ora restituisce i file ProGuard predefinite forniti dal plug-in Android per Gradle e non utilizza più quelli nell'SDK Android. - Miglioramento delle prestazioni e delle funzionalità del compilatore Jack:
- Jack ora supporta la copertura dei test Jacoco quando viene impostato
testCoverageEnabled
sutrue
. - Supporto migliorato per gli elaboratori di annotazioni. I processori di annotazioni nel classpath, ad esempio eventuali dipendenze
compile
, vengono applicati automaticamente alla compilazione. Puoi anche specificare un elaboratore di annotazioni nella compilazione e passare gli argomenti utilizzando il DSLjavaCompileOptions.annotationProcessorOptions {}
nel filebuild.gradle
a livello di modulo:Groovy
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 elaboratore di annotazioni al momento della compilazione, ma non includerlo nell'APK, utilizza l'ambito di dipendenza
annotationProcessor
:Groovy
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 impostazione predefinita, se la dimensione dell'heap del daemon Gradle è di almeno 1,5 GB, ora Jack viene eseguito nello stesso processo di Gradle. Per regolare la dimensione dell'heap del daemon, aggiungi quanto segue al file
gradle.properties
:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Per un elenco dei parametri che puoi impostare, esegui quanto segue dalla riga di comando:
java -jar /build-tools/jack.jar --help-properties
- Jack ora supporta la copertura dei test Jacoco quando viene impostato
-
Versione minima | Versione predefinita | Note | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | Per scoprire di più, consulta la sezione Aggiornare Gradle. |
Strumenti di compilazione SDK | 23.0.2 | 23.0.2 | Installa o configura gli strumenti di compilazione dell'SDK. |