Wtyczka Androida do obsługi Gradle w wersji 2.2.0 (wrzesień 2016 r.)
- Zależności:
- Nowość:
- 
    - Korzysta z Gradle w wersji 2.14.1, która zawiera ulepszenia wydajności i nowe funkcje oraz usuwa lukę w zabezpieczeniach umożliwiającą lokalne podniesienie uprawnień podczas korzystania z demona Gradle. Więcej informacji znajdziesz w informacjach o wersji Gradle.
- Korzystając z języka DSL 
      externalNativeBuild {}, Gradle umożliwia teraz łączenie ze źródłami natywnymi i kompilowanie bibliotek natywnych za pomocą CMake lub ndk-build. Po utworzeniu bibliotek natywnych Gradle pakuje je do pliku APK. Więcej informacji o używaniu CMake i ndk-build z Gradle znajdziesz w artykule Dodawanie do projektu kodu w C i C++.
- Gdy uruchamiasz kompilację z poziomu wiersza poleceń, Gradle próbuje teraz automatycznie pobrać brakujące komponenty pakietu SDK lub aktualizacje, od których zależy Twój projekt. Więcej informacji znajdziesz w artykule Automatyczne pobieranie brakujących pakietów za pomocą Gradle.
- Nowa eksperymentalna funkcja buforowania umożliwia Gradle przyspieszenie kompilacji przez wstępne indeksowanie, przechowywanie i ponowne wykorzystywanie wstępnie indeksowanych wersji bibliotek. Więcej informacji o korzystaniu z tej eksperymentalnej funkcji znajdziesz w przewodniku Build Cache.
- Zwiększa wydajność kompilacji dzięki zastosowaniu nowego domyślnego potoku pakowania, który w ramach jednego zadania obsługuje kompresowanie, podpisywanie i wyrównywanie. Możesz wrócić do starszych narzędzi do pakowania, dodając android.useOldPackaging=truedo plikugradle.properties. Podczas korzystania z nowego narzędzia do pakowaniazipalignDebugnie jest dostępna. Możesz jednak utworzyć własną, wywołując metodęcreateZipAlignTask(String taskName, File inputFile, File outputFile).
- Podpisywanie plików APK odbywa się teraz przy użyciu schematu podpisu APK w wersji 2, a także tradycyjnego podpisywania plików JAR. Wszystkie platformy Androida akceptują wynikowe pliki APK. Wszelkie modyfikacje tych plików APK po podpisaniu unieważniają ich podpisy w wersji 2 i uniemożliwiają instalację na urządzeniu. Aby wyłączyć tę funkcję, dodaj do pliku build.gradlena poziomie modułu ten ciąg:Groovyandroid { ... signingConfigs { config { ... v2SigningEnabled false } } } Kotlinandroid { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } } 
- W przypadku kompilacji multidex możesz teraz używać reguł ProGuard, aby określić, które klasy Gradle ma kompilować do pliku DEX main aplikacji. Ponieważ system Android podczas uruchamiania aplikacji wczytuje najpierw główny plik DEX, możesz nadać priorytet niektórym klasom podczas uruchamiania, kompilując je w głównym pliku DEX. Po utworzeniu pliku konfiguracji ProGuard specjalnie dla głównego pliku DEX przekaż ścieżkę pliku konfiguracji do Gradle za pomocą buildTypes.multiDexKeepProguard. Korzystanie z tego DSL-a różni się od używaniabuildTypes.proguardFiles, które udostępnia ogólne reguły ProGuard dla aplikacji i nie określa klas dla głównego pliku DEX.
- Dodaje obsługę flagi android:extractNativeLibs, która może zmniejszyć rozmiar aplikacji podczas instalowania jej na urządzeniu. Gdy ustawisz tę flagę nafalsew elemencie<application>w manifeście aplikacji, Gradle spakuje nieskompresowane i wyrównane wersje bibliotek natywnych w pliku APK. Zapobiega to kopiowaniu bibliotek natywnych z pliku APK do systemu plików urządzenia podczas instalacji i dodatkowo zmniejsza rozmiar aktualizacji różnicowych aplikacji.PackageManager
- Możesz teraz określić 
      versionNameSuffixiapplicationIdSuffixdla wersji produktu. (Problem 59614)
 
- Zmiany:
- 
  - 
    getDefaultProguardFilezwraca teraz domyślne pliki ProGuard dostarczane przez wtyczkę Androida do Gradle i nie używa już plików z pakietu SDK Androida.
- Ulepszona wydajność i funkcje kompilatora Jack:- Jack obsługuje teraz pokrycie testami Jacoco, gdy ustawisz testCoverageEnablednatrue.
- Ulepszona obsługa procesorów adnotacji. Procesory adnotacji na ścieżce klas, takie jak zależności compile, są automatycznie stosowane w kompilacji. Możesz też określić procesor adnotacji w kompilacji i przekazać argumenty za pomocą języka DSLjavaCompileOptions.annotationProcessorOptions {}w plikubuild.gradlena poziomie modułu:Groovyandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } } Kotlinandroid { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } } Jeśli chcesz zastosować procesor adnotacji w czasie kompilacji, ale nie chcesz go uwzględniać w pliku APK, użyj zakresu zależności annotationProcessor:Groovydependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant } Kotlindependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant } 
- Domyślnie, jeśli rozmiar sterty demona Gradle wynosi co najmniej 1,5 GB, Jack jest teraz uruchamiany w tym samym procesie co Gradle. Aby dostosować rozmiar sterty demona, dodaj do pliku gradle.propertieste informacje:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M 
 Aby wyświetlić listę parametrów, które możesz ustawić, uruchom to polecenie z wiersza poleceń: java -jar /build-tools/jack.jar --help-properties 
- Jack obsługuje teraz pokrycie testami Jacoco, gdy ustawisz 
 
- 
    
| Wersja minimalna | Wersja domyślna | Uwagi | |
|---|---|---|---|
| Gradle | 2.14.1 | 2.14.1 | Więcej informacji znajdziesz w artykule Aktualizowanie Gradle. | 
| Narzędzia do kompilacji pakietu SDK | 23.0.2 | 23.0.2 | Zainstaluj lub skonfiguruj narzędzia SDK do kompilacji. | 
