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: - 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ówTransform
i zarejestruj ją za pomocąandroid.registerTransform(theTransform)
lubandroid.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 klasyApplicationVariant
. Nie możesz już uzyskać dostępu do zadaniaDex
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ścigeneratedDensities
w sekcjachdefaultConfig
lubproductFlavor
plikubuild.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ładapp
ilib
, 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
.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Zintegrowaliśmy wtyczkę Data Binding z wtyczką na Androida dla Gradle. Aby ją włączyć, dodaj ten kod do każdego pliku