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 sekcji Aktualizowanie Gradle.
SDK Build Tools 21.1.1 21.1.1 Zainstaluj lub skonfiguruj narzędzia do 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 korzysta z tej wtyczki:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Dodaliśmy nowy interfejs Transform API, który umożliwia wtyczkom innych firm manipulowanie skompilowanymi plikami .class przed ich przekształceniem w pliki .dex. Interfejs Transform API upraszcza wstawianie niestandardowych manipulacji klasami, a jednocześnie zapewnia większą elastyczność w zakresie tego, co można manipulować. Aby wstawić przekształcenie do kompilacji, utwórz nową klasę implementującą jeden z interfejsów Transform, a następnie zarejestruj ją za pomocą android.registerTransform(theTransform) lub android.registerTransform(theTransform, dependencies). Nie musisz łączyć ze sobą zadań. O interfejsie Transform API pamiętaj o tych kwestiach:
    • Przekształcenie może dotyczyć co najmniej jednego z tych elementów: bieżącego projektu, podprojektów i bibliotek zewnętrznych.
    • Przekształcenie musi być zarejestrowane globalnie, co oznacza, że będzie stosowane 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 zestaw kompilatora Java Android (Jack) nie korzysta z tego interfejsu API: tylko ścieżka kodu javac/dx.
    • Gradle wykonuje przekształcenia w tej kolejności: JaCoCo, wtyczki innych firm, ProGuard. Kolejność wykonywania wtyczek innych firm jest zgodna z kolejnością, w jakiej przekształcenia są dodawane przez te wtyczki. Deweloperzy wtyczek innych firm nie mogą kontrolować kolejności wykonywania przekształceń za pomocą interfejsu API.
  • Wycofano getter dex z klasy ApplicationVariant. Nie możesz już uzyskać dostępu do zadania Dex za pomocą interfejsu API wariantu, ponieważ jest ono teraz realizowane za pomocą przekształcenia. Obecnie nie ma zamiennika do kontrolowania procesu dex.
  • Naprawiono obsługę przyrostową komponentów.
  • Ulepszona obsługa MultiDex dzięki udostępnieniu jej 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łaszania przyczyny błędu, gdy kompilacja Gradle wywołuje zadania asynchroniczne, a w procesie roboczym występuje błąd.
  • Dodaliśmy obsługę konfigurowania konkretnego interfejsu binarnego aplikacji (ABI) w wersjach zawierających wiele interfejsów ABI.
  • Dodano obsługę listy numerów seryjnych urządzeń rozdzielonych przecinkami w przypadku zmiennej środowiskowej ANDROID_SERIAL podczas instalowania lub uruchamiania testów.
  • Naprawiono błąd instalacji na urządzeniach z Androidem 5.0 (interfejs API na poziomie 20) i nowszym, gdy nazwa pliku APK zawierała spację.
  • Rozwiązaliśmy różne problemy związane z danymi wyjściowymi narzędzia Android Asset Packaging Tool (AAPT).
  • Dodano obsługę przyrostowego instrumentowania JaCoCo, aby przyspieszyć przyrostowe kompilacje. Wtyczka Androida do obsługi Gradle wywołuje teraz bezpośrednio instrumentator JaCoCo. Aby wymusić użycie nowszej wersji instrumentu JaCoCo, musisz dodać ją jako zależność skryptu kompilacji.
  • Poprawiono obsługę JaCoCo, aby ignorował pliki, które nie są klasami.
  • Dodaliśmy obsługę rysunków wektorowych, aby generować pliki PNG w czasie kompilacji na potrzeby zgodności wstecznej. Wtyczka Androida do obsługi Gradle generuje pliki PNG dla każdego obrazu 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 manifeście aplikacji. Gęstość PNG możesz ustawić za pomocą właściwości generatedDensities w sekcjach defaultConfig lub productFlavor pliku build.gradle.
  • Dodano udostępnianie obiektu android.jar, który można poddać testom, a który wtyczka generuje tylko raz i używa do testów jednostkowych. Korzysta z niego teraz kilka modułów, np. applib. Usuń $rootDir/build, aby wygenerować go ponownie.
  • 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 Javy po zaciemnieniu pakietów.
  • Rozwiązaliśmy problem z używaniem kodu Java Native Interface (JNI) we wtyczce biblioteki eksperymentalnej.
  • Dodaliśmy możliwość ustawienia wersji platformy niezależnie od atrybutu android:compileSdkVersion w eksperymentalnej bibliotece wtyczek.