Android Gradle Plugin 2.2.0 (settembre 2016)

Dipendenze:
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.
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 tuo gradle.properties file. Durante l'utilizzo del nuovo pacchetto , l'attività zipalignDebug non è disponibile. Tuttavia, puoi crearne uno tu stesso createZipAlignTask(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'utilizzo buildTypes.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 su false nel campo <application> del file manifest dell'app, i pacchetti Gradle non compressi e versioni allineate delle tue librerie native al tuo APK. Questo impedisce PackageManager 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 e applicationIdSuffix 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 a true.
    • 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 comandi javaCompileOptions.annotationProcessorOptions {} DSL nel tuo file build.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
      

    • 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