Android Gradle Plugin 2.2.0 (September 2016)
- Abhängigkeiten:
- Neu:
-
- Verwendet Gradle 2.14.1, das Leistungsverbesserungen und neue Funktionen enthält. Außerdem wird eine Sicherheitslücke geschlossen, die eine lokale Berechtigungseskalierung bei Verwendung des Gradle-Daemons ermöglicht. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
- Mit der
externalNativeBuild {}
-DSL können Sie in Gradle jetzt Verknüpfungen zu Ihren nativen Quellen herstellen und native Bibliotheken mit CMake oder ndk-build kompilieren. Nachdem Sie Ihre nativen Bibliotheken erstellt haben, verpackt Gradle sie in Ihrem APK. Weitere Informationen zur Verwendung von CMake und ndk-build mit Gradle finden Sie im Hilfeartikel C- und C++-Code in Ihr Projekt einfügen. - Wenn Sie einen Build über die Befehlszeile ausführen, versucht Gradle jetzt, alle fehlenden SDK-Komponenten oder Updates automatisch herunterzuladen, von denen Ihr Projekt abhängt. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
- Mit einer neuen experimentellen Caching-Funktion kann Gradle die Build-Zeiten beschleunigen, indem die dex-optimierten Versionen Ihrer Bibliotheken vorab dex-optimiert, gespeichert und wiederverwendet werden. Weitere Informationen zur Verwendung dieser experimentellen Funktion finden Sie im Leitfaden Cache erstellen.
- Die Build-Leistung wurde durch die Einführung einer neuen Standard-Packerpipeline verbessert, die Zippen, Signieren und Zipaligning in einer einzigen Aufgabe verarbeitet. Sie können zu den älteren Tools zur Paketierung zurückkehren, indem Sie Ihrer
gradle.properties
-Dateiandroid.useOldPackaging=true
hinzufügen. Beim Verwenden des neuen Tools zur Paketierung ist die AufgabezipalignDebug
nicht verfügbar. Sie können jedoch eine selbst erstellen, indem Sie die MethodecreateZipAlignTask(String taskName, File inputFile, File outputFile)
aufrufen. - Für die APK-Signatur wird jetzt zusätzlich zur traditionellen JAR-Signatur das APK-Signaturschema v2 verwendet. Die resultierenden APKs werden von allen Android-Plattformen akzeptiert. Jede Änderung an diesen APKs nach der Signatur macht ihre V2-Signaturen ungültig und verhindert die Installation auf einem Gerät. Wenn Sie diese Funktion deaktivieren möchten, fügen Sie der Datei
build.gradle
auf Modulebene Folgendes hinzu:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- Bei Multidex-Builds können Sie jetzt ProGuard-Regeln verwenden, um festzulegen, welche Klassen Gradle in die main-DEX-Datei Ihrer App kompilieren soll. Da das Android-System beim Starten Ihrer App zuerst die Haupt-DEX-Datei lädt, können Sie bestimmte Klassen beim Start priorisieren, indem Sie sie in die Haupt-DEX-Datei kompilieren. Nachdem Sie eine ProGuard-Konfigurationsdatei speziell für Ihre Haupt-DEX-Datei erstellt haben, übergeben Sie den Pfad der Konfigurationsdatei mit
buildTypes.multiDexKeepProguard
an Gradle. Die Verwendung dieser DSL unterscheidet sich von der Verwendung vonbuildTypes.proguardFiles
, das allgemeine ProGuard-Regeln für Ihre App enthält und keine Klassen für die Haupt-DEX-Datei angibt. - Unterstützung für das Flag
android:extractNativeLibs
hinzugefügt, mit dem die Größe Ihrer App bei der Installation auf einem Gerät verringert werden kann. Wenn Sie dieses Flag im Element<application>
Ihres App-Manifests auffalse
festlegen, verpackt Gradle unkomprimierte und ausgerichtete Versionen Ihrer nativen Bibliotheken mit Ihrem APK. Dadurch wird verhindert, dassPackageManager
Ihre nativen Bibliotheken während der Installation aus dem APK in das Dateisystem des Geräts kopiert. Außerdem werden Delta-Updates Ihrer App dadurch kleiner. - Sie können jetzt
versionNameSuffix
undapplicationIdSuffix
für Produktvarianten angeben. (Problem 59614)
- Änderungen:
-
-
getDefaultProguardFile
gibt jetzt die Standard-ProGuard-Dateien zurück, die vom Android-Plug-in für Gradle bereitgestellt werden, und verwendet nicht mehr die im Android SDK enthaltenen Dateien. - Verbesserte Leistung und Funktionen des Jack-Compilers:
- Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn
testCoverageEnabled
auftrue
gesetzt wird. - Verbesserte Unterstützung für Anmerkungs-Prozessoren. Anmerkungs-Prozessoren in Ihrem Klassenpfad, z. B.
compile
-Abhängigkeiten, werden automatisch auf Ihren Build angewendet. Sie können auch einen Anmerkungs-Prozessor in Ihrem Build angeben und Argumente übergeben, indem Sie diejavaCompileOptions.annotationProcessorOptions {}
-DSL in Ihrerbuild.gradle
-Datei auf Modulebene verwenden: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")) } } } }
Wenn Sie einen Anmerkungs-Prozessor zur Kompilierungszeit anwenden, ihn aber nicht in Ihr APK aufnehmen möchten, verwenden Sie den
annotationProcessor
-Abhängigkeitsbereich: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 }
- Wenn die Heap-Größe des Gradle-Daemons mindestens 1, 5 GB beträgt, wird Jack jetzt standardmäßig im selben Prozess wie Gradle ausgeführt. Wenn Sie die Größe des Daemon-Haufens anpassen möchten, fügen Sie der Datei
gradle.properties
Folgendes hinzu:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Eine Liste der Parameter, die Sie festlegen können, erhalten Sie über die Befehlszeile mit dem folgenden Befehl:
java -jar /build-tools/jack.jar --help-properties
- Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn
-
Mindestversion | Standardversio | Hinweise | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | Weitere Informationen finden Sie unter Gradle aktualisieren. |
SDK-Build-Tools | 23.0.2 | 23.0.2 | Installieren oder konfigurieren Sie die SDK-Build-Tools. |