Wtyczka Androida do obsługi Gradle 2.2.0 (wrzesień 2016 r.)
- Zależności:
- Nowość:
-
- Korzysta z narzędzia Gradle w wersji 2.14.1, która zwiększa wydajność i nowych funkcji oraz usuwa lukę w zabezpieczeniach, lokalnych eskalacji uprawnień podczas korzystania z demona Gradle. Więcej , zapoznaj się z Informacje o wersji Gradle
- Korzystanie z
externalNativeBuild {}
DSL, Gradle umożliwia teraz dodaj link do źródeł natywnych i skompiluj biblioteki natywne za pomocą CMake lub ndk-build. Po utworzeniu bibliotek natywnych Gradle i umieszcza je w pakiecie APK. Aby dowiedzieć się więcej o korzystaniu z CMake i ndk-build with Gradle, przeczytaj artykuł Dodawanie kodu C i C++ do pliku Projekt. - Po uruchomieniu z wiersza poleceń, Gradle próbuje teraz pobrać automatycznie wszystkich brakujących komponentów lub aktualizacji pakietu SDK, od których zależy Twój projekt. Więcej informacji znajdziesz w sekcji Automatyczne pobieranie brakujące pakiety za pomocą Gradle.
- Nowa eksperymentalna funkcja buforowania, która pozwala Gradle przyspieszyć kompilację przez wstępne deksowanie, przechowywanie i ponowne wykorzystywanie wersji w Twoich bibliotekach. Aby dowiedzieć się więcej o korzystaniu z tej eksperymentalnej funkcji, przeczytaj kompilację Pamięć podręczna.
- Poprawia wydajność przez wdrożenie nowego pakietu domyślnego
potok, który obsługuje kompresowanie, podpisywanie i wyrównywanie plików ZIP w ramach jednego zadania. Ty
możesz powrócić do starszych narzędzi
do tworzenia pakietów, dodając
android.useOldPackaging=true
nagradle.properties
. Podczas używania nowego opakowania narzędziezipalignDebug
, zadanie nie jest dostępne. Pamiętaj jednak: możesz utworzyć je samodzielnie, wywołując MetodacreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - Podpisywanie plików APK korzysta teraz z schematu podpisu pliku APK
w wersji 2, a nie do tradycyjnego podpisywania plików JAR. Wszystkie platformy Android akceptują
utworzone pliki APK. Wszelkie modyfikacje tych plików APK po ich podpisaniu unieważniają te pliki
w wersji 2 i uniemożliwiają instalację na urządzeniu. Aby wyłączyć tę funkcję:
do pliku
build.gradle
na poziomie modułu dodaj:Odlotowe
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- W przypadku kompilacji multidex możesz teraz za pomocą reguł ProGuard określić,
klas, które Gradle powinno skompilować do głównego pliku DEX aplikacji. Ponieważ
Android wczytuje główny plik DEX przy uruchamianiu aplikacji,
może nadawać priorytet określonym klasom w momencie uruchomienia przez skompilowanie ich w głównej części 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 lustrzanki cyfrowej przebiega inaczej z za pomocąbuildTypes.proguardFiles
, która zapewnia ogólną funkcję ProGuard dla Twojej aplikacji i nie określa klas dla głównego pliku DEX. - Dodaje obsługę flagi
android:extractNativeLibs
, co może zmniejszyć rozmiar aplikacji po zainstalowaniu urządzenia. Jeśli ustawisz tę flagę nafalse
w<application>
. pliku manifestu aplikacji, nieskompresowanych pakietów Gradle i wyrównać wersje bibliotek natywnych z pakietem APK. Ten zapobiegaPackageManager
przed skopiowaniem bibliotek natywnych z pliku APK do systemu plików podczas instalacji. Ma dodatkową zaletę: mniejsze są też aktualizacje delta aplikacji. - Możesz teraz określić
versionNameSuffix
iapplicationIdSuffix
. (Numer 59614)
- Zmiany:
-
-
getDefaultProguardFile
zwraca teraz domyślną funkcję ProGuard pliki dostarczane przez wtyczkę Androida do Gradle, które nie są już dostępne korzysta z zasobów z pakietu Android SDK. - Ulepszona wydajność i funkcje kompilatora Jack:
- Jack obsługuje teraz zasięg testu Jacoco podczas konfigurowania
testCoverageEnabled
dotrue
. - Ulepszona obsługa procesorów adnotacji. Adnotacja
procesory w ścieżce klasy, takie jak
compile
są stosowane automatycznie w kompilacji. Dostępne opcje możesz też określić w kompilacji i przekazać za pomocą funkcjijavaCompileOptions.annotationProcessorOptions {}
DSL w plikbuild.gradle
na poziomie modułu:Odlotowe
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")) } } } }
Jeśli podczas kompilacji chcesz zastosować procesor adnotacji ale nie umieszczaj ich w pliku APK, użyj polecenia Zakres zależności
annotationProcessor
:Odlotowe
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 }
Aby zobaczyć listę parametrów, które możesz ustawić, uruchom polecenie poniżej wiersz poleceń:
java -jar /build-tools/jack.jar --help-properties
- Jack obsługuje teraz zasięg testu Jacoco podczas konfigurowania
- Domyślnie, jeśli rozmiar stosu demona Gradle wynosi co najmniej 1,5
Jack działa teraz w tym samym procesie co Gradle. Aby dostosować
rozmiar stosu demonów, dodaj następujące elementy do
Plik
gradle.properties
:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
Wersja minimalna | Wersja domyślna | Uwagi | |
---|---|---|---|
Gradle | 2.14.1 | 2.14.1 | Więcej informacji znajdziesz w artykule na temat aktualizowania Gradle. |
Narzędzia do tworzenia pakietów SDK | 23.0.2 | 23.0.2 | Zainstaluj lub skonfiguruj narzędzia SDK Build Tools. |