Wtyczka Androida do obsługi Gradle, wersja 1.5.0 (listopad 2015 r.)

Zależności:
Wersja minimalna Wersja domyślna Uwagi
Gradle 2.2.1 2.2.1 Więcej informacji znajdziesz w artykule o aktualizowaniu Gradle.
Narzędzia do kompilacji pakietu SDK 21.1.1 21.1.1 Zainstaluj lub skonfiguruj narzędzia kompilacji pakietu SDK.
Uwagi ogólne:
  • Zintegrowaliśmy wtyczkę Data Binding z wtyczką Androida do obsługi Gradle. Aby ją włączyć, dodaj ten kod do każdego pliku build.gradle w projekcie, który używa tej wtyczki:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Dodaliśmy nowy interfejs Transform API umożliwiający wtyczkom innych firm manipulowanie skompilowanymi plikami .class przed ich przekonwertowaniem na pliki .dex. Interfejs Transform API upraszcza wstawianie niestandardowych manipulacji klasami , a jednocześnie zapewnia większą elastyczność w zakresie tego, czym można manipulować. Aby wstawić transformację 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 musisz łączyć zadań. Oto kilka informacji o interfejsie Transform API:
    • Transformacja może dotyczyć co najmniej 1 z tych elementów: bieżącego projektu, podprojektów, i bibliotek zewnętrznych.
    • Transformacja musi być zarejestrowana globalnie, co oznacza, że będzie stosowana do wszystkich wariantów.
    • Wewnętrzne przetwarzanie kodu, za pomocą biblioteki Java Code Coverage Library (JaCoCo), ProGuard, i MultiDex, korzysta teraz z interfejsu Transform API. Jednak Java Android Compiler Kit (Jack) nie używa tego interfejsu API: tylko ścieżka kodu javac/dx.
    • Gradle wykonuje transformacje w tej kolejności: JaCoCo, wtyczki innych firm, ProGuard. Kolejność wykonywania wtyczek innych firm jest zgodna z kolejnością, w jakiej transformacje są dodawane przez te wtyczki. Deweloperzy wtyczek innych firm nie mogą kontrolować kolejności wykonywania transformacji za pomocą interfejsu API.
  • Wycofaliśmy getter dex z klasy ApplicationVariant. Nie możesz już uzyskiwać dostępu do zadania Dex za pomocą interfejsu API wariantu, ponieważ jest ono teraz wykonywane za pomocą transformacji. Obecnie nie ma zamiennika do kontrolowania procesu dex.
  • Naprawiliśmy obsługę przyrostową zasobów.
  • Ulepszyliśmy obsługę MultiDex, udostępniając ją w projektach testowych. Testy mają teraz automatycznie zależność com.android.support:multidex-instrumentation .
  • Dodaliśmy możliwość prawidłowego przerwania kompilacji Gradle i zgłoszenia podstawowej przyczyny błędu gdy kompilacja Gradle wywołuje zadania asynchroniczne i występuje błąd w procesie roboczym procesu.
  • Dodaliśmy obsługę konfigurowania konkretnego interfejsu binarnego aplikacji (ABI) w wariantach które zawierają wiele interfejsów ABI.
  • Dodaliśmy obsługę listy numerów seryjnych urządzeń rozdzielonej przecinkami w zmiennej środowiskowej ANDROID_SERIAL podczas instalowania lub uruchamiania testów.
  • Naprawiliśmy błąd instalacji na urządzeniach z Androidem 5.0 (poziom API 20) i nowszym gdy nazwa pliku APK zawiera spację.
  • Rozwiązaliśmy różne problemy związane z danymi wyjściowymi narzędzia Android Asset Packaging Tool (AAPT).
  • Dodaliśmy obsługę przyrostowej instrumentacji JaCoCo, aby przyspieszyć kompilacje przyrostowe. Wtyczka Androida do obsługi Gradle wywołuje teraz instrumentator JaCoCo bezpośrednio. Aby wymusić nowszą wersję instrumentatora JaCoCo, musisz dodać ją jako zależność skryptu kompilacji.
  • Naprawiliśmy obsługę JaCoCo, aby ignorowała pliki, które nie są klasami.
  • Dodaliśmy obsługę obiektu rysowalnego wektorowo, aby generować pliki PNG w czasie kompilacji na potrzeby zgodności wstecznej. Wtyczka Androida do obsługi Gradle generuje pliki PNG dla każdego obiektu rysowalnego wektorowo 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 manifeście aplikacji. Gęstości PNG możesz ustawić za pomocą właściwości generatedDensities w sekcjach defaultConfig lub productFlavor pliku build.gradle.
  • Dodaliśmy udostępnianie pliku android.jar, który można poddać testom jednostkowym. Wtyczka generuje go tylko raz. Udostępnia go teraz wiele modułów, np. app i lib. Aby go ponownie wygenerować, usuń $rootDir/build.
  • Zmieniliśmy przetwarzanie zasobów Java, aby odbywało się przed zadaniami zaciemniania, a nie podczas pakowania pliku APK. Ta zmiana umożliwia zadaniom zaciemniania dostosowanie zasobów Java po zaciemnieniu pakietów.
  • Naprawiliśmy problem z używaniem kodu Java Native Interface (JNI) w eksperymentalnej wtyczce biblioteki plugin.
  • Dodaliśmy możliwość ustawienia wersji platformy niezależnie od android:compileSdkVersion atrybutu w eksperymentalnej bibliotece wtyczki.