Wtyczka Androida do obsługi Gradle 2.2.0 (wrzesień 2016 r.)

Zależności:
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.
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 na gradle.properties. Podczas używania nowego opakowania narzędzie zipalignDebug, zadanie nie jest dostępne. Pamiętaj jednak: możesz utworzyć je samodzielnie, wywołując Metoda createZipAlignTask(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ę na false w <application>. pliku manifestu aplikacji, nieskompresowanych pakietów Gradle i wyrównać wersje bibliotek natywnych z pakietem APK. Ten zapobiega PackageManager 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 i applicationIdSuffix. (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 do true.
    • 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ą funkcji javaCompileOptions.annotationProcessorOptions {} DSL w plik build.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
      

    • 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