Wtyczka Androida do obsługi Gradle w wersji 1.5.0 (listopad 2015 r.)

Zależności:
Minimalna wersja Wersja domyślna Uwagi
Gradle 2.2.1 2.2.1 Więcej informacji znajdziesz w artykule Aktualizowanie Gradle.
Narzędzia do kompilowania pakietu SDK 21.1.1 21.1.1 Zainstaluj lub skonfiguruj narzędzia do kompilacji pakietu SDK.
Uwagi ogólne:
  • Wtyczka Data Binding została zintegrowana z wtycką Androida do obsługi Gradle. Aby go włączyć, dodaj ten kod do każdego pliku build.gradle w ramach projektu, który używa wtyczki:
  • android {
        dataBinding {
            enabled = true
        }
    }
            
    android {
        dataBinding {
            enabled = true
        }
    }
            
  • Dodano nowy interfejs Transform API, aby umożliwić wtyczkom innych firm manipulowanie skompilowanymi plikami .class przed ich przekształceniem w pliki .dex. Interfejs Transform API upraszcza wstrzykiwanie niestandardowych manipulacji klasami, zapewniając jednocześnie większą elastyczność w zakresie manipulacji. 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 musisz łączyć zadań ze sobą. Pamiętaj o tych kwestiach dotyczących interfejsu Transform API:
    • Transformację można zastosować do co najmniej jednego z tych elementów: bieżącego projektu, podprojektów i bibliotek zewnętrznych.
    • Transformacja musi być zarejestrowana globalnie, co powoduje jej zastosowanie do wszystkich wariantów.
    • Przetwarzanie kodu wewnętrznego za pomocą biblioteki Java Code Coverage Library (JaCoCo), ProGuard i MultiDex korzysta teraz z interfejsu Transform API. Jednak pakiet Java Android Compiler Kit (Jack) nie korzysta z tego interfejsu API: korzysta z niego tylko ścieżka kodu javac/dx.
    • Gradle wykonuje przekształcenia w tej kolejności: JaCoCo, wtyczki innych firm, ProGuard. Kolejność wykonywania wtyczek innych firm odpowiada kolejności dodawania przez nie przekształceń. Deweloperzy wtyczek innych firm nie mogą kontrolować kolejności wykonywania przekształceń za pomocą interfejsu API.
  • wycofanie z użycia metody dex getter z klasy ApplicationVariant. Nie możesz już uzyskać dostępu do zadania Dex za pomocą interfejsu API wariantów, ponieważ jest ono teraz wykonywane za pomocą transformacji. Obecnie nie ma żadnego zamiennika dla procesu dex.
  • Naprawiono obsługę dodatkowych komponentów.
  • Ulepszona obsługa MultiDex – udostępnienie tej funkcji w projektach testowych. Testy mają teraz automatycznie zależność com.android.support:multidex-instrumentation.
  • Dodano możliwość prawidłowego przerwania kompilacji Gradle i zgłoszenia przyczyny błędu, gdy kompilacja Gradle wywołuje zadania asynchroniczne, a proces roboczy zawiedzie.
  • Dodano obsługę konfigurowania konkretnego interfejsu binarnego aplikacji (ABI) w wariantach zawierających wiele interfejsów ABI.
  • Dodano obsługę listy numerów seryjnych urządzeń rozdzielonych przecinkami dla zmiennej środowiskowej ANDROID_SERIAL podczas instalowania i uruchamiania testów.
  • Usunięto błąd instalacji na urządzeniach z Androidem 5.0 (interfejs API na poziomie 20) lub nowszym, gdy nazwa pliku APK zawiera spacje.
  • Rozwiązaliśmy różne problemy związane z wyświetlaniem błędów narzędzia Android Asset Packaging Tool (AAPT).
  • Dodano obsługę przyrostowego pomiaru JaCoCo w celu szybszego tworzenia kompilacji przyrostowych. Wtyczka Androida do obsługi Gradle wywołuje teraz bezpośrednio instrumentator JaCoCo. Aby wymusić nowszą wersję narzędzia do instrumentowania JaCoCo, musisz je dodać jako zależność skryptu kompilacji.
  • Rozwiązano problem z obsługą JaCoCo, tak aby ignorować pliki, które nie są klasami.
  • Dodano obsługę wektorowych obiektów rysujących w celu generowania obrazów PNG na etapie kompilacji, aby zapewnić zgodność wsteczną. Wtyczka Androida do obsługi Gradle generuje pliki PNG dla każdego wektora drawable znalezionego w katalogu zasobów, który nie określa wersji interfejsu API lub określa atrybut android:minSdkVersion o wartości równej 20 lub niższej w elemencie <uses-sdk> w manifeście aplikacji. Gęstość plików PNG możesz ustawić za pomocą właściwości generatedDensities w sekcji defaultConfig lub productFlavor w pliku build.gradle.
  • Dodano udostępnianie obiektu android.jar, który jest generowany przez wtyczkę tylko raz i służy do testowania jednostkowego. Teraz udostępniają go różne moduły, np. app i lib. Usuń plik $rootDir/build, aby wygenerować go ponownie.
  • Zmieniliśmy przetwarzanie zasobów Javy tak, 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.
  • Wyeliminowaliśmy problem z korzystaniem z interfejsu JNI (Java Native Interface) w pluginie biblioteki eksperymentalnej.
  • Dodaliśmy możliwość ustawiania wersji platformy niezależnie od atrybutu android:compileSdkVersion w pluginie biblioteki eksperymentalnej.