Android-Gradle-Plug-in 2.2.0 (September 2016)
- Abhängigkeiten:
- Neu:
-
- Verwendet Gradle 2.14.1, das Leistungsverbesserungen und neue Funktionen enthält und eine Sicherheitslücke behebt, die eine lokale Rechteausweitung bei Verwendung des Gradle-Daemons ermöglicht. Weitere Informationen finden Sie in den Gradle-Versionshinweisen.
- Mit der
externalNativeBuild {}-DSL können Sie jetzt mit Gradle Links zu Ihren C/C++-Quellen erstellen und C/C++-Bibliotheken mit CMake oder ndk-build kompilieren. Nachdem Sie Ihre C/C++-Bibliotheken erstellt haben, verpackt Gradle sie in Ihr APK. Weitere Informationen zur Verwendung von CMake und ndk-build mit Gradle finden Sie unter C- und C++-Code zum Projekt hinzufügen. - Wenn Sie einen Build über die Befehlszeile ausführen, versucht Gradle jetzt, alle fehlenden SDK-Komponenten oder Updates, von denen Ihr Projekt abhängt, automatisch herunterzuladen. Weitere Informationen finden Sie unter Fehlende Pakete mit Gradle automatisch herunterladen.
- Mit einer neuen experimentellen Caching-Funktion kann Gradle die Build-Zeiten verkürzen, indem die vorab dexed-Versionen Ihrer Bibliotheken vorab dexed, gespeichert und wiederverwendet werden. Weitere Informationen zur Verwendung dieser experimentellen Funktion finden Sie im Leitfaden Build-Cache.
- Die Build-Leistung wird durch die Einführung einer neuen Standard-Packaging-Pipeline verbessert, die das Zippen, Signieren und Zipalignen in einer Aufgabe übernimmt. Sie können zu den alten Verpackungstools zurückkehren, indem Sie Ihrer
gradle.properties-Dateiandroid.useOldPackaging=truehinzufügen. Bei Verwendung des neuen Tools zur Paketerstellung ist die AufgabezipalignDebugnicht verfügbar. Sie können jedoch selbst eine erstellen, indem Sie die MethodecreateZipAlignTask(String taskName, File inputFile, File outputFile)aufrufen. - Für die APK-Signierung wird jetzt zusätzlich zur standardmäßigen JAR-Signierung das APK-Signaturschema v2 verwendet. Alle Android-Plattformen akzeptieren die resultierenden APKs. Jede Änderung an diesen APKs nach der Signierung 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.gradleauf 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 primäre DEX-Datei erstellt haben, übergeben Sie den Pfad der Konfigurationsdatei mit
buildTypes.multiDexKeepProguardan Gradle. Die Verwendung dieser DSL unterscheidet sich von der Verwendung vonbuildTypes.proguardFiles, die allgemeine ProGuard-Regeln für Ihre App bereitstellt und keine Klassen für die primäre DEX-Datei angibt. - Unterstützung für das Flag
android:extractNativeLibswurde hinzugefügt, wodurch die Größe Ihrer App bei der Installation auf einem Gerät reduziert werden kann. Wenn Sie dieses Flag im Element<application>Ihres App-Manifests auffalsesetzen, verpackt Gradle unkomprimierte und ausgerichtete Versionen Ihrer C/C++-Bibliotheken mit Ihrem APK. Dadurch wird verhindert, dassPackageManagerIhre C/C++-Bibliotheken während der Installation aus dem APK in das Dateisystem des Geräts kopiert. Außerdem werden dadurch Delta-Updates Ihrer App kleiner. - Sie können jetzt
versionNameSuffixundapplicationIdSuffixfür Produktvarianten angeben. (Problem 59614)
- Änderungen:
-
-
getDefaultProguardFilegibt jetzt die standardmäßigen ProGuard-Dateien zurück, die vom Android-Plug-in für Gradle bereitgestellt werden, und verwendet nicht mehr die Dateien im Android SDK. - Verbesserte Leistung und Funktionen des Jack-Compilers:
- Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn
testCoverageEnabledauftruefestgelegt ist. - Verbesserte Unterstützung für Annotationsprozessoren. Annotationsprozessoren in Ihrem Klassenpfad, z. B.
compile-Abhängigkeiten, werden automatisch auf Ihren Build angewendet. Sie können auch einen Annotation Processor in Ihrem Build angeben und Argumente über diejavaCompileOptions.annotationProcessorOptions {}-DSL in Ihrerbuild.gradle-Datei auf Modulebene übergeben: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 Annotation Processor zur Kompilierzeit anwenden, ihn aber nicht in Ihr APK aufnehmen möchten, verwenden Sie den Abhängigkeitsbereich
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 }
- Wenn die Heap-Größe des Gradle-Daemons mindestens 1, 5 GB beträgt, wird Jack standardmäßig im selben Prozess wie Gradle ausgeführt. Fügen Sie der Datei
gradle.propertiesFolgendes hinzu, um die Heap-Größe des Daemons anzupassen:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Eine Liste der Parameter, die Sie festlegen können, erhalten Sie, wenn Sie den folgenden Befehl über die Befehlszeile ausführen:
java -jar /build-tools/jack.jar --help-properties
- Jack unterstützt jetzt die Jacoco-Testabdeckung, wenn
-
| Mindestversion | Standardversion | 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. |