Wtyczka Androida dla Gradle, wersja 1.5.0 (listopad 2015 r.)

Zależności:
  • Gradle w wersji 2.2.1 lub nowszej.
  • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
Uwagi ogólne:
  • Zintegrowaliśmy wtyczkę Data Binding z wtyczką na Androida dla Gradle. Aby ją włączyć, dodaj ten kod do każdego pliku build.gradle w projekcie, który korzysta z wtyczki:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Dodano nowy interfejs Transform API, który umożliwia wtyczkom innych firm manipulowanie skompilowanymi plikami .class przed ich przekonwertowaniem na pliki .dex. Interfejs Transform API ułatwia wstrzykiwanie manipulacji klasami niestandardowymi, a jednocześnie daje większą elastyczność w zakresie zakresu, którym możesz manipulować. Aby wstawić przekształcenie do kompilacji, utwórz nową klasę implementującą jeden z interfejsów Transform i zarejestruj ją za pomocą android.registerTransform(theTransform) lub android.registerTransform(theTransform, dependencies). Nie trzeba łączyć zadań jednocześnie. Uwaga dotycząca interfejsu Transform API:
    • Przekształcenie można zastosować do co najmniej jednego z tych elementów: bieżącego projektu, podprojektów i bibliotek zewnętrznych.
    • Przekształcenie musi być zarejestrowane globalnie, co ma zastosowanie do wszystkich wariantów.
    • Transform API wykorzystuje teraz wewnętrzne przetwarzanie kodu za pomocą biblioteki Java Code Zasięg biblioteki (JaCoCo), ProGuard i MultiDex. Jednak pakiet Java Android Compiler Kit (Jack) nie używa tego interfejsu API, a jedynie ścieżka kodowa javac/dx.
    • Gradle wykonuje przekształcenia w tej kolejności: JaCoCo, wtyczki innych firm, ProGuard. Kolejność wykonywania wtyczek innych firm jest taka sama jak kolejność dodawania przekształceń przez wtyczki innych firm. Programiści wtyczek innych firm nie mogą kontrolować kolejności wykonywania przekształceń za pomocą interfejsu API.
  • Wycofano metodę pobierania dex z klasy ApplicationVariant. Nie możesz już uzyskać dostępu do zadania Dex za pomocą interfejsu API wariantu, ponieważ wykonuje się je teraz przez przekształcenie. Obecnie nie ma czegoś takiego jak sterowanie procesem dex.
  • Stała obsługa przyrostowa zasobów.
  • Ulepszyliśmy obsługę MultiDex przez udostępnienie tej funkcji w projektach testowych. Testy mają teraz automatycznie zależność com.android.support:multidex-instrumentation.
  • Dodaliśmy możliwość prawidłowego niepowodzenia kompilacji Gradle i zgłoszenia bazowej przyczyny błędu, gdy kompilacja Gradle wywołuje zadania asynchroniczne i wystąpi błąd w procesie instancji roboczej.
  • Dodaliśmy obsługę konfigurowania określonego interfejsu binarnego aplikacji (ABI) w wariantach zawierających wiele interfejsów ABI.
  • Dodano obsługę listy rozdzielonych przecinkami numerów seryjnych urządzeń dla zmiennej środowiskowej ANDROID_SERIAL podczas instalowania lub uruchamiania testów.
  • Rozwiązaliśmy problem z instalacją urządzeń z Androidem 5.0 (poziom interfejsu API 20) lub nowszym, gdy nazwa pliku APK zawiera spację.
  • Rozwiązaliśmy różne problemy związane z błędami generowanymi przez narzędzie Android Asset Packaging Tool (AAPT).
  • Dodano przyrostową obsługę instrumentacji JaCoCo, co pozwala szybciej tworzyć kompilacje przyrostowe. Wtyczka Androida dla Gradle bezpośrednio wywołuje teraz instrumenter JaCoCo. Aby wymusić nowszą wersję instrumentera JaCoCo, musisz dodać ją jako zależność skryptu kompilacji.
  • Naprawiono obsługę JaCoCo, dzięki czemu pliki, które nie są klasami, są ignorowane.
  • W celu zapewnienia zgodności wstecznej dodaliśmy obsługę rysowania wektorowymi w plikach PNG podczas tworzenia. Wtyczka Androida do obsługi Gradle generuje pliki PNG dla każdego elementu rysowalnego wektorowego znalezionego w katalogu zasobów, który nie określa wersji interfejsu API lub określa atrybut android:minSdkVersion o wartości 20 lub niższej w elemencie <uses-sdk> w pliku manifestu aplikacji. Gęstość pliku PNG możesz ustawić za pomocą właściwości generatedDensities w sekcjach defaultConfig lub productFlavor pliku build.gradle.
  • Dodaliśmy możliwość udostępniania symulowanego elementu android.jar, który jest generowany tylko raz i używany do testowania jednostkowego. Wiele modułów, na przykład app i lib, jest teraz udostępnianych. Usuń zasób $rootDir/build, aby go wygenerować ponownie.
  • Zmieniono przetwarzanie zasobów Java przed zadaniami zaciemniania kodu, a nie podczas pakowania pliku APK. Ta zmiana daje zadaniom zaciemniania kodu szansę na dostosowanie zasobów Javy po zaciemnieniu pakietów.
  • Rozwiązaliśmy problem z używaniem kodu Java Native Interface (JNI) we wtyczce eksperymentalnej biblioteki.
  • We wtyczce eksperymentalnej dodaliśmy możliwość ustawienia wersji platformy niezależnie od atrybutu android:compileSdkVersion.