Plug-in Android per Gradle, revisione 1.5.0 (novembre 2015)

Dipendenze:
  • Gradle 2.2.1 o superiore.
  • Build Tools 21.1.1 o versioni successive.
Note generali:
  • Integrazione del plug-in Data Binding nel plug-in Android per Gradle. Per abilitarlo, aggiungi il seguente codice a ogni file build.gradle per progetto che utilizza il plug-in:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • È stata aggiunta una nuova API Transform per consentire ai plug-in di terze parti di manipolare i file .class compilati prima che vengano convertiti in file .dex. L'API Transform semplifica l'inserimento di manipolazioni delle classi personalizzate e offre una maggiore flessibilità su ciò che puoi manipolare. Per inserire una trasformazione in una build, crea una nuova classe che implementa una delle interfacce Transform e registrala con android.registerTransform(theTransform) o android.registerTransform(theTransform, dependencies). Non è necessario collegare le varie attività. Tieni presente quanto segue sull'API Transform:
    • Una trasformazione può essere applicata a uno o più dei seguenti elementi: progetto attuale, sottoprogetti e librerie esterne.
    • Una trasformazione deve essere registrata a livello globale, in modo da applicarla a tutte le varianti.
    • L'elaborazione interna del codice tramite la Java Code Copertura Library (JaCoCo), ProGuard e MultiDex ora utilizza l'API Transform. Tuttavia, il Java Android Compiler Kit (Jack) non utilizza questa API: lo fa solo il percorso del codice javac/dx.
    • Gradle esegue le trasformazioni nel seguente ordine: JaCoCo, plug-in di terze parti e ProGuard. L'ordine di esecuzione per i plug-in di terze parti corrisponde all'ordine in cui le trasformazioni vengono aggiunte dai plug-in di terze parti; gli sviluppatori di plug-in di terze parti non possono controllare l'ordine di esecuzione delle trasformazioni tramite un'API.
  • Il getter dex è stato ritirato dalla classe ApplicationVariant. Non puoi più accedere all'attività Dex tramite l'API della variante perché ora viene eseguita tramite una trasformazione. Al momento non esiste alcuna sostituzione per il controllo della procedura Dex.
  • Supporto incrementale fisso degli asset.
  • Supporto di MultiDex migliorato rendendolo disponibile per i progetti di test. I test ora presentano automaticamente la dipendenza com.android.support:multidex-instrumentation.
  • È stata aggiunta la possibilità di non riuscire correttamente a una build Gradle e di segnalare la causa dell'errore sottostante quando la build Gradle richiama attività asincrone e si verifica un errore nel processo worker.
  • Aggiunto il supporto per la configurazione di un'ABI (Application Binary Interface) specifica nelle varianti che contengono più ABI.
  • Aggiunto il supporto per un elenco separato da virgole di numeri di serie dei dispositivi per la variabile di ambiente ANDROID_SERIAL durante l'installazione o l'esecuzione dei test.
  • È stato risolto un errore di installazione sui dispositivi con Android 5.0 (livello API 20) e versioni successive quando il nome APK contiene uno spazio.
  • Risolti vari problemi relativi all'output di errore dello strumento AAPT (Android Asset Packaging Tool).
  • È stato aggiunto il supporto della strumentazione incrementale di JaCoCo per build incrementali più veloci. Il plug-in Android per Gradle ora richiama direttamente l'instrumenter JaCoCo. Per forzare una versione più recente dell'instrumenter JaCoCo, devi aggiungerla come dipendenza dello script di build.
  • È stato corretto il supporto di JaCoCo, che ora ignora i file che non sono classi.
  • Aggiunto il supporto di trascinamento di vettori per la generazione di PNG in fase di creazione per garantire la compatibilità con le versioni precedenti. Il plug-in Android per Gradle genera file PNG per ogni trascinamento vettoriale trovato in una directory delle risorse che non specifica una versione dell'API o specifica un attributo android:minSdkVersion pari o inferiore a 20 nell'elemento <uses-sdk> del file manifest dell'app. Puoi impostare le densità dei file PNG utilizzando la proprietà generatedDensities nelle sezioni defaultConfig o productFlavor di un file build.gradle.
  • È stata aggiunta la condivisione del android.jar fittizio, che il plug-in genera solo una volta e utilizza per il test delle unità. Ora più moduli, come app e lib, li condividono. Elimina $rootDir/build per rigenerarlo.
  • È stata modificata l'elaborazione delle risorse Java in modo che si verifichi prima delle attività di offuscamento anziché durante la pacchettizzazione dell'APK. Questa modifica consente alle attività di offuscamento di avere la possibilità di adattare le risorse Java dopo l'offuscamento dei pacchetti.
  • Risolto il problema relativo all'utilizzo del codice JNI (Java Native Interface) nel plug-in della libreria sperimentale.
  • È stata aggiunta la possibilità di impostare la versione della piattaforma separatamente dall'attributo android:compileSdkVersion nel plug-in della libreria sperimentale.