Poniżej znajdziesz informacje o wersjach Androida Studio 3.6 i starszych oraz wtyczki Androida do obsługi Gradle 3.6.0 i starszych.
Starsze wersje Androida Studio
3.6 (luty 2020 r.)
Android Studio 3.6 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
Chcielibyśmy też podziękować wszystkim osobom z naszej społeczności, które pomogły nam w przygotowaniu tej wersji.
3.6.3 (kwiecień 2020 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.6.2 (marzec 2020 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.6.1 (luty 2020 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
Narzędzia do projektowania
Ta wersja Androida Studio zawiera aktualizacje kilku narzędzi do projektowania, w tym Edytora układu i Menedżera zasobów.
Widok podzielony i powiększenie w edytorach projektów
Ta wersja zawiera te aktualizacje edytorów projektu wizualnego:
-
Edytory projektu, takie jak Edytor układu i Edytor nawigacji, udostępniają teraz widok Podzielony, który umożliwia jednoczesne wyświetlanie widoków Projekt i Kod interfejsu. W prawym górnym rogu okna edytora znajdują się teraz 3 przyciski
do przełączania opcji wyświetlania:
-
Aby włączyć widok dzielony, kliknij ikonę Podziel
.
-
Aby włączyć widok źródła XML, kliknij ikonę Źródło
.
-
Aby włączyć widok projektu, kliknij ikonę Projekt
.
-
Aby włączyć widok dzielony, kliknij ikonę Podziel
-
Elementy sterujące powiększaniem i przesuwaniem w edytorach projektów zostały przeniesione do pływającego panelu w prawym dolnym rogu okna edytora.
Więcej informacji znajdziesz w artykule Tworzenie interfejsu za pomocą edytora układu.
Karta zasobów selektora kolorów
Aby ułatwić szybkie aktualizowanie wartości zasobów kolorów w aplikacji podczas korzystania z selektora kolorów w pliku XML lub narzędzi do projektowania, środowisko IDE automatycznie wypełnia wartości zasobów kolorów.
Resource Manager
Menedżer zasobów zawiera te zmiany:
- Menedżer zasobów obsługuje teraz większość typów zasobów.
- Podczas wyszukiwania zasobu Menedżer zasobów wyświetla teraz wyniki ze wszystkich modułów projektu. Wcześniej wyszukiwania zwracały wyniki tylko z wybranego modułu.
- Przycisk filtra umożliwia wyświetlanie zasobów z lokalnych modułów zależnych, bibliotek zewnętrznych i platformy Android. Możesz też użyć filtra, aby wyświetlić atrybuty motywu.
- Podczas importowania możesz teraz zmieniać nazwy zasobów, klikając pole tekstowe nad zasobem.
Więcej informacji znajdziesz w artykule Zarządzanie zasobami interfejsu aplikacji za pomocą Menedżera zasobów.
Aktualizacje wtyczki Androida do obsługi Gradle
Najnowsza wersja wtyczki Androida do obsługi Gradle zawiera wiele aktualizacji, w tym optymalizacje szybkości kompilacji, obsługę wtyczki do publikowania w Mavenie i obsługę powiązania widoków. Więcej informacji znajdziesz w pełnej treści informacji o wersji.
Wyświetl powiązanie
Powiązanie widoków ułatwia pisanie kodu, który wchodzi w interakcję z widokami, przez generowanie klasy powiązania dla każdego pliku układu XML. Te klasy zawierają bezpośrednie odwołania do wszystkich widoków, które mają identyfikator w odpowiednim układzie.
Ponieważ zastępuje findViewById()
, powiązanie widoku eliminuje ryzyko wystąpienia wyjątków wskaźnika null wynikających z nieprawidłowego identyfikatora widoku.
Aby włączyć powiązanie widoków, musisz używać wtyczki Androida do obsługi Gradle w wersji 3.6.0 lub nowszej i w pliku build.gradle
każdego modułu umieścić ten kod:
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
Apply Changes
Możesz teraz dodać klasę, a następnie wdrożyć tę zmianę kodu w działającej aplikacji, klikając Zastosuj zmiany w kodzie lub Zastosuj zmiany i zrestartuj aktywność .
Więcej informacji o różnicach między tymi dwoma działaniami znajdziesz w sekcji Zastosuj zmiany.
Zmiana opcji menu, aby włączyć obsługę aplikacji błyskawicznych
Po utworzeniu projektu aplikacji możesz w dowolnym momencie natychmiast włączyć moduł podstawowy w ten sposób:
- Otwórz panel Project (Projekt), wybierając na pasku menu View > Tool Windows > Project (Widok > Okna narzędzi > Projekt).
- Kliknij prawym przyciskiem myszy moduł podstawowy, zwykle o nazwie „app”, i wybierz Refactor > Enable Instant Apps Support (Przebuduj > Włącz obsługę aplikacji błyskawicznych).
- W wyświetlonym oknie wybierz moduł podstawowy z menu.
- Kliknij OK.
Uwaga: opcja natychmiastowego włączania modułu aplikacji podstawowej w kreatorze Utwórz nowy projekt została usunięta.
Więcej informacji znajdziesz w omówieniu aplikacji błyskawicznych w Google Play.
Deobfuskacja kodu bajtowego klas i metod w narzędziu APK Analyzer
Podczas sprawdzania plików DEX za pomocą Analizatora APK możesz odczytywać zaciemniony kod bajtowy klas i metod w ten sposób:
- Na pasku menu wybierz Build > Analyze APK (Utwórz > Przeanalizuj pakiet APK).
- W wyświetlonym oknie przejdź do pliku APK, który chcesz sprawdzić, i wybierz go.
- Kliknij Otwórz.
- W Analizatorze APK wybierz plik DEX, który chcesz sprawdzić.
- W przeglądarce plików DEX wczytaj plik mapowań ProGuard dla analizowanego pliku APK.
- Kliknij prawym przyciskiem myszy klasę lub metodę, którą chcesz sprawdzić, i wybierz Pokaż kod bajtowy.
Narzędzia natywne
Poniższe aktualizacje obsługują programowanie w języku natywnym (C/C++) w Android Studio.
Obsługa języka Kotlin
Te funkcje NDK w Android Studio, które były wcześniej obsługiwane w Javie, są teraz obsługiwane również w Kotlinie:
-
Przechodzenie od deklaracji JNI do odpowiedniej funkcji implementacji w C/C++. Aby wyświetlić to mapowanie, najedź kursorem na znacznik elementu C lub C++ w pobliżu numeru wiersza w zarządzanym pliku kodu źródłowego.
-
Automatycznie tworzy funkcję implementacji stub dla deklaracji JNI. Najpierw zdefiniuj deklarację JNI, a potem wpisz „jni” lub nazwę metody w pliku C/C++, aby ją aktywować.
-
Nieużywane funkcje implementacji natywnej są w kodzie źródłowym wyróżnione jako ostrzeżenie. Deklaracje JNI bez implementacji są również wyróżniane jako błąd.
-
Gdy zmienisz nazwę (przeprowadzisz refaktoryzację) funkcji implementacji natywnej, wszystkie odpowiednie deklaracje JNI zostaną zaktualizowane. Zmień nazwę deklaracji JNI, aby zaktualizować funkcję implementacji natywnej.
-
Sprawdzanie sygnatur w przypadku implementacji JNI powiązanych w sposób dorozumiany.
Inne ulepszenia JNI
Edytor kodu w Android Studio obsługuje teraz bardziej płynny proces programowania JNI, w tym ulepszone podpowiedzi dotyczące typów, autouzupełnianie, sprawdzanie i refaktoryzację kodu.
Ponowne wczytywanie pliku APK w przypadku bibliotek natywnych {:#3.6-reload-apk}
Nie musisz już tworzyć nowego projektu, gdy plik APK w projekcie zostanie zaktualizowany poza środowiskiem IDE. Android Studio wykrywa zmiany w pliku APK i umożliwia jego ponowne zaimportowanie.
Dołączanie źródeł pliku APK zawierających tylko kod Kotlin
Podczas profilowania i debugowania wstępnie skompilowanych plików APK można teraz dołączać zewnętrzne źródła plików APK zawierające tylko kod Kotlin. Więcej informacji znajdziesz w artykule Dołączanie źródeł Kotlin/Java.
Wykrywanie wycieków w Narzędziu do profilowania pamięci
Podczas analizowania zrzutu sterty w profilerze pamięci możesz teraz filtrować dane profilowania, które według Androida Studio mogą wskazywać wycieki pamięci w przypadku instancji Activity
i Fragment
w aplikacji.
Filtr wyświetla te typy danych:
-
Instancje
Activity
, które zostały zniszczone, ale nadal są do nich odwołania. -
Instancje
Fragment
, które nie mają prawidłowego adresuFragmentManager
, ale nadal są do nich odwołania.
Dołączanie źródeł pliku APK zawierających tylko kod Kotlin
Podczas profilowania i debugowania wstępnie skompilowanych plików APK można teraz dołączać zewnętrzne źródła plików APK zawierające tylko kod Kotlin. Więcej informacji znajdziesz w artykule Dołączanie źródeł Kotlin/Java.
Wykrywanie wycieków w Narzędziu do profilowania pamięci
Podczas analizowania zrzutu sterty w profilerze pamięci możesz teraz filtrować dane profilowania, które według Androida Studio mogą wskazywać wycieki pamięci w przypadku instancji Activity
i Fragment
w aplikacji.
Filtr wyświetla te typy danych:
-
Instancje
Activity
, które zostały zniszczone, ale nadal są do nich odwołania. -
instancje
Fragment
, które nie mają prawidłowegoFragmentManager
, ale nadal są do nich odwołania.
W niektórych sytuacjach, np. w tych poniżej, filtr może generować fałszywe dopasowania:
- Utworzono
Fragment
, ale nie został on jeszcze użyty. Fragment
jest buforowany, ale nie w ramachFragmentTransaction
.
Aby skorzystać z tej funkcji, najpierw zrób zrzut sterty lub zaimportuj plik zrzutu sterty do Android Studio. Aby wyświetlić fragmenty i działania, które mogą powodować wycieki pamięci, w okienku zrzutu sterty w profilerze pamięci zaznacz pole wyboru Activity/Fragment Leaks (Wycieki działań/fragmentów).
Filtrowanie zrzutu sterty pod kątem wycieków pamięci.
Emulatory
Android Studio 3.6 umożliwia korzystanie z kilku aktualizacji zawartych w Android Emulatorze 29.2.7 i nowszych, które opisujemy poniżej.
Ulepszona obsługa lokalizacji
Emulator Androida w wersji 29.2.7 i nowszych zapewnia dodatkową obsługę emulacji współrzędnych GPS i informacji o trasie. Gdy otworzysz Emulatory – rozszerzone opcje sterowania, opcje na karcie Lokalizacja będą teraz uporządkowane na 2 kartach: Pojedyncze punkty i Trasy.
Pojedyncze punkty
Na karcie Pojedyncze punkty możesz użyć widoku internetowego Map Google, aby wyszukać interesujące Cię miejsca, tak jak w przypadku korzystania z Map Google na telefonie lub w przeglądarce. Gdy wyszukasz lub klikniesz lokalizację na mapie, możesz ją zapisać, wybierając opcję Zapisz punkt u dołu mapy. Wszystkie zapisane lokalizacje są wymienione po prawej stronie okna Rozszerzone ustawienia.
Aby ustawić lokalizację emulatorów na lokalizację wybraną na mapie, kliknij przycisk Ustaw lokalizację w prawym dolnym rogu okna Rozszerzone elementy sterujące.
.
Trasy
Podobnie jak karta Pojedyncze punkty, karta Trasy zawiera widok internetowy Map Google, w którym możesz utworzyć trasę między co najmniej 2 lokalizacjami. Aby utworzyć i zapisać trasę:
- W widoku mapy użyj pola tekstowego, aby wyszukać pierwszy cel na trasie.
- Wybierz lokalizację z wyników wyszukiwania.
- Kliknij przycisk Nawiguj.
- Wybierz na mapie punkt początkowy trasy.
- (Opcjonalnie) Kliknij Dodaj miejsce docelowe, aby dodać do trasy dodatkowe przystanki.
- Zapisz trasę, klikając Zapisz trasę w widoku mapy.
- Wpisz nazwę trasy i kliknij Zapisz.
Aby zasymulować podążanie przez emulator zapisaną trasą, wybierz ją z listy Zapisane trasy i kliknij Odtwórz trasę w prawym dolnym rogu okna Rozszerzone ustawienia. Aby zatrzymać symulację, kliknij Zatrzymaj trasę.
.
Aby ciągle symulować działanie emulatora na określonej trasie, włącz przełącznik obok opcji Powtórz odtwarzanie. Aby zmienić szybkość, z jaką emulator podąża wyznaczoną trasą, wybierz opcję z menu Szybkość odtwarzania.
Obsługa wielu wyświetlaczy
Emulator Androida umożliwia teraz wdrażanie aplikacji na wielu wyświetlaczach, które obsługują wymiary z możliwością dostosowania i mogą pomóc w testowaniu aplikacji obsługujących wiele okien i wiele wyświetlaczy. Podczas działania urządzenia wirtualnego możesz dodać maksymalnie 2 dodatkowe wyświetlacze w ten sposób:
-
Otwórz Rozszerzone ustawienia i przejdź na kartę Wyświetlacze.
-
Dodaj kolejny wyświetlacz, klikając Dodaj wyświetlacz dodatkowy.
-
W menu pod nagłówkiem Wyświetlacze dodatkowe wykonaj jedną z tych czynności:
-
Wybierz jeden z gotowych formatów obrazu.
-
Wybierz niestandardowy i ustaw wysokość, szerokość i dpi dla wyświetlacza niestandardowego.
-
(Opcjonalnie) Aby dodać trzeci wyświetlacz, kliknij Dodaj wyświetlacz dodatkowy.
-
Aby dodać określone wyświetlacze do uruchomionego urządzenia wirtualnego, kliknij Zastosuj zmiany.
Nowe urządzenia wirtualne i szablony projektów dla systemu operacyjnego Android Automotive
Podczas tworzenia nowego projektu w Android Studio możesz teraz wybrać jeden z 3 szablonów na karcie Automotive w kreatorze Utwórz nowy projekt: No Activity, Media service i Messaging service. W przypadku istniejących projektów możesz dodać obsługę urządzeń z Androidem Automotive, wybierając z paska menu Plik > Nowy > Nowy moduł i klikając Moduł Automotive. Kreator Utwórz nowy moduł przeprowadzi Cię przez proces tworzenia nowego modułu za pomocą jednego z szablonów projektu Android Automotive.
.
Możesz też utworzyć urządzenie wirtualne z Androidem (AVD) na urządzenia z systemem operacyjnym Android Automotive, wybierając jedną z tych opcji na karcie Automotive w kreatorze Konfiguracja urządzenia wirtualnego.
- Polestar 2: utwórz AVD, który emuluje jednostkę główną Polestar 2.
- Automotive (1024p landscape): utwórz AVD dla ogólnych jednostek głównych Androida Automotive o rozdzielczości 1024 x 768 pikseli.
.
Wznawianie pobierania pakietu SDK
Podczas pobierania komponentów i narzędzi pakietu SDK za pomocą Menedżera SDK Android Studio umożliwia teraz wznawianie przerwanych pobrań (np. z powodu problemu z siecią) zamiast ponownego rozpoczynania pobierania od początku. To ulepszenie jest szczególnie przydatne w przypadku dużych plików do pobrania, takich jak emulator Androida czy obrazy systemu, gdy połączenie z internetem jest niestabilne.
Jeśli w tle działa zadanie pobierania pakietu SDK, możesz teraz wstrzymać lub wznowić pobieranie za pomocą elementów sterujących na pasku stanu.
Zadanie pobierania w tle na pasku stanu z nowymi elementami sterującymi, które umożliwiają wstrzymanie lub wznowienie pobierania.
Wycofanie Win32
32-bitowa wersja Androida Studio na Windowsa nie będzie już otrzymywać aktualizacji po grudniu 2019 r., a po grudniu 2020 r. nie będzie już obsługiwana. Możesz nadal korzystać z Androida Studio. Aby otrzymywać dodatkowe aktualizacje, przejdź na 64-bitową wersję systemu Windows.
Więcej informacji znajdziesz na blogu o wycofaniu 32-bitowej wersji systemu Windows.
Nowa opcja optymalizacji czasu synchronizacji Gradle
W poprzednich wersjach Android Studio pobierało listę wszystkich zadań Gradle podczas synchronizacji Gradle. W przypadku dużych projektów pobieranie listy zadań może powodować wydłużenie czasu synchronizacji.
Aby poprawić wydajność synchronizacji Gradle, kliknij Plik > Ustawienia > Eksperymentalne i wybierz opcję Nie twórz listy zadań Gradle podczas synchronizacji Gradle.
Gdy włączysz tę opcję, Android Studio pominie tworzenie listy zadań podczas synchronizacji, co pozwoli szybciej ukończyć synchronizację Gradle i poprawi szybkość reakcji interfejsu. Pamiętaj, że jeśli IDE pominie tworzenie listy zadań, listy zadań w panelu Gradle będą puste, a autouzupełnianie nazw zadań w plikach kompilacji nie będzie działać.
Nowe miejsce, w którym można przełączać tryb offline Gradle
Aby włączyć lub wyłączyć tryb offline Gradle, najpierw na pasku menu kliknij Widok > Okna narzędzi > Gradle. Następnie u góry okna Gradle kliknij Przełącz tryb offline
.
IntelliJ IDEA 2019.2
Główne środowisko IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w ramach wersji 2019.2.
Więcej informacji o ulepszeniach z innych wersji IntelliJ, które są uwzględnione łącznie w wersji 2019.2, znajdziesz na tych stronach:
Współtwórcy społeczności
Dziękujemy wszystkim członkom naszej społeczności, którzy pomogli nam odkryć błędy i inne sposoby ulepszenia Androida Studio 3.6. W szczególności dziękujemy za zgłoszenie błędów tym osobom:
|
|
|
3.5 (sierpień 2019 r.)
Android Studio 3.5 to ważna wersja, która jest wynikiem projektu Marble. Od wydania Androida Studio 3.3 inicjatywa Project Marble obejmowała wiele wersji, które koncentrowały się na ulepszaniu 3 głównych obszarów IDE: stanu systemu, dopracowania funkcji i usuwania błędów.
Więcej informacji o tych i innych aktualizacjach Projektu Marble znajdziesz w poście na blogu dla deweloperów aplikacji na Androida lub w sekcjach poniżej.
Chcemy też podziękować wszystkim osobom z naszej społeczności, które pomogły nam w przygotowaniu tej wersji.
3.5.3 (grudzień 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji.
3.5.2 (listopad 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.5.1 (październik 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
Project Marble: stan systemu
W tej sekcji opisujemy zmiany w Androidzie Studio 3.5, które mają na celu poprawę stanu systemu.
Zalecane ustawienia pamięci
Android Studio powiadamia teraz, czy możesz zwiększyć wydajność, zwiększając maksymalną ilość pamięci RAM, jaką system operacyjny powinien przydzielać procesom Androida Studio, takim jak podstawowe środowisko IDE, demon Gradle i demon Kotlin. Możesz zaakceptować zalecane ustawienia, klikając link do działania w powiadomieniu, lub dostosować je ręcznie, wybierając Plik > Ustawienia (lub Android Studio > Preferencje w systemie macOS), a następnie odszukując sekcję Ustawienia pamięci w obszarze Wygląd i zachowanie > Ustawienia systemu. Więcej informacji znajdziesz w artykule Maksymalny rozmiar sterty.
Powiadomienie o zalecanych ustawieniach pamięci.
Raport o wykorzystaniu pamięci
Problemy z pamięcią w Android Studio są czasami trudne do odtworzenia i zgłoszenia. Aby pomóc w rozwiązaniu tego problemu, Android Studio umożliwia wygenerowanie raportu o użyciu pamięci. W tym celu na pasku menu kliknij Help > Analyze Memory Usage (Pomoc > Analizuj użycie pamięci). Gdy to zrobisz, środowisko IDE lokalnie oczyści dane z informacji umożliwiających identyfikację, a następnie zapyta, czy chcesz wysłać je do zespołu Androida Studio, aby pomóc w określeniu źródła problemów z pamięcią. Więcej informacji znajdziesz w artykule Generowanie raportu o wykorzystaniu pamięci.
Raport wykorzystania pamięci.
Windows: optymalizacja wejścia/wyjścia plików antywirusowych
Android Studio automatycznie sprawdza teraz, czy niektóre katalogi projektu są wykluczone ze skanowania antywirusowego w czasie rzeczywistym. Gdy można wprowadzić zmiany, aby zwiększyć wydajność kompilacji, Android Studio powiadamia Cię o tym i podaje instrukcje optymalizacji konfiguracji programu antywirusowego. Więcej informacji znajdziesz w artykule Minimalizowanie wpływu oprogramowania antywirusowego na szybkość kompilacji.
Project Marble: dopracowywanie funkcji
W tej sekcji opisujemy zmiany w Android Studio 3.5, które mają na celu ulepszenie istniejących funkcji.
Apply Changes
Funkcja Zastosuj zmiany umożliwia przekazywanie zmian w kodzie i zasobach do uruchomionej aplikacji bez konieczności jej ponownego uruchamiania, a w niektórych przypadkach bez ponownego uruchamiania bieżącej aktywności. Funkcja Zastosuj zmiany wykorzystuje zupełnie nowe podejście do zachowywania stanu aplikacji. W przeciwieństwie do funkcji Instant Run, która przepisywała kod bajtowy pliku APK, funkcja Zastosuj zmiany na bieżąco przedefiniowuje klasy, korzystając z instrumentacji środowiska wykonawczego obsługiwanej w Androidzie 8.0 (API na poziomie 26) lub nowszym.
Więcej informacji znajdziesz w sekcji Stosowanie zmian.
Przyciski na pasku narzędzi Zastosuj zmiany.
Proces wdrażania aplikacji
W IDE pojawiło się nowe menu, które umożliwia szybkie wybranie urządzenia, na którym chcesz wdrożyć aplikację. W menu znajduje się też nowa opcja, która umożliwia uruchamianie aplikacji na kilku urządzeniach jednocześnie.
Menu urządzenia docelowego.
Ulepszona synchronizacja Gradle i wykrywanie pamięci podręcznej
IDE lepiej wykrywa teraz, kiedy Gradle okresowo czyści pamięć podręczną kompilacji, zmniejszając zużycie miejsca na dysku twardym. W poprzednich wersjach ten stan powodował, że IDE zgłaszało brakujące zależności, a synchronizacja Gradle kończyła się niepowodzeniem. Teraz IDE pobiera zależności w miarę potrzeb, aby zapewnić pomyślne zakończenie synchronizacji Gradle.
Ulepszone dane wyjściowe błędów kompilacji
Okno Kompilacja
zapewnia teraz lepsze raportowanie błędów, np. link do pliku i wiersza
zgłoszonego błędu, w przypadku tych procesów kompilacji:
- Kompilacja i łączenie AAPT
- R8 i ProGuard
- Dexing
- Scalanie zasobów
- Analizowanie pliku XML
- kompilacja za pomocą Javac, Kotlinc i CMake,
Ulepszenia projektów
Ulepszone aktualizowanie, które zapewnia więcej informacji i działań ułatwiających aktualizację IDE i wtyczki Androida do obsługi Gradle. Na przykład więcej błędów synchronizacji i kompilacji zawiera działania, które pomogą Ci je ograniczyć podczas aktualizacji.
Pamiętaj, że IDE możesz aktualizować niezależnie od innych komponentów, takich jak wtyczka Androida do Gradle. Dzięki temu możesz bezpiecznie zaktualizować środowisko IDE, gdy tylko pojawi się nowsza wersja, a inne komponenty zaktualizować później.
Edytor układu
Android Studio 3.5 zawiera kilka ulepszeń w zakresie wizualizacji, zarządzania i interakcji z układem.
Podczas pracy z ConstraintLayout
w sekcji Ograniczenia w panelu Atrybuty wyświetlane są relacje ograniczeń wybranego komponentu interfejsu. Możesz wybrać ograniczenie na powierzchni projektu lub na liście ograniczeń, aby wyróżnić je w obu obszarach.
Relacje ograniczeń dla wybranego elementu interfejsu.
Podobnie możesz teraz usunąć ograniczenie, wybierając je i naciskając klawisz Delete
. Możesz też usunąć ograniczenie, przytrzymując klawisz Control
(Command
na macOS) i klikając punkt zakotwiczenia ograniczenia. Pamiętaj, że gdy przytrzymasz klawisz Control
lub Command
i najedziesz kursorem na punkt zakotwiczenia, wszystkie powiązane z nim ograniczenia zmienią kolor na czerwony, co oznacza, że możesz je usunąć, klikając.
Po wybraniu widoku możesz utworzyć ograniczenie, klikając dowolną ikonę + w sekcji Widżet ograniczeń w panelu Atrybuty, jak pokazano na ilustracji poniżej. Gdy utworzysz nowe ograniczenie, Edytor układu wybierze i wyróżni je, zapewniając natychmiastową wizualną informację zwrotną o tym, co zostało dodane.
Tworzenie ograniczeń za pomocą widżetu ograniczeń .
Podczas tworzenia ograniczenia Edytor układu wyświetla teraz tylko kwalifikujące się punkty zakotwiczenia, do których można zastosować ograniczenie. Wcześniej Edytor układu wyróżniał wszystkie punkty zakotwiczenia we wszystkich widokach, niezależnie od tego, czy można było je ograniczyć. Dodatkowo niebieska nakładka podświetla teraz element, którego dotyczy ograniczenie. To wyróżnienie jest szczególnie przydatne, gdy próbujesz ograniczyć komponent, który nakłada się na inny.
Tworzenie ograniczenia dla nakładającego się komponentu w Android Studio 3.4.
Tworzenie ograniczenia dla nakładającego się komponentu w Android Studio 3.5.
Oprócz powyższych aktualizacji Android Studio 3.5 zawiera też te ulepszenia Edytora układu:
- Widżet ograniczeń i menu domyślnego marginesu umożliwiają teraz używanie zasobów wymiarów w przypadku marginesów.
- Na pasku narzędzi Edytora układu zaktualizowaliśmy listę urządzeń, które określają rozmiar obszaru projektowania. Dodatkowo ulepszyliśmy przyciąganie podczas zmiany rozmiaru, a uchwyty zmiany rozmiaru na powierzchni projektu są teraz zawsze widoczne. Podczas zmiany rozmiaru pojawiają się nowe nakładki, które pokazują typowe rozmiary urządzeń.
- Edytor układu ma nową kolorystykę, która poprawia spójność i zmniejsza kontrast między komponentami, tekstem i ograniczeniami.
- Tryb schematu obejmuje teraz obsługę tekstu w przypadku niektórych komponentów, w których tekst nie był wyświetlany.
Więcej informacji o tych zmianach znajdziesz w artykule Android Studio Project Marble: Layout Editor.
Wiązanie danych
Oprócz dodania obsługi przyrostkowego przetwarzania adnotacji w przypadku powiązań danych środowisko IDE ulepsza funkcje i wydajność inteligentnego edytora podczas tworzenia wyrażeń powiązań danych w XML.
Wydajność edytora kodu w Android Studio 3.4.

Poprawa wydajności edycji kodu w Android Studio 3.5.
Ulepszona obsługa projektów w językach C i C++
Android Studio 3.5 zawiera kilka zmian, które poprawiają obsługę projektów w C/C++.
Ulepszenia panelu Warianty kompilacji w przypadku synchronizacji pojedynczego wariantu
W panelu Wersje kompilacji możesz teraz określić zarówno aktywną wersję kompilacji, jak i aktywny interfejs ABI. Ta funkcja upraszcza konfigurację kompilacji poszczególnych modułów i może też poprawić wydajność synchronizacji Gradle.
Więcej informacji znajdziesz w sekcji Zmiana wariantu kompilacji.
Panel Warianty kompilacji z wybranym pojedynczym wariantem według interfejsu ABI.
Wersje NDK działające równolegle
Możesz teraz używać kilku wersji NDK obok siebie. Ta funkcja zapewnia większą elastyczność podczas konfigurowania projektów, na przykład jeśli masz projekty, które używają różnych wersji NDK na tym samym komputerze.
Jeśli Twój projekt korzysta z wtyczki Androida do Gradle w wersji 3.5.0 lub nowszej, możesz też określić wersję NDK, której powinien używać każdy moduł w projekcie. Możesz użyć tej funkcji, aby tworzyć powtarzalne kompilacje i ograniczać niezgodności między wersjami NDK a wtyczką Androida do Gradle.
Więcej informacji znajdziesz w artykule Instalowanie i konfigurowanie NDK, CMake i LLDB.
Pomoc dotycząca ChromeOS
Android Studio oficjalnie obsługuje teraz urządzenia z ChromeOS, takie jak HP Chromebook x360 14, Acer Chromebook 13/Spin 13 i inne, o których możesz przeczytać w wymaganiach systemowych. Aby rozpocząć, pobierz Android Studio na zgodne urządzenie z ChromeOS i postępuj zgodnie z instrukcjami instalacji.
Uwaga: Android Studio w ChromeOS obsługuje obecnie wdrażanie aplikacji tylko na podłączonym urządzeniu. Więcej informacji znajdziesz w artykule Uruchamianie aplikacji na urządzeniu sprzętowym.
Przesyłanie warunkowe modułów funkcji
Przesyłanie warunkowe umożliwia określenie pewnych wymagań dotyczących konfiguracji urządzenia, które muszą być spełnione, aby moduły funkcji były pobierane automatycznie podczas instalacji aplikacji. Na przykład możesz skonfigurować moduł funkcji, który zawiera funkcję rzeczywistości rozszerzonej (AR), tak aby była dostępna podczas instalacji aplikacji tylko na urządzeniach obsługujących AR.
Ten mechanizm dostarczania umożliwia obecnie kontrolowanie pobierania modułu podczas instalacji aplikacji na podstawie tych konfiguracji urządzenia:
- funkcje sprzętu i oprogramowania urządzenia, w tym wersja OpenGL ES;
- Kraj użytkownika
- Poziom interfejsu API
Jeśli urządzenie nie spełnia wszystkich określonych przez Ciebie wymagań, moduł nie zostanie pobrany podczas instalacji aplikacji. Aplikacja może jednak później zażądać pobrania modułu na żądanie za pomocą Play Core Library. Więcej informacji znajdziesz w artykule Konfigurowanie dostawy warunkowej.
IntelliJ IDEA 2019.1
Główne środowisko IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2019.1, takie jak dostosowywanie motywów.
Ostatnia wersja IntelliJ, która była dołączona do Android Studio, to 2018.3.4. Więcej informacji o ulepszeniach z innych wersji IntelliJ, które są uwzględnione w tej wersji Androida Studio, znajdziesz w tych aktualizacjach poprawek:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.5.0
Informacje o nowościach w wtyczce Androida do obsługi Gradle w wersji 3.5.0, takich jak ulepszona obsługa przyrostkowego przetwarzania adnotacji i testów jednostkowych z możliwością zapisywania w pamięci podręcznej, znajdziesz w informacjach o wersji.
Współtwórcy społeczności
Dziękujemy wszystkim członkom naszej społeczności, którzy pomogli nam odkryć błędy i inne sposoby na ulepszenie Androida Studio 3.5. W szczególności dziękujemy tym osobom, które zgłosiły błędy o priorytecie P0 i P1:
|
|
|
3.4 (kwiecień 2019 r.)
Android Studio 3.4 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
3.4.2 (lipiec 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.4.1 (maj 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
Znane problemy w wersji 3.4.0
Profilowanie jest wyłączone podczas wdrażania aplikacji na urządzeniu z Androidem Q w wersji beta.
- Podczas korzystania z biblioteki Data Binding Library metoda
LiveDataListener.onChanged()
może zakończyć się niepowodzeniem z błędem NPE. Poprawka tego problemu zostanie uwzględniona w Androidzie Studio 3.4.1 i jest już dostępna w najnowszej wersji podglądowej Androida Studio 3.5. (zobacz problem nr 122066788)
IntelliJ IDEA 2018.3.4
Główne IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2018.3.4.
Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.4.0
Informacje o nowościach w wtyczce Androida do obsługi Gradle w wersji 3.4.0 znajdziesz w jej informacjach o wersji.
Okno Nowa struktura projektu
Nowe okno struktury projektu (PSD) ułatwia aktualizowanie zależności i konfigurowanie różnych aspektów projektu, takich jak moduły, warianty kompilacji, konfiguracje podpisywania i zmienne kompilacji.
Aby otworzyć plik PSD, na pasku menu wybierz Plik > Struktura projektu. Możesz też otworzyć PSD, naciskając Ctrl+Shift+Alt+S
w systemach Windows i Linux lub Command+;
(średnik) w systemie macOS. Poniżej znajdziesz opisy niektórych nowych i zaktualizowanych sekcji PSD.
Zmienne
Nowa sekcja zmiennych w pliku PSD umożliwia tworzenie zmiennych kompilacji i zarządzanie nimi, np. zmiennych, które zapewniają spójność numerów wersji zależności w całym projekcie.
- Szybko wyświetlaj i edytuj zmienne kompilacji, które już istnieją w skryptach kompilacji Gradle w projekcie.
- Dodawaj nowe zmienne kompilacji na poziomie projektu lub modułu bezpośrednio z pliku PSD.
Uwaga: jeśli istniejące pliki konfiguracji kompilacji przypisują wartości za pomocą złożonych skryptów Groovy, możesz nie mieć możliwości edytowania tych wartości za pomocą PSD. Nie możesz też edytować plików kompilacji napisanych w języku Kotlin za pomocą pliku PSD.
Moduły
Skonfiguruj właściwości, które mają być stosowane do wszystkich wariantów kompilacji w istniejącym module, lub dodaj nowe moduły do projektu w sekcji Moduły. Możesz tu na przykład skonfigurować defaultConfig
właściwości lub zarządzać konfiguracjami podpisywania.
Zależności
Sprawdź i zwizualizuj każdą zależność na wykresie zależności projektu, który został rozwiązany przez Gradle podczas synchronizacji projektu, wykonując te czynności:
- W panelu po lewej stronie PSD kliknij Zależności.
- W panelu Moduły wybierz moduł, którego rozwiązane zależności chcesz sprawdzić.
- Po prawej stronie PSD otwórz panel Resolved Dependencies (Rozwiązane zależności), który jest widoczny poniżej.
Możesz też szybko wyszukać i dodać zależności do projektu. W tym celu najpierw wybierz moduł w sekcji Dependencies (Zależności) w PSD, kliknij przycisk (+) w sekcji Declared Dependencies (Zadeklarowane zależności) i wybierz typ zależności, którą chcesz dodać.
W zależności od wybranego typu zależności zobaczysz okno podobne do tego poniżej, które pomoże Ci dodać zależność do modułu.
Warianty kompilacji
W tej sekcji pliku PSD utwórz i skonfiguruj warianty kompilacji oraz wersje produktu dla każdego modułu w projekcie. Możesz dodawać symbole zastępcze manifestu, pliki ProGuard i przypisywać klucze podpisywania.
Sugestie
Sugerowane aktualizacje zależności projektu i zmiennych kompilacji znajdziesz w sekcji Sugestie, jak pokazano poniżej.
Nowy Menedżer zasobów
Menedżer zasobów to nowe okno narzędziowe, które umożliwia importowanie, tworzenie, zarządzanie i używanie zasobów w aplikacji. Aby otworzyć to okno, na pasku menu kliknij Widok > Okna narzędziowe > Menedżer zasobów. Menedżer zasobów umożliwia:
- Wizualizacja zasobów: możesz wyświetlać podgląd elementów rysowalnych, kolorów i układów, aby szybko znaleźć potrzebne zasoby.
- Importowanie zbiorcze: możesz zaimportować kilka zasobów rysowalnych naraz, przeciągając je i upuszczając w oknie narzędzia Menedżer zasobów lub korzystając z kreatora Importowanie zasobów rysowalnych. Aby otworzyć kreator, kliknij przycisk (+) w lewym górnym rogu okna narzędzia, a następnie w menu wybierz Import Drawables (Importuj elementy rysunkowe).
-
Konwertowanie plików SVG na obiekty
VectorDrawable
: możesz użyć kreatora Importuj elementy rysunkowe, aby przekonwertować obrazy SVG na obiektyVectorDrawable
. - Przeciąganie i upuszczanie komponentów: w oknie narzędzia Menedżer zasobów możesz przeciągać i upuszczać elementy rysowalne w widokach projektu i XML Edytora układu.
- Wyświetlanie alternatywnych wersji: możesz teraz wyświetlać alternatywne wersje zasobów, klikając dwukrotnie zasób w oknie Narzędzie. W tym widoku zobaczysz utworzone wersje i uwzględnione kwalifikatory.
- Widok kafelków i widok listy: możesz zmienić widok w oknie narzędzia, aby wyświetlać zasoby w różnych układach.
Więcej informacji znajdziesz w przewodniku na temat zarządzania zasobami aplikacji.
Sprawdzanie identyfikatorów kompilacji podczas profilowania i debugowania plików APK
Gdy podasz pliki symboli debugowania dla .so
bibliotek współdzielonych w pakiecie APK, Android Studio sprawdzi, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji .so
bibliotek w pakiecie APK.
Jeśli skompilujesz biblioteki natywne w pliku APK z identyfikatorem kompilacji, Android Studio sprawdzi, czy identyfikator kompilacji w plikach symboli jest zgodny z identyfikatorem kompilacji w bibliotekach natywnych, i odrzuci pliki symboli, jeśli wystąpi niezgodność. Jeśli kompilacja nie została utworzona z identyfikatorem kompilacji, podanie nieprawidłowych plików symboli może spowodować problemy z debugowaniem.
Domyślnie włączona optymalizacja R8
R8 integruje usuwanie składni, zmniejszanie, zaciemnianie, optymalizację i tworzenie plików DEX w jednym kroku, co skutkuje zauważalną poprawą wydajności kompilacji. Narzędzie R8 zostało wprowadzone we wtyczce Androida do obsługi Gradle w wersji 3.3.0 i jest teraz domyślnie włączone w przypadku projektów aplikacji i bibliotek Androida korzystających z wtyczki w wersji 3.4.0 lub nowszej.
Obraz poniżej przedstawia ogólny proces kompilacji przed wprowadzeniem R8.
W przypadku R8 usuwanie składni, zmniejszanie rozmiaru, zaciemnianie, optymalizacja i kompilacja do formatu DEX (D8) są wykonywane w jednym kroku, jak pokazano poniżej.
Pamiętaj, że R8 jest zaprojektowany do współpracy z dotychczasowymi regułami ProGuard, więc prawdopodobnie nie musisz nic robić, aby korzystać z R8. Jest to jednak inna technologia niż ProGuard, zaprojektowana specjalnie z myślą o projektach na Androida, więc zmniejszanie i optymalizacja mogą spowodować usunięcie kodu, którego ProGuard nie usunąłby. W takiej mało prawdopodobnej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w danych wyjściowych kompilacji.
Jeśli masz problemy z używaniem R8, przeczytaj najczęstsze pytania dotyczące zgodności z R8, aby sprawdzić, czy istnieje rozwiązanie Twojego problemu. Jeśli rozwiązanie nie jest udokumentowane, zgłoś błąd.
Aby wyłączyć R8, dodaj jeden z tych wierszy do pliku gradle.properties
projektu:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Uwaga: jeśli dla danego typu kompilacji w pliku build.gradle
modułu aplikacji ustawisz wartość useProguard
na false
, wtyczka Androida do obsługi Gradle użyje R8 do zmniejszenia kodu aplikacji dla tego typu kompilacji, niezależnie od tego, czy wyłączysz R8 w pliku gradle.properties
projektu.
Edytor nawigacji obsługuje teraz wszystkie typy argumentów
Edytor nawigacji obsługuje teraz wszystkie typy argumentów obsługiwane przez komponent nawigacji. Więcej informacji o obsługiwanych typach znajdziesz w artykule Przekazywanie danych między usługami docelowymi.
Ulepszenia w edytorze układu {:#layout-editor}
Panel Atrybuty w edytorze układu został uproszczony do jednej strony z sekcjami, które można rozwijać, aby wyświetlić atrybuty, które można skonfigurować. Panel Atrybuty zawiera też te aktualizacje:
- Nowa sekcja Zadeklarowane atrybuty zawiera listę atrybutów określonych w pliku układu i umożliwia szybkie dodawanie nowych.
- W panelu Atrybuty znajdują się teraz też wskaźniki obok każdego atrybutu, które są wypełnione, gdy wartość atrybutu jest odniesieniem do zasobu, a puste w pozostałych przypadkach.
- Atrybuty z błędami lub ostrzeżeniami są teraz wyróżnione. Czerwone wyróżnienia wskazują błędy (np. gdy używasz nieprawidłowych wartości układu), a pomarańczowe – ostrzeżenia (np. gdy używasz zakodowanych na stałe wartości).
Nowe działanie intencji umożliwiające szybkie importowanie zależności
Jeśli w kodzie zaczniesz używać określonych klas Jetpack i Firebase, nowa akcja intencji zaproponuje dodanie do projektu wymaganej zależności biblioteki Gradle, jeśli jeszcze tego nie zrobisz. Jeśli na przykład odwołasz się do klasy WorkManager
bez wcześniejszego zaimportowania wymaganej zależności android.arch.work:work-runtime
, akcja intencji pozwoli Ci to zrobić łatwo jednym kliknięciem, jak pokazano poniżej.
W szczególności dlatego, że Jetpack przekształcił bibliotekę pomocy w osobne pakiety, którymi łatwiej zarządzać i które łatwiej aktualizować. Ta czynność intencji pomaga szybko dodawać tylko te zależności, które są potrzebne do komponentów Jetpacka, których chcesz używać.
3.3 (styczeń 2019 r.)
Android Studio 3.3 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
3.3.2 (marzec 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.3.1 (luty 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji.
IntelliJ IDEA 2018.2.2
Główne IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2018.2.2.
Aktualizacje wtyczki Androida do obsługi Gradle
Informacje o nowościach we wtyczce Androida do obsługi Gradle znajdziesz w jej informacjach o wersji.
Edytor nawigacji
Edytor nawigacji umożliwia szybkie wizualizowanie i tworzenie nawigacji w aplikacji za pomocą komponentu architektury nawigacji.
Więcej informacji znajdziesz w artykule Implementowanie nawigacji za pomocą komponentu architektury nawigacji.
Usuwanie nieużywanych katalogów Androida Studio
Gdy po raz pierwszy uruchomisz główną wersję Androida Studio, wyszuka ona katalogi zawierające pamięć podręczną, ustawienia, indeksy i logi wersji Androida Studio, dla których nie można znaleźć odpowiedniej instalacji. Pojawi się okno Usuń nieużywane katalogi Androida Studio, w którym zobaczysz lokalizacje, rozmiary i daty ostatniej modyfikacji tych nieużywanych katalogów. Będziesz mieć też możliwość ich usunięcia.
Poniżej znajdziesz listę katalogów, które Android Studio bierze pod uwagę podczas usuwania:
- Linux:
~/.AndroidStudio[Preview]X.Y
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
- Windows:
%USER%.AndroidStudio[Preview]X.Y
Ulepszenia lintowania
Lint wywoływany z Gradle działa znacznie szybciej – w przypadku większych projektów może działać nawet 4 razy szybciej.
Kreator tworzenia nowego projektu
Kreator Create New Project (Utwórz nowy projekt) ma nowy wygląd i zawiera aktualizacje, które pomagają usprawnić tworzenie nowych projektów Android Studio.
Więcej informacji znajdziesz w artykule Tworzenie projektu.
Aktualizacje narzędzia Profiler
Android Studio 3.3 zawiera aktualizacje kilku profilerów.
Poprawiona wydajność
Na podstawie opinii użytkowników znacznie zwiększyliśmy wydajność renderowania podczas korzystania z profilerów. Przesyłaj opinie, zwłaszcza jeśli nadal występują problemy z działaniem.
Opcje śledzenia przydziału pamięci w profilerze
Aby zwiększyć wydajność aplikacji podczas profilowania, profiler pamięci domyślnie okresowo próbkuje przydziały pamięci. W razie potrzeby możesz zmienić to zachowanie, korzystając z menu Śledzenie przydziału podczas testowania na urządzeniach z Androidem 8.0 (API na poziomie 26) lub nowszym.
W menu Śledzenie alokacji możesz wybrać jeden z tych trybów:
-
Pełny:rejestruje wszystkie alokacje pamięci obiektów. Pamiętaj, że jeśli masz aplikację, która przydziela dużo obiektów, podczas profilowania możesz zauważyć znaczne problemy z wydajnością.
-
Próbkowanie:rejestruje okresową próbkę przydziałów pamięci obiektu. Jest to zachowanie domyślne, które ma mniejszy wpływ na wydajność aplikacji podczas profilowania. W przypadku aplikacji, które w krótkim czasie przydzielają dużą liczbę obiektów, mogą wystąpić problemy z wydajnością.
-
Wyłączone: wyłącza przydzielanie pamięci. Jeśli nie jest jeszcze wybrany, ten tryb jest włączany automatycznie podczas nagrywania procesora, a po zakończeniu nagrywania przywracany jest poprzedni stan. Możesz zmienić to zachowanie w oknie konfiguracji nagrywania procesora.
Śledzenie dotyczy zarówno obiektów Javy, jak i odwołań JNI.
Sprawdzanie danych renderowania klatek
W profilerze procesora możesz teraz sprawdzić, ile czasu zajmuje aplikacji w Javie renderowanie każdej klatki w głównym wątku interfejsu i wątku renderowania. Te dane mogą być przydatne podczas badania wąskich gardeł, które powodują zacinanie się interfejsu i niską liczbę klatek na sekundę. Na przykład każda klatka, której renderowanie trwa dłużej niż 16 ms (czas wymagany do utrzymania płynnej liczby klatek na sekundę), jest wyświetlana na czerwono.
Aby wyświetlić dane renderowania klatek, zarejestruj ślad, korzystając z konfiguracji, która umożliwia śledzenie wywołań systemowych. Po zarejestrowaniu śladu poszukaj informacji o każdej klatce na osi czasu nagrania w sekcji KLATKI, jak pokazano poniżej.
Więcej informacji o sprawdzaniu i rozwiązywaniu problemów z liczbą klatek na sekundę znajdziesz w artykule Powolne renderowanie.
Fragmenty na osi czasu zdarzenia
Oś czasu zdarzenia pokazuje teraz, kiedy fragmenty są dołączane i odłączane. Gdy najedziesz kursorem na fragment, w etykietce wyświetli się jego stan.
Wyświetlanie sformatowanego tekstu w przypadku ładunków połączeń w profilerze sieci
Wcześniej Profiler sieci wyświetlał tylko tekst z ładunków połączeń. Android Studio 3.3 domyślnie formatuje niektóre typy tekstu, w tym JSON, XML i HTML. Na kartach Odpowiedź i Prośba kliknij link Wyświetl przeanalizowany, aby wyświetlić sformatowany tekst, a następnie kliknij link Wyświetl źródło, aby wyświetlić tekst w formie nieprzetworzonej.
Więcej informacji znajdziesz w artykule Sprawdzanie ruchu w sieci za pomocą profilera sieci.
Automatyczne pobieranie komponentów pakietu SDK
Gdy projekt potrzebuje komponentu SDK z platform SDK, NDK lub CMake, Gradle automatycznie pobiera wymagane pakiety, o ile wcześniej zaakceptujesz odpowiednie umowy licencyjne za pomocą Menedżera SDK.
Więcej informacji znajdziesz w artykule Automatyczne pobieranie brakujących pakietów za pomocą Gradle.
Obsługa Clang-Tidy
Android Studio obsługuje teraz statyczną analizę kodu za pomocą Clang-Tidy w przypadku projektów, które zawierają kod natywny. Aby włączyć obsługę Clang-Tidy, zaktualizuj NDK do wersji r18 lub nowszej.
Następnie możesz włączyć lub ponownie włączyć inspekcje, otwierając okno Ustawienia lub Preferencje i przechodząc do Edytor > Inspekcje > C/C++ > Ogólne > Clang-Tidy. Po wybraniu tej inspekcji w oknie Ustawienia lub Preferencje możesz też wyświetlić listę włączonych i wyłączonych testów Clang-Tidy w sekcji Opcja w panelu po prawej stronie. Aby włączyć dodatkowe weryfikacje, dodaj je do listy i kliknij Zastosuj.
Aby skonfigurować Clang-Tidy za pomocą dodatkowych opcji, kliknij Skonfiguruj opcje sprawdzania Clang-Tidy i dodaj je w otwartym oknie.
Usunięcie opcji dostosowywania w C++
Z okna Dostosowywanie obsługi C++ usunęliśmy te opcje:
- Obsługa wyjątków (-fexceptions)
- Obsługa informacji o typie czasu działania (-ftti)
Odpowiednie zachowania są włączone w przypadku wszystkich projektów utworzonych w Android Studio.
CMake w wersji 3.10.2
Menedżer SDK zawiera teraz CMake w wersji 3.10.2. Pamiętaj, że Gradle nadal domyślnie używa wersji 3.6.0.
Aby określić wersję CMake, której Gradle ma używać, dodaj do pliku build.gradle
modułu ten kod:
android {
...
externalNativeBuild {
cmake {
...
version "3.10.2"
}
}
}
Więcej informacji o konfigurowaniu CMake w build.gradle
znajdziesz w artykule Ręczne konfigurowanie Gradle.
Nowa składnia „+” do określania minimalnych wersji CMake
Podczas określania wersji CMake w pliku build.gradle
modułu głównego możesz teraz dodać znak „+”, aby dopasować działanie do polecenia cmake_minimum_required()
CMake.
Ostrzeżenie: używanie składni „+” z innymi zależnościami kompilacji jest odradzane, ponieważ dynamiczne zależności mogą powodować nieoczekiwane aktualizacje wersji i utrudniać rozwiązywanie różnic w wersjach.
Pakiety Android App Bundle obsługują teraz aplikacje błyskawiczne
Android Studio umożliwia teraz tworzenie pakietów Android App Bundle z pełną obsługą Google Play Instant. Innymi słowy, możesz teraz tworzyć i wdrażać zarówno aplikacje instalowane, jak i aplikacje błyskawiczne w ramach jednego projektu w Android Studio i umieszczać je w jednym pakiecie Android App Bundle.
Jeśli tworzysz nowy projekt w Android Studio za pomocą okna Utwórz nowy projekt, zaznacz pole obok opcji Skonfiguruj projekt > Ten projekt będzie obsługiwać aplikacje natychmiastowe. Android Studio utworzy nowy projekt aplikacji w zwykły sposób, ale w pliku manifestu uwzględni te właściwości, aby dodać obsługę aplikacji natychmiastowych do modułu podstawowego aplikacji:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
Następnie możesz utworzyć moduł funkcji z natychmiastowym dostępem, wybierając na pasku menu Plik > Nowy > Nowy moduł, a potem w oknie Utwórz nowy moduł klikając Moduł funkcji dynamicznej z natychmiastowym dostępem. Pamiętaj, że utworzenie tego modułu powoduje natychmiastowe włączenie podstawowego modułu aplikacji.
Aby wdrożyć aplikację na urządzeniu lokalnym jako aplikację błyskawiczną, edytuj konfigurację uruchamiania i zaznacz pole obok opcji Ogólne > Wdróż jako aplikację błyskawiczną.
Synchronizacja projektu z jednym wariantem
Synchronizacja projektu z konfiguracją kompilacji to ważny krok, który pozwala Android Studio zrozumieć strukturę projektu. W przypadku dużych projektów ten proces może jednak zająć dużo czasu. Jeśli projekt korzysta z wielu wariantów kompilacji, możesz teraz zoptymalizować synchronizację projektu, ograniczając ją tylko do aktualnie wybranego wariantu.
Aby włączyć tę optymalizację, musisz używać Androida Studio w wersji 3.3 lub nowszej z wtyczką Androida Gradle w wersji 3.3.0 lub nowszej. Gdy spełnisz te wymagania, środowisko IDE wyświetli prośbę o włączenie tej optymalizacji podczas synchronizowania projektu. Optymalizacja jest też domyślnie włączona w nowych projektach.
Aby włączyć tę optymalizację ręcznie, kliknij Plik > Ustawienia > Eksperymentalne > Gradle (Android Studio > Preferencje > Eksperymentalne > Gradle na komputerze Mac) i zaznacz pole wyboru Synchronizuj tylko aktywny wariant.
Uwaga: ta optymalizacja obsługuje obecnie projekty, które zawierają tylko język programowania Java. Jeśli na przykład środowisko IDE wykryje w projekcie kod w języku Kotlin lub C++, nie włączy automatycznie tej optymalizacji i nie należy jej włączać ręcznie.
Więcej informacji znajdziesz w artykule Włączanie synchronizacji projektu z jedną wersją.
Przesyłanie szybkiej opinii
Jeśli zgodzisz się na udostępnianie statystyk użytkowania w celu ulepszania Androida Studio, na pasku stanu u dołu okna IDE zobaczysz te 2 nowe ikony:


Po prostu kliknij ikonę, która najlepiej opisuje Twoje obecne wrażenia z używania IDE. Gdy to zrobisz, IDE wyśle statystyki użytkowania, które pozwolą zespołowi Android Studio lepiej zrozumieć Twoje odczucia. W niektórych przypadkach, np. gdy zgłosisz negatywne wrażenia związane z IDE, będziesz mieć możliwość przekazania dodatkowych opinii.
Jeśli jeszcze tego nie zrobisz, możesz włączyć udostępnianie statystyk użytkowania, otwierając okno Ustawienia (Preferencje na komputerze Mac), przechodząc do Wygląd i zachowanie > Ustawienia systemu > Udostępnianie danych i zaznaczając opcję Wysyłaj statystyki użytkowania do Google.
3.2 (wrzesień 2018 r.)
Android Studio 3.2 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
3.2.1 (październik 2018 r.)
Ta aktualizacja Androida Studio 3.2 obejmuje następujące zmiany i poprawki:
- Wersja Kotlina dołączona do pakietu to teraz 1.2.71.
- Domyślna wersja narzędzi do kompilacji to teraz 28.0.3.
- W bibliotece Navigation zmieniono nazwy typów argumentów z
type
naargType
. - Naprawiono te błędy:
- Podczas korzystania z biblioteki Data Binding nazwy zmiennych z podkreśleniami powodowały błędy kompilacji.
- CMake powodował, że IntelliSense i inne funkcje CLion nie działały.
- Dodanie
SliceProvider
powodowało błędy kompilacji w projektach, które nie korzystały z bibliotekandroidx.*
. - Niektóre testy jednostkowe w Kotlinie nie były uruchamiane.
- Problem z powiązaniem danych powodował
PsiInvalidElementAccessException
. - Elementy
<merge>
czasami powodowały awarię Edytora układu.
Znane problemy w wersji 3.2.0
Uwaga: te problemy zostały rozwiązane w Android Studio w wersji 3.2.1.
Zdecydowanie odradzamy używanie wersji 1.2.70 języka Kotlin.
Wersja 1.2.61 języka Kotlin naprawia błąd, który może powodować zawieszanie się Androida Studio, ale wersja 1.2.70 nie zawiera tej poprawki.
Wersje Kotlina 1.2.71 i nowsze zawierają jednak tę poprawkę.
-
Zwykle nie musisz określać wersji narzędzi do kompilacji, ale jeśli używasz wtyczki Androida do Gradle w wersji 3.2.0 z ustawieniem
renderscriptSupportModeEnabled
natrue
, musisz dodać do plikubuild.gradle
każdego modułu ten kod:android.buildToolsVersion "28.0.3"
Asystent Nowości
Nowy asystent informuje o najnowszych zmianach w Android Studio.
Asystent otworzy się po uruchomieniu Androida Studio po świeżej instalacji lub aktualizacji, jeśli wykryje nowe informacje do wyświetlenia. Asystenta możesz też otworzyć, wybierając Pomoc > Co nowego w Android Studio.
Android Jetpack
Android Jetpack przyspiesza tworzenie aplikacji na Androida dzięki komponentom, narzędziom i wskazówkom, które eliminują powtarzalne zadania i umożliwiają szybsze i łatwiejsze tworzenie wysokiej jakości aplikacji, które można testować. Android Studio zawiera te aktualizacje, które obsługują Jetpacka: Więcej informacji znajdziesz w dokumentacji Jetpacka.
Edytor nawigacji
Nowy edytor nawigacji jest zintegrowany z komponentami nawigacji Androida Jetpack, aby zapewnić widok graficzny do tworzenia struktury nawigacji aplikacji. Edytor nawigacji upraszcza projektowanie i wdrażanie nawigacji między miejscami docelowymi w aplikacji.
W Androidzie Studio 3.2 Edytor nawigacji jest funkcją eksperymentalną. Aby włączyć Edytor nawigacji, kliknij Plik > Ustawienia (Android Studio > Preferencje na komputerze Mac), w panelu po lewej stronie wybierz kategorię Eksperymentalne, zaznacz pole obok opcji Włącz Edytor nawigacji i ponownie uruchom Android Studio.
Więcej informacji znajdziesz w dokumentacji Edytora nawigacji.
Migracja do AndroidaX
W ramach Jetpacka przenosimy biblioteki pomocy Androida do nowej biblioteki rozszerzeń Androida, używając przestrzeni nazw androidx
. Więcej informacji znajdziesz w omówieniu AndroidaX.
Android Studio 3.2 ułatwia ten proces dzięki nowej funkcji migracji.
Aby przenieść istniejący projekt do AndroidaX, wybierz Refactor > Migrate to AndroidX (Refaktoryzuj > Przenieś do AndroidaX). Jeśli masz zależności Mavena, które nie zostały przeniesione do przestrzeni nazw AndroidX, system kompilacji Androida Studio automatycznie przekonwertuje też te zależności projektu.
Wtyczka Androida do obsługi Gradle udostępnia te globalne flagi, które możesz ustawić w pliku gradle.properties
:
android.useAndroidX
: Jeśli ustawisz wartośćtrue
, ten flaga oznacza, że chcesz od teraz korzystać z Androida X. Jeśli flaga nie jest obecna, Android Studio działa tak, jakby była ustawiona nafalse
.android.enableJetifier
: jeśli ta flaga ma wartośćtrue
, oznacza to, że chcesz korzystać z narzędzi (z wtyczki Android Gradle), które automatycznie przekonwertują istniejące biblioteki innych firm tak, jakby były napisane dla AndroidaX. Jeśli flaga nie jest obecna, Android Studio działa tak, jakby była ustawiona nafalse
.
Obie flagi są ustawione na true
, gdy używasz polecenia Migrate to AndroidX (Migracja do AndroidaX).
Jeśli chcesz od razu zacząć korzystać z bibliotek AndroidX i nie musisz konwertować istniejących bibliotek innych firm, możesz ustawić flagę android.useAndroidX
na true
, a flagę android.enableJetifier
na false
.
(pakiet) Android App Bundle
Pakiet aplikacji na Androida to nowy format przesyłania, który zawiera cały skompilowany kod i wszystkie zasoby aplikacji, ale generowanie i podpisywanie plików APK jest odroczone do momentu publikacji w Google Play.
Nowy model przesyłania aplikacji w Google Play wykorzystuje pakiet aplikacji do generowania i przesyłania zoptymalizowanych plików APK na urządzenia użytkowników, dzięki czemu każdy użytkownik pobiera tylko kod i zasoby potrzebne do uruchomienia aplikacji. Nie musisz już tworzyć, podpisywać ani zarządzać wieloma plikami APK, a użytkownicy pobierają mniejsze i bardziej zoptymalizowane pliki.
Możesz też dodać do projektu aplikacji moduły funkcji i uwzględnić je w pakiecie aplikacji. Użytkownicy będą mogli wtedy pobierać i instalować funkcje aplikacji na żądanie.
Aby utworzyć pakiet, wybierz Build > Build Bundle(s) / APK(s) > Build Bundle(s) (Utwórz > Utwórz pakiety / APK > Utwórz pakiety).
Więcej informacji, w tym instrukcje tworzenia i analizowania pakietu Android App Bundle, znajdziesz w artykule Pakiet Android App Bundle.
Przykładowe dane w edytorze układu
Wiele układów Androida zawiera dane czasu działania, które mogą utrudniać wizualizację wyglądu układu na etapie projektowania aplikacji. Teraz możesz łatwo wyświetlić podgląd widoku w Edytorze układu wypełnionym przykładowymi danymi. Gdy dodasz widok, pod nim w oknie Projekt pojawi się przycisk. Kliknij ten przycisk, aby ustawić atrybuty widoku w czasie projektowania. Możesz wybrać jeden z wielu szablonów przykładowych danych i określić liczbę przykładowych elementów, którymi chcesz wypełnić widok.
Aby wypróbować dane przykładowe, dodaj element RecyclerView
do nowego układu, kliknij przycisk atrybutów czasu projektowania poniżej widoku i wybierz opcję z karuzeli szablonów danych przykładowych.
Wycinki
Slices to nowy sposób na osadzanie fragmentów funkcji aplikacji w innych interfejsach użytkownika na Androidzie. Na przykład Slices umożliwiają wyświetlanie funkcji i treści aplikacji w sugestiach wyszukiwania Google.
Android Studio 3.2 ma wbudowany szablon, który pomoże Ci rozszerzyć aplikację o nowe interfejsy API dostawcy wycinków. Zawiera też nowe testy lint, które pomogą Ci stosować sprawdzone metody podczas tworzenia wycinków.
Aby rozpocząć, kliknij prawym przyciskiem myszy folder projektu i wybierz Nowy > Inne > Dostawca wycinków.
Więcej informacji, w tym o testowaniu interakcji z elementami Slice, znajdziesz w przewodniku dla początkujących dotyczącym elementów Slice.
Kotlin 1.2.61
Android Studio 3.2 zawiera Kotlin 1.2.61, a nowy pakiet Android SDK jest lepiej zintegrowany z Kotlinem. Więcej informacji znajdziesz na blogu dla deweloperów aplikacji na Androida.
IntelliJ IDEA 2018.1.6
Główne IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2018.1.6.
Profilery Androida
Wypróbuj te nowe funkcje profilera Androida w Androidzie Studio 3.2.
Sesje
Dane Profilera możesz teraz zapisywać jako sesje, aby później do nich wracać i je sprawdzać. Profiler przechowuje dane sesji do momentu ponownego uruchomienia IDE.
Gdy zarejestrujesz ślad metody lub zrobisz zrzut pamięci, IDE doda te dane (wraz z aktywnością sieciową aplikacji) jako osobny wpis w bieżącej sesji. Możesz łatwo przełączać się między nagraniami, aby porównywać dane.
Śledzenie systemu
W sekcji Profiler CPU wybierz nową konfigurację Ślad systemowy, aby sprawdzić aktywność procesora systemowego i wątków na urządzeniu. Ta konfiguracja śledzenia jest oparta na systrace
i przydaje się do analizowania problemów na poziomie systemu, takich jak zacinanie się interfejsu.
Korzystając z tej konfiguracji śledzenia, możesz wizualnie oznaczać ważne procedury kodu na osi czasu profilera, instrumentując kod C/C++ za pomocą natywnego interfejsu API śledzenia lub kod Java za pomocą klasy Trace
.
Sprawdzanie odwołań JNI w profilerze pamięci
Jeśli wdrażasz aplikację na urządzeniu z Androidem 8.0 (API na poziomie 26) lub nowszym, możesz teraz sprawdzać przydział pamięci dla kodu JNI aplikacji za pomocą profilera pamięci.
Gdy aplikacja jest uruchomiona, wybierz część osi czasu, którą chcesz sprawdzić, a następnie w menu nad listą klas kliknij Stos JNI, jak pokazano poniżej. Następnie możesz sprawdzić obiekty w stercie w zwykły sposób i kliknąć dwukrotnie obiekty na karcie Stos wywołań alokacji, aby zobaczyć, gdzie w kodzie są przydzielane i zwalniane odwołania JNI.

Importowanie, eksportowanie i sprawdzanie plików zrzutu sterty pamięci
Możesz teraz importować, eksportować i sprawdzać .hprof
pliki zrzutu sterty pamięci utworzone za pomocą profilera pamięci.
Zaimportuj plik .hprof
, klikając Rozpocznij nową sesję profilowania
w panelu Sesje profilera, a następnie wybierając Wczytaj z pliku. Możesz następnie sprawdzić jego dane w profilerze pamięci tak jak w przypadku każdego innego zrzutu sterty.
Aby zapisać dane zrzutu sterty do późniejszego przejrzenia, kliknij przycisk Eksportuj zrzut sterty po prawej stronie pozycji Zrzut sterty w panelu Sesje. W wyświetlonym oknie Eksportuj jako zapisz plik z rozszerzeniem .hprof
.
Rejestrowanie aktywności procesora podczas uruchamiania aplikacji
Możesz teraz rejestrować aktywność procesora podczas uruchamiania aplikacji w ten sposób:
- W menu głównym wybierz Uruchom > Edytuj konfiguracje.
- Na karcie Profilowanie w wybranej konfiguracji uruchomienia zaznacz pole obok opcji Rozpocznij nagrywanie śladu metody przy uruchomieniu.
- Wybierz z menu konfigurację nagrywania procesora.
- Wdróż aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API: 26) lub nowszym, wybierając Uruchom > Profil.
Eksportowanie śladów procesora
Po zarejestrowaniu aktywności procesora za pomocą narzędzia Profiler procesora możesz wyeksportować dane jako plik .trace
, aby udostępnić je innym lub sprawdzić później.
Aby wyeksportować ślad po zarejestrowaniu aktywności procesora, wykonaj te czynności:
- Kliknij prawym przyciskiem myszy nagranie, które chcesz wyeksportować z osi czasu procesora.
- W menu kliknij Eksportuj ślad.
- Przejdź do miejsca, w którym chcesz zapisać plik, i kliknij Zapisz.
Importowanie i sprawdzanie plików śledzenia procesora
Możesz teraz importować i sprawdzać pliki .trace
utworzone za pomocą interfejsu Debug API lub profilera CPU. (Obecnie nie można importować nagrań śledzenia systemu).
Zaimportuj plik śledzenia, klikając Rozpocznij nową sesję profilowania
w panelu Sesje profilera, a następnie wybierając Wczytaj z pliku. Następnie możesz sprawdzić jego dane w profilerze procesora w zwykły sposób, z tymi wyjątkami:
- Aktywność procesora nie jest przedstawiona na osi czasu procesora.
- Oś czasu aktywności wątku wskazuje tylko miejsca, w których dostępne są dane śledzenia poszczególnych wątków, a nie rzeczywiste stany wątków (np. uruchomiony, oczekujący lub uśpiony).
Rejestrowanie aktywności procesora za pomocą interfejsu Debug API
Możesz teraz rozpoczynać i zatrzymywać rejestrowanie aktywności procesora w profilerze procesora, instrumentując aplikację za pomocą interfejsu Debug API. Po wdrożeniu aplikacji na urządzeniu profiler automatycznie rozpoczyna rejestrowanie aktywności procesora, gdy aplikacja wywołuje funkcję startMethodTracing(String tracePath)
, a kończy rejestrowanie, gdy aplikacja wywołuje funkcję stopMethodTracing()
. Podczas rejestrowania aktywności procesora wywoływanej za pomocą tego interfejsu API w profilerze procesora jako wybrana konfiguracja rejestrowania procesora jest wyświetlana opcja Debug API.
Energy Profiler
Profil energetyczny wyświetla wizualizację szacowanego zużycia energii przez aplikację, a także zdarzenia systemowe, które mają wpływ na zużycie energii, takie jak blokady wybudzania, alarmy i zadania.
Profil zużycia energii pojawi się jako nowy wiersz u dołu okna Profilera, gdy uruchomisz aplikację na podłączonym urządzeniu lub w emulatorze Androida z Androidem 8.0 (API 26) lub nowszym.
Aby zmaksymalizować widok profilu zużycia energii, kliknij wiersz Energia. Umieść wskaźnik myszy nad słupkiem na osi czasu, aby zobaczyć podział zużycia energii według zasobów procesora, sieci i lokalizacji (GPS), a także odpowiednie zdarzenia systemowe.
Zdarzenia systemowe, które mają wpływ na zużycie energii, są wskazywane na osi czasu System poniżej osi czasu Energia. Szczegóły zdarzeń systemowych w określonym zakresie czasu są wyświetlane w panelu zdarzeń po wybraniu zakresu czasu na osi czasu Energia.
Aby wyświetlić stos wywołań i inne szczegóły zdarzenia systemowego, np. blokady wybudzania, wybierz je w panelu zdarzeń. Aby przejść do kodu odpowiedzialnego za zdarzenie systemowe, kliknij dwukrotnie wpis w stosie wywołań.
Sprawdzanie lintowania
Android Studio 3.2 zawiera wiele nowych i ulepszonych funkcji lintowania.
Nowe testy lint pomagają znajdować i identyfikować typowe problemy z kodem, od ostrzeżeń o potencjalnych problemach z użytecznością po błędy o wysokim priorytecie dotyczące potencjalnych luk w zabezpieczeniach.
Sprawdzanie Lint pod kątem interoperacyjności Java/Kotlin
Aby zapewnić dobrą współpracę kodu Java z kodem Kotlin, nowe testy Lint wymuszają stosowanie sprawdzonych metod opisanych w przewodniku po współpracy z Kotlinem. Przykłady tych kontroli to sprawdzanie obecności adnotacji Nullability, użycie słów kluczowych Kotlin i umieszczanie parametrów lambda na końcu.
Aby włączyć te sprawdzenia, kliknij File > Settings (Android Studio > Preferences na Macu), aby otworzyć okno Settings, przejdź do sekcji Editor > Inspections > Android > Lint > Interoperability > Kotlin Interoperability i wybierz reguły, które chcesz włączyć.

Aby włączyć te sprawdzenia w przypadku kompilacji wiersza poleceń, dodaj ten ciąg do pliku build.gradle
:
android {
lintOptions {
check 'Interoperability'
}
}
Sprawdzanie wycinków za pomocą narzędzia Lint
Nowe testy lint dla komponentów Slices pomagają upewnić się, że są one prawidłowo skonstruowane. Na przykład narzędzia do sprawdzania kodu ostrzegają, jeśli nie przypiszesz do elementu Slice działania podstawowego.
Nowy cel Gradle
Użyj nowego lintFix
zadania Gradle, aby zastosować wszystkie bezpieczne
poprawki sugerowane przez kontrolę lint bezpośrednio w kodzie źródłowym. Przykładem sprawdzania za pomocą narzędzia lint, które sugeruje bezpieczną poprawkę do zastosowania, jest SyntheticAccessor
.
Aktualizacje metadanych
Różne metadane, np. weryfikacja rzutowania usługi, zostały zaktualizowane, aby weryfikacje lint działały w Androidzie 9 (poziom API 28).
Ostrzeżenie, jeśli lint jest uruchamiany w przypadku nowego wariantu
Narzędzie Lint rejestruje teraz, w przypadku którego wariantu i wersji zarejestrowano poziom odniesienia, i ostrzega, jeśli uruchomisz je w przypadku innego wariantu niż ten, w przypadku którego utworzono poziom odniesienia.
Ulepszenia istniejących kontroli lint
Android Studio 3.2 zawiera wiele ulepszeń istniejących kontroli lint. Na przykład sprawdzanie cyklu życia zasobu jest teraz stosowane do dodatkowych typów zasobów, a wykrywanie tłumaczeń może na bieżąco znajdować brakujące tłumaczenia w edytorze.
Łatwiejsze znajdowanie identyfikatorów problemów
Identyfikatory problemów są teraz wyświetlane w większej liczbie miejsc, w tym w oknie Wyniki sprawdzania. Ułatwia to znalezienie informacji potrzebnych do włączenia lub wyłączenia konkretnych weryfikacji za pomocą lintOptions
w build.gradle
.
Więcej informacji znajdziesz w artykule Konfigurowanie opcji lint przy użyciu Gradle.
Wiązanie danych w wersji 2
Wiązanie danych w wersji 2 jest teraz domyślnie włączone i jest zgodne z wersją 1. Oznacza to, że jeśli masz zależności biblioteczne skompilowane w wersji 1, możesz ich używać w projektach korzystających z powiązywania danych w wersji 2. Pamiętaj jednak, że projekty korzystające z wersji 1 nie mogą używać zależności skompilowanych w wersji 2.
Odlukrzanie D8
W Androidzie Studio 3.1 zintegrowaliśmy etap desugaryzacji z narzędziem D8 jako funkcję eksperymentalną, co skróciło ogólny czas kompilacji. W Android Studio 3.2 odcukrzanie za pomocą D8 jest domyślnie włączone.
Nowy kompresor kodu
R8 to nowe narzędzie do kompresowania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji podglądowej R8, w pliku gradle.properties
projektu umieść ten kod:
android.enableR8 = true
Zmiana domyślnych interfejsów ABI w przypadku zestawu wielu plików APK
Podczas tworzenia wielu plików APK, z których każdy jest kierowany na inny interfejs ABI, wtyczka domyślnie nie generuje już plików APK dla tych interfejsów ABI: mips
, mips64
i armeabi
.
Jeśli chcesz utworzyć pliki APK przeznaczone na te interfejsy ABI, musisz użyć NDK w wersji r16b lub starszej i określić interfejsy ABI w pliku build.gradle
, jak pokazano poniżej:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Uwaga: ta zmiana w działaniu jest też uwzględniona w Androidzie Studio 3.1 RC1 i nowszych wersjach.
Ulepszone funkcje edytora plików kompilacji CMake
Jeśli używasz CMake do dodawania do projektu kodu w językach C i C++, Android Studio zawiera teraz ulepszone funkcje edytora, które pomagają edytować skrypty kompilacji CMake, takie jak:
- Podświetlanie składni i uzupełnianie kodu: IDE podświetla teraz typowe polecenia CMake i sugeruje uzupełnianie kodu. Możesz też przejść do pliku, klikając go z naciśniętym klawiszem Control (Command na komputerze Mac).
- Ponowne formatowanie kodu: możesz teraz użyć opcji ponownego formatowania kodu w IntelliJ, aby zastosować style kodu do skryptów kompilacji CMake.
- Bezpieczne refaktoryzowanie: wbudowane w IDE narzędzia do refaktoryzacji sprawdzają teraz również, czy zmieniasz nazwy lub usuwasz pliki, do których odwołujesz się w skryptach kompilacji CMake.
Poruszanie się po zewnętrznych plikach nagłówkowych
W poprzednich wersjach Android Studio w oknie Project można było przeglądać i sprawdzać tylko pliki nagłówkowe należące do bibliotek tworzonych w projekcie lokalnym. W tej wersji możesz też wyświetlać i sprawdzać pliki nagłówkowe dołączone do zewnętrznych zależności bibliotek C/C++, które importujesz do projektu aplikacji.
Jeśli w projekcie masz już kod i biblioteki w językach C/C++, otwórz okno Project po lewej stronie IDE. W tym celu w menu głównym kliknij View > Tool Windows > Project (Widok > Okna narzędzi > Projekt), a potem w menu wybierz Android. W katalogu cpp wszystkie pliki nagłówkowe, które znajdują się w zakresie projektu aplikacji, są uporządkowane w węźle include dla każdej lokalnej zależności biblioteki C/C++, jak pokazano poniżej.

Domyślnie włączona natywna obsługa multidexu
W poprzednich wersjach Androida Studio włączano natywny multidex podczas wdrażania wersji debugowania aplikacji na urządzeniu z Androidem API na poziomie 21 lub nowszym. Teraz, niezależnie od tego, czy wdrażasz aplikację na urządzeniu, czy tworzysz plik APK do publikacji, wtyczka Androida do Gradle umożliwia natywną obsługę wielu plików DEX we wszystkich modułach, w których ustawiono minSdkVersion=21
lub nowszą wersję.
AAPT2 przeniesiono do repozytorium Google Maven
Od Androida Studio 3.2 źródłem AAPT2 (Android Asset Packaging Tool 2) jest repozytorium Google Maven.
Aby używać AAPT2, upewnij się, że w pliku build.gradle
masz zależność google()
, jak pokazano poniżej:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
Nowa wersja AAPT2 rozwiązuje wiele problemów, w tym poprawia obsługę znaków spoza zestawu ASCII w systemie Windows.
Usuwanie konfiguracji na żądanie
Ustawienie Konfiguruj na żądanie zostało usunięte z Android Studio.
Android Studio nie przekazuje już argumentu --configure-on-demand
do Gradle.
Asystent połączenia ADB
Nowy Asystent połączenia ADB zawiera instrukcje krok po kroku, które pomogą Ci skonfigurować i używać urządzenia za pomocą połączenia Android Debug Bridge (ADB).
Aby uruchomić asystenta, wybierz Narzędzia > Asystent połączeń.
Asystent połączenia ADB wyświetla instrukcje, elementy sterujące w kontekście i listę połączonych urządzeń na kilku stronach w panelu Asystent.
Ulepszenia emulatora
W emulatorze Androida możesz teraz w dowolnym momencie zapisywać i wczytywać zrzuty urządzenia wirtualnego z Androidem (AVD), dzięki czemu możesz szybko i łatwo przywracać emulowane urządzenie do znanego stanu na potrzeby testowania. Podczas edytowania AVD za pomocą Menedżera AVD możesz określić, który zrzut AVD ma być wczytywany podczas uruchamiania AVD.
Elementy sterujące zapisywaniem, wczytywaniem i zarządzaniem migawkami AVD znajdują się teraz na karcie Migawki w oknie Rozszerzone elementy sterujące emulatora.
Więcej informacji znajdziesz w artykule Zrzuty.
Więcej informacji o nowościach i zmianach w emulatorze znajdziesz w informacjach o wersji emulatora.
3.1 (marzec 2018 r.)
Android Studio 3.1.0 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
3.1.4 (sierpień 2018 r.)
Ta aktualizacja Androida Studio 3.1 zawiera następujące zmiany i poprawki:
- Dołączona wersja języka Kotlin to teraz 1.2.50.
-
Nowe projekty są tworzone za pomocą
kotlin-stdlib-jdk* artifacts
, a nie artefaktówkotlin-stdlib-jre*
, które są wycofane. - Ulepszyliśmy analizowanie reguł ProGuard przez R8.
- Naprawiono te błędy:
-
Próba uruchomienia klasy głównej Kotlin nie powiodła się z powodu błędu:
"Error: Could not find or load main class..."
- Podczas wykonywania niektórych optymalizacji kompilator R8 wszedł w nieskończoną pętlę.
- Użycie polecenia Uruchom ponownie nieudane testy w oknie Uruchom czasami nieprawidłowo zwracało komunikat „Nie znaleziono testów”.
-
D8 nieprawidłowo obsługiwał instancje
invoke-virtual
, co powodowało awarię z błędemVerifyError
:invoke-super/virtual can't be used on private method
-
Kompilator powiązań danych korzystał ze starszej wersji
com.android.tools:annotations
. Kompilator używa teraz adnotacji narzędzi z projektu podstawowego, jeśli są dostępne. - Android Studio ulegał awarii podczas przejść między fragmentami podczas korzystania z profilerów.
- Podczas debugowania układu z polem tekstowym wystąpił błąd debugera.
- D8 nie udało się odczytać niektórych plików ZIP ze znakami specjalnymi.
3.1.3 (czerwiec 2018 r.)
Ta aktualizacja Androida Studio 3.1 zawiera poprawki tych błędów:
- Wycieki pamięci powodowały, że Android Studio działało wolno i przestawało odpowiadać po użyciu Edytora układu. Ta aktualizacja zawiera poprawki większości z tych problemów. Wkrótce udostępnimy kolejną aktualizację, która wyeliminuje dodatkowe wycieki pamięci.
- Niektóre aplikacje utworzone za pomocą D8 ulegały awarii na niektórych tabletach Verizon Ellipsis.
-
Instalacja aplikacji utworzonych za pomocą D8 nie powiodła się z powodu błędu
INSTALL_FAILED_DEXOPT
na urządzeniach z Androidem 5.0 lub 5.1 (poziom interfejsu API 21 lub 22). - Niektóre aplikacje, które korzystały z biblioteki OkHttp i zostały utworzone za pomocą D8, ulegały awarii na urządzeniach z Androidem 4.4 (poziom API 19).
-
Czasami nie udawało się uruchomić Androida Studio. W trakcie inicjowania klasy
ProcessCanceledException
pojawiał się błądcom.intellij.psi.jsp.JspElementType
.
3.1.2 (kwiecień 2018 r.)
Ta aktualizacja Androida Studio 3.1 zawiera poprawki tych błędów:
- W niektórych przypadkach Android Studio zawieszało się na czas nieokreślony podczas zamykania.
-
Kompilacje skonfigurowane za pomocą zestawów źródeł nie powiodły się z tym komunikatem, gdy włączono natychmiastowe uruchamianie:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Gdy włączono funkcję Instant Run, kompilacje nowych projektów w Kotlinie kończyły się niepowodzeniem po wywołaniu polecenia Uruchom.
-
Podczas edycji pliku
build.gradle
czasami występowało zauważalne opóźnienie między wpisaniem znaku a jego pojawieniem się na ekranie. -
W niektórych projektach z dużą liczbą modułów lub zależności zewnętrznych podczas indeksowania DEX wystąpiły błędy kompilacji. Wyświetlany był ten komunikat o błędzie:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- Obliczenia głównej listy DEX w D8 nie uwzględniały niektórych wywołań refleksyjnych.
Ta aktualizacja zawiera też zmiany, które w niektórych przypadkach znacznie przyspieszają przeprowadzanie kontroli lint z poziomu Gradle.
3.1.1 (kwiecień 2018 r.)
Ta aktualizacja Androida Studio 3.1 zawiera poprawki tych błędów:
-
W niektórych przypadkach, gdy projekt utworzony w Androidzie Studio 3.0 został po raz pierwszy otwarty w Androidzie Studio 3.1, zadanie kompilacji Gradle zostało usunięte z obszaru Przed uruchomieniem w konfiguracjach uruchamiania/debugowania. W rezultacie projekty nie były kompilowane po kliknięciu przycisku Uruchom lub Debuguj, co z kolei powodowało błędy, takie jak wdrażanie nieprawidłowych plików APK i awarie podczas korzystania z błyskawicznego uruchamiania.
Aby rozwiązać ten problem, Android Studio 3.1.1 dodaje do konfiguracji uruchamiania projektów, w których brakuje tego wpisu, zadanie Make (kompatybilne z Gradle). Ta modyfikacja następuje po pierwszej synchronizacji Gradle, gdy projekt jest wczytywany.
- Debuger ulegał awarii podczas debugowania układu z polem tekstowym, jeśli włączone było profilowanie zaawansowane.
- Android Studio zawiesił się po kliknięciu Wersje kompilacji.
- Pliki AAR (archiwum Androida) były wyodrębniane 2 razy: raz podczas procesu synchronizacji Gradle i raz podczas procesu kompilacji Gradle.
- W niektórych wektorowych plikach do rysowania zaimportowanych z plików SVG brakowało elementów.
-
Ostrzeżenie dotyczące wycofania konfiguracji zależności
compile
zostało zaktualizowane i zawiera lepsze wskazówki dotyczące konfiguracjiimplementation
iapi
. Szczegółowe informacje o migracji z konfiguracjicompile
znajdziesz w dokumentacji dotyczącej nowych konfiguracji zależności.
Kodowanie/IDE
IntelliJ 2017.3.3
Główne środowisko IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA do wersji 2017.3.3. Ulepszenia obejmują lepszą analizę przepływu sterowania w przypadku kolekcji i ciągów znaków, ulepszone wnioskowanie o możliwości wystąpienia wartości null, nowe szybkie poprawki i wiele innych.
Szczegółowe informacje znajdziesz w informacjach o wersjach JetBrains dla wersji IntelliJ IDEA 2017.2 i 2017.3 oraz w informacjach o wersjach JetBrains dotyczących aktualizacji z poprawkami.
Ulepszenia edycji SQL w Room
Gdy używasz biblioteki bazy danych Room, możesz korzystać z kilku ulepszeń edycji SQL:
- Funkcja uzupełniania kodu w
Query
rozumie tabele SQL (jednostki), kolumny, parametry zapytań, aliasy, złączenia, podzapytania i klauzule WITH. - Wyróżnianie składni SQL działa już prawidłowo.
- Możesz kliknąć prawym przyciskiem myszy nazwę tabeli w SQL i zmienić jej nazwę. Spowoduje to również przepisanie odpowiedniego kodu w języku Java lub Kotlin (np. typu zwracanego zapytania). Zmiana nazwy działa też w drugą stronę, więc zmiana nazwy klasy lub pola w języku Java powoduje przepisanie odpowiedniego kodu SQL.
- Użycie SQL jest widoczne, gdy używasz opcji Znajdź użycia (kliknij prawym przyciskiem myszy i z menu kontekstowego wybierz Znajdź użycia).
- Aby przejść do deklaracji jednostki SQL w kodzie Java lub Kotlin, przytrzymaj klawisz Control (Command na komputerze Mac) i kliknij jednostkę.
Więcej informacji o używaniu SQL z biblioteką Room znajdziesz w artykule Zapisywanie danych w lokalnej bazie danych za pomocą biblioteki Room.
Zmiany w wiązaniu danych
Ta aktualizacja zawiera kilka ulepszeń dotyczących wiązania danych:
-
Możesz teraz używać obiektu
LiveData
jako pola obserwowalnego w wyrażeniach powiązania danych. KlasaViewDataBinding
zawiera teraz nową metodęsetLifecycle()
, która służy do obserwowania obiektówLiveData
. -
Klasa
ObservableField
może teraz akceptować w konstruktorze inne obiektyObservable
. -
Możesz wyświetlić podgląd nowego kompilatora przyrostowego dla klas powiązań danych. Szczegółowe informacje o tym nowym kompilatorze i instrukcje jego włączania znajdziesz w artykule Kompilator powiązań danych w wersji 2.
Zalety nowego kompilatora:
-
Klasy
ViewBinding
są generowane przez wtyczkę Androida do obsługi Gradle przed kompilatorem Javy. - Biblioteki zachowują wygenerowane klasy powiązań podczas kompilowania aplikacji, zamiast być ponownie generowane za każdym razem. Może to znacznie zwiększyć wydajność w przypadku projektów wielomodułowych.
-
Klasy
Kompilator i Gradle
D8 to domyślny kompilator DEX
Kompilator D8 jest teraz domyślnie używany do generowania kodu bajtowego DEX.
Nowy kompilator DEX ma kilka zalet, w tym:
- Szybsze indeksowanie
- mniejsze zużycie pamięci,
- Ulepszone generowanie kodu (lepsza alokacja rejestrów, inteligentniejsze tabele ciągów znaków)
- lepsze debugowanie podczas przechodzenia przez kod;
Aby skorzystać z tych zalet, nie musisz wprowadzać żadnych zmian w kodzie ani w procesie tworzenia aplikacji, chyba że wcześniej ręcznie wyłączyłeś kompilator D8.
Jeśli w gradle.properties
ustawisz wartość android.enableD8
, usuń tę flagę lub ustaw ją na true
:false
android.enableD8=true
Więcej informacji znajdziesz w sekcji Nowy kompilator DEX.
Przyrostowe odcukrzanie
W przypadku projektów, które korzystają z funkcji języka Java 8, domyślnie włączone jest przyrostowe odcukrzanie, co może skrócić czas kompilacji.
Desugaring przekształca cukier syntaktyczny w formę, którą kompilator może przetwarzać wydajniej.
Aby wyłączyć przyrostowe odcukrzanie, w pliku gradle.properties
projektu podaj te informacje:
android.enableIncrementalDesugaring=false
Uproszczone okno danych wyjściowych
Konsola Gradle została zastąpiona oknem Kompilacja, które ma karty Synchronizacja i Kompilacja.
Szczegółowe informacje o korzystaniu z nowego, uproszczonego okna Kompilacja znajdziesz w artykule Monitorowanie procesu kompilacji.
Aktualizacje zbiorcze i indeksowanie współbieżne
Procesy synchronizacji Gradle i indeksowania IDE są teraz znacznie wydajniejsze, co pozwala skrócić czas poświęcany na wiele zbędnych operacji indeksowania.
C++ i LLDB
Wprowadziliśmy wiele ulepszeń jakości i wydajności w fazach kodowania, synchronizacji, kompilacji i debugowania w procesie tworzenia aplikacji w C++. Wprowadzone udoskonalenia:
-
Jeśli pracujesz nad dużymi projektami w C++, powinna Cię ucieszyć znaczna poprawa w zakresie czasu potrzebnego na tworzenie symboli. W przypadku dużych projektów czas synchronizacji jest znacznie krótszy.
-
Zwiększyliśmy wydajność tworzenia i synchronizowania projektów za pomocą CMake dzięki bardziej agresywnemu ponownemu wykorzystywaniu wyników z pamięci podręcznej.
-
Dodanie formaterów („pretty printers”) dla większej liczby struktur danych C++ ułatwia odczytywanie danych wyjściowych LLDB.
-
LLDB działa teraz tylko na Androidzie 4.1 (API na poziomie 16) i nowszym.
Uwaga: debugowanie natywne w Android Studio 3.0 lub nowszym nie działa w 32-bitowym systemie Windows. Jeśli używasz 32-bitowego systemu Windows i musisz debugować kod natywny, użyj Androida Studio 2.3.
Kotlin
Uaktualniono język Kotlin do wersji 1.2.30
Android Studio 3.1 zawiera Kotlin w wersji 1.2.30.
Kod w Kotlinie jest teraz analizowany za pomocą sprawdzania lint w wierszu poleceń
Uruchamianie narzędzia lint z wiersza poleceń analizuje teraz klasy Kotlin.
W przypadku każdego projektu, w którym chcesz uruchomić lint, w pliku najwyższego poziomu build.gradle
musi być uwzględnione repozytorium Maven firmy Google. Repozytorium Maven jest już uwzględnione w projektach utworzonych w Android Studio 3.0 i nowszych.
Narzędzia do kontroli skuteczności
Próbkowanie natywnych procesów C++ za pomocą narzędzia CPU Profiler
Profiler CPU zawiera teraz domyślną konfigurację do rejestrowania próbek śladów wątków natywnych aplikacji. Aby użyć tej konfiguracji, wdróż aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, a następnie w menu konfiguracji nagrywania Profilera CPU wybierz Próbkowanie (natywne). Następnie zarejestruj i sprawdź ślad w zwykły sposób.
Możesz zmienić ustawienia domyślne, takie jak interwał próbkowania, tworząc konfigurację nagrywania.
Aby wrócić do śledzenia wątków Java, wybierz konfigurację Próbkowanie (Java) lub Instrumentacja (Java).
Filtrowanie śladów procesora, wyników przydzielania pamięci i zrzutów sterty
Profiler procesora i Profiler pamięci zawierają funkcję wyszukiwania, która umożliwia filtrowanie wyników nagrywania śledzenia metody, alokacji pamięci lub zrzutu sterty.

Aby wyszukać, w prawym górnym rogu okienka kliknij Filtruj
, wpisz zapytanie i naciśnij Enter.
Wskazówka: pole wyszukiwania możesz też otworzyć, naciskając Ctrl + F (Command + F na Macu).
Na karcie Wykres płomieniowy profilera procesora stosy wywołań, które zawierają metody związane z Twoim zapytaniem, są wyróżnione i przesunięte na lewą stronę wykresu.
Więcej informacji o filtrowaniu według metody, klasy lub nazwy pakietu znajdziesz w artykule Rejestrowanie i sprawdzanie śladów metod.
Karta żądań w profilerze sieci
Profil sieci zawiera teraz kartę Żądanie, która zawiera szczegółowe informacje o żądaniach sieciowych w wybranym okresie. W poprzednich wersjach Profiler sieciowy podawał tylko informacje o odpowiedziach sieciowych.
Widok wątków w profilerze sieci
Po wybraniu części osi czasu w profilerze sieci możesz kliknąć jedną z tych kart, aby zobaczyć więcej szczegółów o aktywności sieci w tym okresie:
- Widok połączeń: zawiera te same informacje co poprzednie wersje Androida Studio – wyświetla listę plików wysłanych lub odebranych w wybranej części osi czasu we wszystkich wątkach procesora aplikacji. W przypadku każdego żądania możesz sprawdzić rozmiar, typ, stan i czas transmisji.
- Widok wątków: wyświetla aktywność sieciową każdego wątku procesora aplikacji. Ten widok pozwala sprawdzić, które wątki aplikacji są odpowiedzialne za poszczególne żądania sieciowe.

[narzędzie] Layout Inspector
Inspektor układu zyskał nowe funkcje, w tym niektóre, które wcześniej były dostępne w narzędziach Hierarchy Viewer i Pixel Perfect, które zostały wycofane:
- Przyciski powiększania i skróty klawiszowe do przeglądania i sprawdzania układów
- Nakładka siatki referencyjnej
- możliwość wczytania obrazu referencyjnego i użycia go jako nakładki (przydatne do porównywania układu z makietą interfejsu);
- Render subtree preview (Wyświetl podgląd poddrzewa), aby wyodrębnić widok w złożonym układzie.

Edytor układu
Paleta w edytorze układu została znacznie ulepszona:
- Zmiana organizacji kategorii widoków i układów.
- Nowa kategoria Ogólne dla widoków i układów, do której możesz dodawać elementy za pomocą polecenia Ulubione.
- Ulepszone wyszukiwanie widoków i układów.
- Nowe polecenia dotyczące otwierania dokumentacji konkretnego widoku lub elementu układu.
Za pomocą nowego polecenia Convert view (Przekształć widok) w drzewie komponentów lub edytorze projektu możesz przekształcić widok lub układ w inny typ widoku lub układu.
Możesz teraz łatwo tworzyć ograniczenia dla elementów znajdujących się w pobliżu wybranego widoku, korzystając z nowych przycisków Utwórz połączenie w inspektorze widoku u góry okna Atrybuty.
Uruchom i Błyskawiczne uruchamianie
Zachowanie opcji Użyj tego samego wyboru w przyszłości w oknie Wybierz miejsce docelowe wdrożenia zostało ujednolicone. Jeśli opcja Użyj tego samego wyboru jest włączona, okno Wybierz miejsce wdrożenia otwiera się tylko przy pierwszym użyciu polecenia Uruchom, dopóki wybrane urządzenie nie zostanie odłączone.
W przypadku kierowania na urządzenie z Androidem 8.0 (poziom interfejsu API 26) lub nowszym natychmiastowe uruchamianie może wdrażać zmiany w zasobach bez ponownego uruchamiania aplikacji. Jest to możliwe, ponieważ zasoby znajdują się w podzielonym pliku APK.
Emulator
Szczegółowe informacje o nowościach i zmianach w emulatorze od czasu Androida Studio 3.0 znajdziesz w informacjach o wersjach emulatora Androida od wersji 27.0.2 do wersji 27.1.12.
Najważniejsze ulepszenia:
- Migawki szybkiego uruchamiania umożliwiające zapisywanie stanu emulatora i szybsze uruchamianie, z możliwością użycia polecenia Zapisz teraz do zapisania niestandardowego stanu początkowego.
- Ekran emulatora bez okna.
- Obrazy systemu dla Androida 8.0 (poziom 26 interfejsu API), Androida 8.1 (poziom 27 interfejsu API) i wersji deweloperskiej Androida P.
Ulepszenia interfejsu i wygody użytkownika
Więcej etykietek, skrótów klawiszowych i przydatnych komunikatów
W wielu miejscach w Android Studio dodaliśmy etykietki i przydatne nakładki z wiadomościami.
Aby zobaczyć skróty klawiszowe dla wielu poleceń, przytrzymaj wskaźnik myszy nad przyciskiem, aż pojawi się etykietka.
Menu Narzędzia > Android zostało usunięte
Menu Narzędzia > Android zostało usunięte. Polecenia, które wcześniej były dostępne w tym menu, zostały przeniesione.
- Wiele poleceń zostało przeniesionych bezpośrednio pod menu Narzędzia.
- Polecenie Synchronizuj projekt z plikami Gradle zostało przeniesione do menu Plik.
- Polecenie Monitor urządzenia zostało usunięte z powodu opisanych poniżej zmian.
Monitor urządzenia dostępny z wiersza poleceń
W Androidzie Studio 3.1 Monitor urządzenia odgrywa mniejszą rolę niż wcześniej. W wielu przypadkach funkcje dostępne w Monitorze urządzeń są teraz zapewniane przez nowe i ulepszone narzędzia.
Instrukcje wywoływania Monitora urządzeń z wiersza poleceń oraz szczegółowe informacje o narzędziach dostępnych w Monitorze urządzeń znajdziesz w dokumentacji Monitora urządzeń.
3.0 (październik 2017 r.)
Android Studio 3.0.0 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
Użytkownicy systemu macOS: jeśli aktualizujesz starszą wersję Androida Studio, może pojawić się okno dialogowe z błędem aktualizacji „W obszarze instalacji wykryto konflikty”. Zignoruj ten błąd i kliknij Anuluj, aby wznowić instalację.
3.0.1 (listopad 2017 r.)
Jest to niewielka aktualizacja Androida Studio 3.0, która zawiera ogólne poprawki błędów i ulepszenia wydajności.
Wtyczka Androida do obsługi Gradle w wersji 3.0.0
Nowa wtyczka Androida do obsługi Gradle zawiera wiele ulepszeń i nowych funkcji, ale przede wszystkim poprawia wydajność kompilacji w przypadku projektów z dużą liczbą modułów. Podczas korzystania z nowej wtyczki w przypadku tych dużych projektów powinny wystąpić te sytuacje:
- Krótszy czas konfiguracji kompilacji dzięki nowemu opóźnionemu rozwiązywaniu zależności.
- Rozwiązywanie zależności z uwzględnieniem wariantów tylko w przypadku projektów i wariantów, które tworzysz.
- Krótszy czas kompilacji przyrostowej w przypadku wprowadzania prostych zmian w kodzie lub zasobach.
Uwaga: te ulepszenia wymagały wprowadzenia istotnych zmian, które powodują, że wtyczka, DSL i interfejsy API działają inaczej. Przejście na wersję 3.0.0 może wymagać zmian w plikach kompilacji i wtyczkach Gradle.
Ta wersja zawiera również:
- Obsługa Androida 8.0.
- Obsługa tworzenia oddzielnych plików APK na podstawie zasobów językowych.
- Obsługa bibliotek Java 8 i funkcji języka Java 8 (bez kompilatora Jack).
- Obsługa biblioteki Android Test Support Library 1.0 (Android Test Utility i Android Test Orchestrator).
- Zwiększona szybkość kompilacji ndk-build i cmake.
- Poprawiona szybkość synchronizacji Gradle.
- AAPT2 jest teraz domyślnie włączony.
- Korzystanie z
ndkCompile
jest teraz bardziej ograniczone. Zamiast tego przeprowadź migrację do za pomocą CMake lub ndk-build, aby skompilować kod natywny, który chcesz spakować do pliku APK. Więcej informacji znajdziesz w artykule Migracja z ndkcompile.
Więcej informacji o zmianach znajdziesz w informacjach o wersji wtyczki Androida do Gradle.
Jeśli chcesz przejść na nową wtyczkę, zapoznaj się z tym artykułem: Migracja do wtyczki Androida do obsługi Gradle w wersji 3.0.0.
Obsługa języka Kotlin
Jak ogłosiliśmy na Google I/O 2017, język programowania Kotlin jest teraz oficjalnie obsługiwany na Androidzie. Dlatego w tej wersji Android Studio obsługuje język Kotlin w przypadku tworzenia aplikacji na Androida.
Możesz włączyć Kotlin w projekcie, konwertując plik Java na Kotlin (kliknij Code > Convert Java File to Kotlin File) lub tworząc nowy projekt z włączonym Kotlinem za pomocą kreatora New Project.
Na początek przeczytaj, jak dodać język Kotlin do projektu.

Obsługa funkcji języka Java 8
Możesz teraz korzystać z niektórych funkcji języka Java 8 i używać bibliotek utworzonych w tym języku. Jack nie jest już wymagany, więc aby korzystać z ulepszonej obsługi języka Java 8 wbudowanej w domyślny łańcuch narzędzi, musisz najpierw wyłączyć Jacka.
Aby zaktualizować projekt i umożliwić obsługę nowego łańcucha narzędzi języka Java 8, w oknie Struktura projektu (kliknij Plik > Struktura projektu) zmień ustawienia Zgodność źródła i Zgodność docelowa na 1.8. Więcej informacji znajdziesz w artykule o korzystaniu z funkcji języka Java 8.

Profiler Androida
Nowy Profiler Androida zastępuje narzędzie Monitor Androida i udostępnia nowy zestaw narzędzi do pomiaru w czasie rzeczywistym wykorzystania procesora, pamięci i sieci przez aplikację. Możesz przeprowadzać śledzenie oparte na próbkach, aby mierzyć czas wykonywania kodu, przechwytywać zrzuty sterty, wyświetlać przydziały pamięci i sprawdzać szczegóły plików przesyłanych przez sieć.
Aby otworzyć Profiler Androida, kliknij Widok > Okna narzędzi > Profiler Androida (lub kliknij Profiler Androida na pasku narzędzi).
Oś czasu zdarzeń u góry okna pokazuje zdarzenia dotknięcia, naciśnięcia klawiszy i zmiany aktywności, dzięki czemu masz więcej kontekstu, aby zrozumieć inne zdarzenia związane z wydajnością na osi czasu.
Uwaga: widok Logcat został przeniesiony do osobnego okna (wcześniej znajdował się w Monitorze Androida, który został usunięty).

Na osi czasu w sekcji przeglądu Profilera Androida kliknij osie czasu CPU, MEMORY lub NETWORK, aby uzyskać dostęp do odpowiednich narzędzi profilera.
CPU Profiler
Program profilujący procesor pomaga analizować wykorzystanie wątków procesora przez aplikację, wywołując próbkę lub ślad procesora z instrumentacją. Następnie możesz rozwiązywać problemy z wydajnością procesora, korzystając z różnych widoków danych i filtrów.
Więcej informacji znajdziesz w przewodniku po profilerze procesora.

Memory Profiler
Narzędzie Memory Profiler pomaga wykrywać wycieki pamięci i nadmierne wykorzystanie pamięci, które mogą powodować zacinanie się, zawieszanie, a nawet awarie aplikacji. Wyświetla wykres wykorzystania pamięci przez aplikację w czasie rzeczywistym, umożliwia przechwytywanie zrzutów sterty, wymuszanie odzyskiwania pamięci i śledzenie przydziałów pamięci.
Więcej informacji znajdziesz w przewodniku po profilerze pamięci.

Network Profiler
Profil sieciowy umożliwia monitorowanie aktywności sieciowej aplikacji, sprawdzanie ładunku każdego żądania sieciowego i powracanie do kodu, który wygenerował żądanie sieciowe.
Więcej informacji znajdziesz w przewodniku po Profilerze sieci.

Profilowanie i debugowanie plików APK
Android Studio umożliwia teraz profilowanie i debugowanie dowolnego pakietu APK bez konieczności tworzenia go z projektu Android Studio – o ile pakiet APK został utworzony w sposób umożliwiający debugowanie i masz dostęp do symboli debugowania oraz plików źródłowych.
Aby rozpocząć, na ekranie powitalnym Androida Studio kliknij Profile or debug APK (Profilowanie lub debugowanie pliku APK). Jeśli masz już otwarty projekt, na pasku menu kliknij Plik > Profilowanie lub debugowanie pliku APK. Wyświetla to rozpakowane pliki APK, ale nie dekompiluje kodu. Aby prawidłowo dodawać punkty przerwania i wyświetlać zrzuty stosu, musisz dołączyć pliki źródłowe Javy i symbole do debugowania kodu natywnego.
Więcej informacji znajdziesz w artykule Profilowanie i debugowanie gotowych plików APK.

Device File Explorer
Nowy Eksplorator plików na urządzeniu umożliwia sprawdzanie systemu plików podłączonego urządzenia i przesyłanie plików między urządzeniem a komputerem. Zastępuje to narzędzie systemu plików dostępne w DDMS.
Aby go otworzyć, kliknij View (Widok) > Tool Windows (Okna narzędzi) > Device File Explorer (Eksplorator plików urządzenia).
Więcej informacji znajdziesz w przewodniku po Eksploratorze plików na urządzeniu.

Obsługa aplikacji błyskawicznych
Nowa obsługa aplikacji natychmiastowych na Androida umożliwia tworzenie aplikacji natychmiastowych w projekcie za pomocą 2 nowych typów modułów: modułów aplikacji natychmiastowych i modułów funkcji (wymagają one zainstalowania pakietu SDK do tworzenia aplikacji natychmiastowych).

Android Studio zawiera też nowe działanie refaktoryzacji modułowej, które pomaga dodać obsługę aplikacji natychmiastowych w istniejącym projekcie. Jeśli na przykład chcesz przekształcić projekt, aby umieścić niektóre klasy w module funkcji aplikacji natychmiastowej, wybierz klasy w oknie Project (Projekt) i kliknij Refactor > Modularize (Przekształć > Zmodularizuj). W wyświetlonym oknie wybierz moduł, do którego mają trafić zajęcia, i kliknij OK.
Gdy zechcesz przetestować aplikację natychmiastową, możesz skompilować i uruchomić moduł aplikacji natychmiastowej na podłączonym urządzeniu, podając adres URL aplikacji natychmiastowej w opcjach uruchamiania konfiguracji: kliknij Uruchom > Edytuj konfiguracje, wybierz moduł aplikacji natychmiastowej, a następnie ustaw adres URL w sekcji Opcje uruchamiania.
Więcej informacji znajdziesz w artykule Aplikacje błyskawiczne na Androida.
Moduły Androida Things
Nowe szablony Androida Things w kreatorach Nowy projekt i Nowy moduł, które pomogą Ci rozpocząć tworzenie aplikacji na urządzenia IoT z Androidem.
Więcej informacji znajdziesz w artykule o tworzeniu projektu Androida Things.
Kreator ikon adaptacyjnych
Studio zasobów graficznych obsługuje teraz grafikę wektorową i umożliwia tworzenie adaptacyjnych ikon programu uruchamiającego na Androida 8.0, a jednocześnie tradycyjnych ikon („starszych”) na starsze urządzenia.
Aby rozpocząć, kliknij prawym przyciskiem myszy folder res w projekcie, a następnie kliknij New > Image Asset (Nowy > Zasób obrazu). W oknie Asset Studio wybierz Ikony aplikacji (adaptacyjne i starsze) jako typ ikony.
Uwaga: aby używać ikon adaptacyjnych, musisz ustawić wartość compileSdkVersion
na 26 lub wyższą.
Więcej informacji znajdziesz w artykule Ikony adaptacyjne.

Obsługa zasobów czcionek
Aby obsługiwać nowe zasoby czcionek w Androidzie 8.0, Android Studio zawiera selektor zasobów czcionek, który pomaga dołączać czcionki do aplikacji lub konfigurować projekt w taki sposób, aby pobierać czcionki na urządzenie (jeśli są dostępne). Edytor układu może też wyświetlać podgląd czcionek w układzie.
Aby wypróbować czcionki do pobrania, upewnij się, że na urządzeniu lub emulatorze są zainstalowane Usługi Google Play w wersji 11.2.63 lub nowszej. Więcej informacji znajdziesz w artykule Czcionki do pobrania.

Asystent indeksowania aplikacji Firebase
Asystent Firebase został zaktualizowany o nowy samouczek dotyczący testowania indeksowania aplikacji. Aby otworzyć Asystenta, wybierz Narzędzia > Firebase. Następnie wybierz Indeksowanie aplikacji > Testuj indeksowanie aplikacji.
Samouczek zawiera nowe przyciski do testowania indeksowania treści publicznych i osobistych:
- W kroku 2 kliknij Wyświetl podgląd wyników wyszukiwania, aby sprawdzić, czy Twoje adresy URL wyświetlają się w wynikach wyszukiwania Google.
- W kroku 3 kliknij Sprawdź, czy nie ma błędów, aby sprawdzić, czy indeksowane obiekty w aplikacji zostały dodane do indeksu treści osobistych.
Asystent linków aplikacji na Androida
Asystent linków do aplikacji został zaktualizowany o te nowe funkcje:
-
Dodaj testy adresów URL dla każdego mapowania adresów URL, aby mieć pewność, że filtry intencji obsługują rzeczywiste adresy URL.
Możesz też ręcznie zdefiniować te testy adresów URL za pomocą tagu
<tools:validation>
opisanego poniżej. -
Utwórz plik Digital Asset Links z odpowiednim wpisem obiektu, aby obsługiwać Smart Lock od Google, i dodaj odpowiedni tag
asset_statements
<meta-data>
do pliku manifestu.

Walidator filtra intencji adresu URL
Android Studio obsługuje teraz specjalny tag w pliku manifestu, który umożliwia testowanie adresów URL filtrów intencji. Są to te same tagi, które może utworzyć dla Ciebie asystent linków do aplikacji.
Aby zadeklarować adres URL testu dla filtra intencji, dodaj element <tools:validation>
obok odpowiedniego elementu <intent-filter>
. Na przykład:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
Pamiętaj też, aby dodać xmlns:tools="http://schemas.android.com/tools"
w tagu <manifest>
.
Jeśli którykolwiek z adresów URL testu nie przejdzie definicji filtra intencji, pojawi się błąd narzędzia lint. Taki błąd nadal umożliwia tworzenie wariantów debugowania, ale spowoduje przerwanie kompilacji wersji.

Edytor układu
Edytor układu został zaktualizowany i zawiera kilka ulepszeń, m.in.:
- Nowy układ paska narzędzi i ikony.
- Zaktualizowany układ w drzewie komponentów.
- Ulepszone wstawianie widoków metodą przeciągnij i upuść.
- Nowy panel błędów pod edytorem, który wyświetla wszystkie problemy wraz z sugestiami dotyczącymi ich rozwiązania (jeśli są dostępne).
- Różne ulepszenia interfejsu użytkownika dotyczące tworzenia aplikacji za pomocą
ConstraintLayout
, w tym:- Nowe wsparcie w tworzeniu barier.
- Nowa funkcja tworzenia grup: na pasku narzędzi wybierz Wytyczne > Dodaj grupę (wymaga ConstraintLayout w wersji 1.1.0 beta 2 lub nowszej).
- Nowy interfejs do tworzenia łańcuchów: wybierz kilka widoków, a następnie kliknij prawym przyciskiem myszy i wybierz Łańcuch.

[narzędzie] Layout Inspector
Inspektor układu zawiera ulepszenia, które ułatwiają debugowanie problemów z układami aplikacji, w tym grupowanie właściwości w typowych kategoriach i nową funkcję wyszukiwania w panelach Drzewo widoków i Właściwości.

APK Analyzer
Możesz teraz używać Analizatora APK z poziomu wiersza poleceń za pomocą narzędzia apkanalyzer
.
Zaktualizowaliśmy też narzędzie APK Analyzer, wprowadzając te ulepszenia:
- W przypadku plików APK utworzonych za pomocą ProGuard możesz wczytać pliki mapowania ProGuard, które dodają do przeglądarki DEX funkcje, takie jak:
- Węzły pogrubione wskazują, że nie należy ich usuwać podczas zmniejszania kodu.
- Przycisk wyświetlania węzłów usuniętych podczas procesu zmniejszania.
- Przycisk, który przywraca pierwotne nazwy węzłów w widoku drzewa, które zostały zaciemnione przez ProGuard.
- Przeglądarka DEX wyświetla teraz szacowany wpływ każdego pakietu, klasy i metody na rozmiar.
- Nowe opcje filtrowania u góry, które umożliwiają wyświetlanie i ukrywanie pól oraz metod.
- W widoku drzewa węzły, które są odwołaniami niezdefiniowanymi w pliku DEX, są wyświetlane kursywą.
Więcej informacji znajdziesz w artykule Analizowanie kompilacji za pomocą narzędzia APK Analyzer.
Podgląd kompilatora D8 DEX
Android Studio 3.0 zawiera opcjonalny nowy kompilator DEX o nazwie D8. Zastąpi on kompilator DX, ale już teraz możesz włączyć nowy kompilator D8.
Kompilacja DEX ma bezpośredni wpływ na czas kompilacji aplikacji, .dex
rozmiar pliku i wydajność w czasie działania. W porównaniu z obecnym kompilatorem DX nowy kompilator D8 działa szybciej i generuje mniejsze .dex
pliki, a przy tym zapewnia taką samą lub lepszą wydajność aplikacji.
Aby wypróbować tę funkcję, ustaw w pliku gradle.properties
projektu te wartości:
android.enableD8=true
Więcej informacji znajdziesz w poście na blogu o kompilatorze D8.
Repozytorium Maven Google
Android Studio domyślnie korzysta teraz z repozytorium Google Maven zamiast z Menedżera pakietu SDK Androida, aby pobierać aktualizacje biblioteki pomocy Androida, Usług Google Play, Firebase i innych zależności. Ułatwia to aktualizowanie bibliotek, zwłaszcza gdy korzystasz z systemu ciągłej integracji (CI).
Wszystkie nowe projekty domyślnie zawierają repozytorium Google Maven. Aby zaktualizować istniejący projekt, dodaj google()
w bloku repositories
pliku build.gradle
najwyższego poziomu:
allprojects {
repositories {
google()
}
}
Więcej informacji o repozytorium Maven Google znajdziesz tutaj.
Inne zmiany
- Debugowanie natywne w Android Studio nie obsługuje już 32-bitowego systemu Windows. Skupiliśmy się na innych platformach, ponieważ korzysta z niej bardzo niewielu deweloperów. Jeśli używasz 32-bitowego systemu Windows i planujesz debugować kod natywny, nadal korzystaj z Androida Studio 2.3.
- Zaktualizowano bazowe IDE do wersji IntelliJ 2017.1.2, która zawiera wiele nowych funkcji z wersji 2016.3 i 2017.1, takich jak refaktoryzacja języka Java 8, podpowiedzi dotyczące parametrów, wyróżnianie semantyczne, punkty przerwania, które można przeciągać, natychmiastowe wyniki wyszukiwania i wiele innych.
- Dodaliśmy wiele nowych kontroli lint.
- Zobacz też najnowsze aktualizacje emulatora Androida.
2.3 (marzec 2017 r.)
Android Studio 2.3.0 to przede wszystkim wersja z poprawkami błędów i większą stabilnością, ale zawiera też kilka nowych funkcji.
2.3.3 (czerwiec 2017 r.)
Jest to niewielka aktualizacja, która dodaje obsługę Androida O (poziom API 26).
2.3.2 (kwiecień 2017 r.)
Jest to niewielka aktualizacja Androida Studio 2.3, która wprowadza te zmiany:
- Menedżer AVD został zaktualizowany, aby obsługiwać Google Play w obrazach systemu.
- Poprawki błędów w kompilacjach NDK podczas korzystania z NDK w wersji R14 lub nowszej.
Zobacz też odpowiednie aktualizacje emulatora Androida w wersji 26.0.3.
2.3.1 (kwiecień 2017 r.)
Jest to niewielka aktualizacja Androida Studio 2.3, która rozwiązuje problem z nieprawidłowym działaniem niektórych fizycznych urządzeń z Androidem w przypadku natychmiastowego uruchamiania (patrz problem nr 235879).
<h3 class="hide-from-toc">
New
</h3>
<div class="video-wrapper-left">
<iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
</iframe>
</div>
<ul>
<li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
WebP format. WebP is an image file format from Google that provides lossy
compression (like JPEG) as well as transparency (like PNG) but can provide
better compression than either JPEG or PNG. For more information, see
<a href="/studio/write/convert-webp.html">Convert images to WebP in Android
Studio</a>.
</li>
<li>The new <a href="/studio/write/app-link-indexing.html">App Links
Assistant</a> simplifies the process of adding Android App Links to your app
into a step-by-step wizard. Android App Links are HTTP URLs that bring users
directly to specific content in your Android app.
</li>
<li>The Layout Editor now includes support for two new ConstraintLayout
features:
<ul>
<li>Define a view size based on an aspect ratio.
</li>
<li>Create packed, spread, and weighted linear groups with constraint
chains.
</li>
</ul>
For more information, see <a href=
"/training/constraint-layout/index.html">Build a Responsive UI with
ConstraintLayout</a>.
</li>
<li>The Layout Editor also now lets you create a list of <a href=
"/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
you don't have to click <b>View all attributes</b> to access the attributes
you use most.
</li>
<li>When adding a material icon using the Vector Import Dialog (<b>File >
New > Vector Asset</b>), you can now filter the list of available icons by
category or by icon name. For more information, see <a href=
"/studio/write/vector-asset-studio.html#materialicon">Adding a material
icon</a>.
</li>
<li>
<a href="/studio/write/annotations.html#accessibility">New and updated
annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
classes, and packages lets you restrict an API. The updated
<code>@VisibleForTesting</code> annotation now has an optional
<code>otherwise</code> argument that lets you designate what the visibility
of a method should be if not for the need to make it visible for testing.
Lint uses the <code>otherwise</code> option to enforce the intended
visibility of the method.
</li>
<li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
allows you to use a snapshot of your project's current set of warnings as a
baseline for future inspection runs so only new issues are reported. The
baseline snapshot lets you start using lint to fail the build for new issues
without having to go back and address all existing issues first.
</li>
<li>New lint checks, including the following:
<ul>
<li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
code that checks for SDK versions.
</li>
<li>Object Animator Validation: Lint analyzes your code to make sure that
your <code>ObjectAnimator</code> calls reference valid methods with the
right signatures and checks that those methods are annotated with <code>
@Keep</code> to prevent ProGuard from renaming or removing them during
release builds.
</li>
<li>Unnecessary Item Decorator Copy: Older versions of the
<code>RecyclerView</code> library did not include a divider decorator
class, but one was provided as a sample in the support demos. Recent
versions of the library have a divider decorator class. Lint looks for
the old sample and suggests replacing it with the new one.
</li>
<li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class<T>)">Context.getSystemService()</a></code>
can cause a memory leak if the context is not the application context.
Lint looks for these initializations, and if it <em>cannot</em> determine
that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
initialization.
</li>
<li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
lint check had many limitations. You can now configure your project with
a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
}</code>, and lint makes sure that all of your resources are using this
prefix. You can use variations of the name for styles and themes. For
example for the <var>my_lib</var> prefix, you can have themes named
<code>MyLibTheme</code>, <code>myLibAttr</code>,
<code>my_lib_layout</code>, and so on.
</li>
<li>Switch to WebP: This check identifies images in your project that can
be converted to WebP format based on your project’s
<code>minSdkVersion</code> setting. An associated quickfix can
automatically convert the images, or you can <a href=
"/studio/write/convert-webp.html">convert images to WebP</a> manually.
</li>
<li>Unsafe WebP: If your project already includes WebP images, this check
analyzes your project to ensure that your <code>minSdkVersion</code>
setting is high enough to support the included images. For more
information about WebP support in Android and Android Studio, see
<a class="external" href=
"https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
Which browsers natively support WebP?</a> and <a href=
"/studio/write/convert-webp.html">Create WebP Images Using Android
Studio</a>.
</li>
</ul>
</li>
</ul>
<h3 class="hide-from-toc">
Changes
</h3>
<ul>
<li>A separate button to push changes with Instant Run: After deploying your
app, you now click <b>Apply Changes</b> <img src=
"/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
"inline-icon"> to quickly push incremental changes to your running app using
Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon"> and <b>Debug</b> <img src=
"/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
buttons are always available to you when you want to reliably push your
changes and force an app restart.
<ul>
<li>Instant Run is supported only when deploying your app to a target
device running Android 5.0 (API level 21) or higher.
</li>
<li>Instant Run is no longer disabled for projects that <a href=
"/studio/projects/add-native-code.html">link to external native
projects</a> using CMake or ndk-build. However, you can only use Instant
Run to push incremental changes to your Java code, not your native code.
</li>
<li>Cold swaps (which you can force for a running app by clicking
<strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
also fixes the issue where changes to notification and widget UIs were
not updated on the target device.
</li>
<li>Includes optimizations that make app startup much faster. These
optimizations may affect profiling, so you should temporarily <a href=
"/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
profiling your app.
</li>
</ul>
</li>
<li>
<p>
The <b>AVD Manager</b> <img src=
"/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
"inline-icon"> and <b>SDK Manager</b> <img src=
"/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
"inline-icon"> buttons are now included in the lean Navigation Bar as
well as the full Toolbar. To use the lean Navigation Bar, click
<b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
is selected and <b>Toolbar</b> is <em>not</em> selected.
</p>
<img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
</li>
<li>The "Hybrid" debugger has been renamed to "Dual" debugger.
</li>
<li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
Configurations</a> dialog, under Defaults in the left pane, the following run
configuration names have changed with no behavior changes:
<ul>
<li>The JUnit name has changed to Android JUnit. If you have a project
that uses JUnit run configurations, those configurations are transformed
to Android JUnit run configurations the first time you open the project
with Android Studio. A dialog appears to inform you of the name change.
</li>
<li>The Android Tests name has changed to Android Instrumented Tests.
</li>
</ul>
</li>
<li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
been removed from Android Studio as of version 2.3. An open-source,
standalone version of the tool is now available on <a href=
"https://github.com/google/gapid" class="external-link">GitHub</a>.
</li>
<li>The Run/Debug option is no longer available when you right-click a <code>
*.gradle build</code> script.
</li>
<li>All templates now use <code>ConstraintLayout</code> as the default
layout.
</li>
<li>The Widgets palette in the Layout Editor has been redesigned.
</li>
</ul>
<p>
This release also includes a number of bug fixes. <a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.3.0.</a>
</p>
<p class="note">
<b>Known issue:</b> Some device manufacturers block apps from automatically
launching after being installed on the device. When deploying your app to a
physical device using Android Studio 2.3, this restriction breaks the
intended behavior of Instant Run and causes the following error output:
<code>Error: Not found; no service started</code>. To avoid this issue,
either <a href="/studio/run/emulator.html">use the emulator</a> or enable
automatic launching for your app in your device's settings. The procedure
for doing this is different for each device, so check the instructions
provided by the manufacturer. To learn more about this issue, see
<a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
#235879</a>.
</p>
2.2 (wrzesień 2016 r.)
2.2.3 (grudzień 2016 r.)
<p>
This is a minor update to Android Studio 2.2. It includes a bug fixes
focused around gradle, the core IDE, and lint.
</p>
<p>
Highlighted build changes:
</p>
<ul>
<li>ProGuard version rollback. Due to a <a href=
"https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
have worked with the ProGuard team on getting a fix quickly, and we expect
to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
</li>
<li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
not working properly (<a href="http://b.android.com/224167">issue
224167</a>)
</li>
<li>Bug fix for Gradle autodownload for Constraint Layout library
(<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
212128</a>)
</li>
<li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
"http://b.android.com/227729">issue 227729</a>)
</li>
</ul>
<p>
<a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&cells=tiles">
See all bug fixes in 2.2.3</a>.
</p>
2.2.2 (październik 2016 r.)
<p>
This is a minor update to Android Studio 2.2. It includes a number of small
changes and bug fixes, including:
</p>
<ul>
<li>When reporting Instant Run issues through the IDE, the report now also
includes logcat output for <code>InstantRun</code> events. To help us
improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</li>
<li>A number of small bug fixes for Gradle.
</li>
<li>A fix for problems with generating multiple APKs.
</li>
</ul>
2.2.1 (październik 2016 r.)
<p>
This is a minor update to Android Studio 2.2. It includes several bug fixes
and a new feature to enable extra logging to help us troubleshoot Instant
Run issues—to help us improve Instant Run, please <a href=
"/studio/run/index.html#submit-feedback">enable extra logging and report
any issues</a>.
</p>
Nowość
- Całkowicie nowy edytor układu z narzędziami stworzonymi specjalnie do obsługi ConstraintLayout.
<li>New <strong><a href=
"http://tools.android.com/tech-docs/layout-inspector">Layout
Inspector</a></strong> lets you examine snapshots of your layout hierarchy
while your app is running on the emulator or a device.
</li>
<li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
window to help you integrate Firebase services into your app.
</li>
<li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
Analyzer</a></strong> tool so you can inspect the contents of your packaged
app.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/test-recorder">Espresso Test
Recorder</a></strong> tool (currently in beta) to help you create UI tests by
recording your own interactions.
</li>
<li>New <strong><a href=
"http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
(currently experimental) to speed up build performance.
</li>
<li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
Compile and build new or existing native code into libraries packaged into
your APK, and debug using lldb. For new projects, Android Studio uses CMake
by default, but also supports ndk-build for existing projects. To learn how
to include native code in your Android application, read <a href=
"/studio/projects/add-native-code.html">Add C and C++ Code to Your
Project</a>. To learn how to debug native code with lldb, see <a href=
"/studio/debug/index.html#debug-native">Debug Native Code</a>.
</li>
<li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
Browser</a></strong> so you can easily look up Google Android sample code
from within Android Studio to jump start app development.
</li>
<li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
manifest file merges with your app dependencies across project build
variants.
</li>
<li>The <strong>Run</strong> window now contains log messages for the current
running app. Note that you can configure the <a href=
"/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
<strong>Run</strong> window.
</li>
<li>New <strong><a href="/studio/run/emulator.html">Android
Emulator</a></strong> features:
<ul>
<li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
<strong>Cellular</strong> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <strong>Network type</strong> control.
</li>
<li>Added simulated vertical swipes for scrolling through vertical menus
with a mouse wheel.
</li>
</ul>
</li>
<li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
Configuration</a></strong> features:
<ul>
<li>The <strong>Debugger</strong> tab of the Android App and Android
Tests templates now contain several new options for debugging with LLDB.
</li>
<li>The <strong>Profiling</strong> tab of the Android App and Android
Tests templates now contain a <strong>Capture GPU Commands</strong>
option for enabling GPU tracing. You can display GPU traces in the GPU
Debugger (a beta feature).
</li>
<li>The Android Tests template now has a <strong>Firebase Test Lab Device
Matrix</strong> option for the <strong>Deployment Target</strong>.
</li>
<li>The Native Application template has been deprecated. If you use this
template in a project, Android Studio automatically converts it to the
Android App template.
</li>
<li>The Android Application template has been renamed to Android App.
</li>
</ul>
</li>
<li>Improved installation, configuration, performance, and UI features in the
<strong><a href="/studio/debug/am-gpu-debugger.html">GPU
Debugger</a></strong> (currently in beta).
</li>
<li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
Existing projects still use the JDK specified in <strong>File > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > SDK
Location</strong> and checking the <strong>Use embedded JDK</strong>
checkbox.
</li>
<li>Added new <strong>help menus and buttons</strong> in the UI so you can
more easily find the online documentation.
</li>
Zmiany
- Zaktualizowano bazę kodu IDE z IntelliJ 15 do IntelliJ 2016.1.
- Funkcja natychmiastowego uruchamiania wymaga teraz zainstalowania pakietu SDK platformy odpowiadającego docelowemu poziomowi API urządzenia.
- Natychmiastowe uruchamianie zostanie automatycznie wyłączone, jeśli użytkownik uruchomi aplikację w profilu służbowym lub jako użytkownik dodatkowy.
- Rozwiązaliśmy wiele problemów z niezawodnością natychmiastowego uruchamiania, które powodowały, że zmiany nie były wdrażane lub aplikacja ulegała awarii:
- Niektóre komponenty aplikacji nie zostały wdrożone w działającej aplikacji. ( Błąd: #213454)
- Aplikacja ulega awarii, gdy użytkownik przechodzi między sesjami Szybkiego uruchamiania a sesjami bez Szybkiego uruchamiania, w których klasa Serializable nie ma zdefiniowanego identyfikatora serialVersionUID. (Błąd: #209006)
- Zmiany stylu nie są odzwierciedlane w przypadku natychmiastowego uruchamiania. (Błąd: #210851)
- Sesja Instant Run jest zawodna i powoduje wyjątek FileNotFoundException. (Błąd: #213083)
- Zmiany w zasobach rysowalnych nie są odzwierciedlane do czasu pełnej przebudowy w przypadku KitKata. (Błąd: #21530)
- Zmiany zasobów nie są odzwierciedlane w przypadku natychmiastowego uruchamiania, gdy niestandardowe zestawy źródeł zawierają zagnieżdżone ścieżki. (Błąd: #219145)
- Hot swap i warm swap nie działają, jeśli zmieniona klasa zawiera adnotację z wartością wyliczeniową. (Błąd: #209047)
- Zmiany w danych adnotacji nie są odzwierciedlane w przypadku natychmiastowego uruchamiania. (Błąd: #210089)
- Funkcja Instant Run nie wykrywa zmian w kodzie, jeśli wprowadzisz je poza IDE. (Błąd: #213205)
- Sesja natychmiastowego uruchamiania jest niewiarygodna z powodu niezgodności tokena zabezpieczającego. (Błąd: #211989
- Wymiana na zimno nie działa w przypadku urządzeń, które nie obsługują prawidłowo funkcji „uruchom jako”. (Błąd: #210875)
- Aplikacja ulega awarii po ponownym uruchomieniu natychmiastowego uruchamiania. (Błąd: #219744)
- Wyjątek ClassNotFoundException podczas przełączania z Instant Run na Instant Debug. (Błąd: #215805)
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (kwiecień 2016 r.)
Główne zmiany w tej aktualizacji to obsługa tworzenia aplikacji w wersji testowej Androida N.
2.1.3 (sierpień 2016 r.)
Ta aktualizacja dodaje zgodność z Gradle 2.14.1, który zawiera ulepszenia wydajności, nowe funkcje i ważną poprawkę zabezpieczeń. Więcej informacji znajdziesz w informacjach o wersji Gradle.
Domyślnie nowe projekty w Android Studio 2.1.3 używają Gradle 2.14.1. W przypadku istniejących projektów środowisko IDE wyświetli prośbę o uaktualnienie do Gradle 2.14.1 i wtyczki Androida do obsługi Gradle 2.1.3, co jest wymagane w przypadku korzystania z Gradle 2.14.1 i nowszych wersji.
2.1.2 (czerwiec 2016 r.)
Ta aktualizacja zawiera szereg drobnych zmian i poprawek błędów:
- Aktualizacje i poprawki błędów Instant Run.
- Ulepszenia wydajności LLDB i powiadomień o awariach.
- Rozwiązaliśmy problem w aktualizacji zabezpieczeń Androida Studio 2.1.1, który powodował niepowodzenie
git rebase
.
2.1.1 (maj 2016 r.)
Aktualizacja zabezpieczeń.
Platforma Android N obsługuje funkcje języka Java 8, które wymagają nowego eksperymentalnego kompilatora o nazwie Jack. Najnowsza wersja kompilatora Jack jest obecnie obsługiwana tylko w Android Studio 2.1. Jeśli więc chcesz korzystać z funkcji języka Java 8, musisz użyć Androida Studio 2.1 do skompilowania aplikacji.
Uwaga: Szybkie uruchamianie jest wyłączone, gdy włączysz kompilator Jack, ponieważ obecnie nie są one ze sobą zgodne.
Chociaż Android Studio 2.1 jest już stabilny, kompilator Jack nadal jest w fazie eksperymentalnej i musisz go włączyć za pomocą właściwości jackOptions
w pliku build.gradle
.
Oprócz zmian związanych z obsługą wersji N Preview Android Studio 2.1 zawiera drobne poprawki błędów i te ulepszenia:
- Debuger C++ obsługujący język Java jest teraz domyślnie włączony, gdy używasz urządzenia lub emulatora z Androidem N i wybierzesz tryb debugowania Native (na karcie Debuger w konfiguracji uruchamiania/debugowania).
Aby skorzystać z innych ulepszeń kompilacji, w tym z przyrostowej kompilacji kodu Java i przetwarzania dex w procesie,zaktualizuj wtyczkę Androida do obsługi Gradle do wersji 2.1.0.
2.0 (kwiecień 2016 r.)
Uwaga: jeśli tworzysz aplikację na potrzeby wersji N Developer Preview, używaj wersji Androida Studio 2.1 Preview. Android Studio 2.0 nie obsługuje wszystkich funkcji wymaganych do kierowania na wersję N Preview.
Natychmiastowe uruchamianie:
- Android Studio wdraża teraz czyste kompilacje szybciej niż kiedykolwiek wcześniej. Dodatkowo wprowadzanie przyrostowych zmian w kodzie na emulatorze lub urządzeniu fizycznym jest teraz niemal natychmiastowe. Sprawdzaj aktualizacje bez ponownego wdrażania nowej wersji debugowania lub w wielu przypadkach bez ponownego uruchamiania aplikacji.
- Szybkie uruchamianie obsługuje przesyłanie tych zmian do uruchomionej aplikacji:
- Zmiany w implementacji istniejącej metody instancji lub metody statycznej
- Zmiany w istniejącym zasobie aplikacji
- Zmiany w kodzie strukturalnym, np. w sygnaturze metody lub polu statycznym (wymaga urządzenia docelowego z interfejsem API na poziomie 21 lub wyższym).
- Więcej informacji o błyskawicznym uruchamianiu znajdziesz w dokumentacji.
Uwaga: natychmiastowe uruchamianie jest obsługiwane tylko wtedy, gdy wdrażasz wariant kompilacji debugowania, używasz wtyczki Androida do Gradle w wersji 2.0.0 lub nowszej i skonfigurujesz plik
build.gradle
na poziomie modułu aplikacji dlaminSdkVersion 15
lub nowszego. Aby uzyskać jak najlepszą skuteczność, skonfiguruj aplikację na poziomie co najmniejminSdkVersion 21
.
Nowe funkcje Lint:
- Sprawdzanie instrukcji
switch
za pomocą@IntDef
adnotowanych liczb całkowitych, aby upewnić się, że wszystkie stałe są obsługiwane. Aby szybko dodać brakujące instrukcje, użyj menu czynności intencji i wybierz Add Missing @IntDef Constants (Dodaj brakujące stałe @IntDef). - Oznacza nieprawidłowe próby użycia interpolacji ciągów znaków do wstawiania numerów wersji w pliku
build.gradle
. - Flagi dla klas anonimowych, które rozszerzają klasę
Fragment
. - Flagi kodu natywnego w niebezpiecznych lokalizacjach, np. w folderach
res/
iasset/
. Ten flag zachęca do przechowywania kodu natywnego w folderzelibs/
, który jest następnie bezpiecznie pakowany do folderudata/app-lib/
aplikacji podczas instalacji. AOSP: #169950 - Oznaczenia niebezpiecznych połączeń z numerami
Runtime.load()
iSystem.load()
. AOSP: #179980 - Znajdź i usuń nieużywane zasoby, wybierając na pasku menu Refactor > Remove Unused Resources (Refaktoryzacja > Usuń nieużywane zasoby). Wykrywanie nieużywanych zasobów obsługuje teraz zasoby, do których odwołują się tylko nieużywane zasoby, odwołania w plikach pierwotnych, takie jak
.html
odwołania do obrazów, oraz atrybutytools:keep
itools:discard
używane przez narzędzie do zmniejszania zasobów Gradle, z uwzględnieniem nieaktywnych zestawów źródeł (takich jak zasoby używane w innych wersjach kompilacji) i prawidłową obsługą importów pól statycznych. - Sprawdza, czy niejawne odwołania do interfejsu API są obsługiwane na wszystkich platformach, na które kierowana jest
minSdkVersion
. - Sygnalizuje nieprawidłowe użycie
RecyclerView
iParcelable
. - Kontrole
@IntDef
,@IntRange
i@Size
są teraz również sprawdzane pod kątem tablicint
i argumentów o zmiennej liczbie.
Dodatkowe ulepszenia:
- Zoptymalizowany pod kątem Emulatora Androida 2.0, który jest szybszy niż kiedykolwiek wcześniej, obsługuje szerszy zakres urządzeń wirtualnych i ma znacznie ulepszony interfejs. Więcej informacji o nowym emulatorze znajdziesz w informacjach o wersji narzędzi SDK.
- Ulepszenia Menedżera urządzeń wirtualnych z Androidem:
- Obrazy systemu są teraz podzielone na te karty: Zalecane, x86 i Inne.
- W ustawieniach zaawansowanych możesz włączyć obsługę wielu rdzeni i określić liczbę rdzeni, z których może korzystać emulator.
- W ustawieniach zaawansowanych możesz określić sposób renderowania grafiki w emulatorze, wybierając jedną z tych opcji:
- Sprzęt: użyj karty graficznej komputera, aby przyspieszyć renderowanie.
- Oprogramowanie: używaj renderowania opartego na oprogramowaniu.
- Automatyczna:najlepszą opcję wybiera emulator. Jest to ustawienie domyślne.
- Skrócono czas pakowania AAPT przez określenie celu wdrożenia przed skompilowaniem aplikacji. Dzięki temu Android Studio może skutecznie pakować tylko zasoby wymagane przez określone urządzenie.
- Dodaliśmy integrację z Cloud Test Lab, aby umożliwić testowanie aplikacji na żądanie z wygodą i skalowalnością usługi w chmurze. Dowiedz się więcej o tym, jak korzystać z Cloud Test Lab w Androidzie Studio.
- Dodano podgląd nowego debugera GPU. W przypadku aplikacji wymagających dużej mocy obliczeniowej możesz teraz wizualnie przechodzić przez kod OpenGL ES, aby zoptymalizować aplikację lub grę.
- Dodano test indeksowania aplikacji w Google. Dodaj do aplikacji obsługę adresów URL, indeksowanie aplikacji i funkcję wyszukiwania, aby zwiększyć ruch w aplikacji, dowiedzieć się, które treści aplikacji są najczęściej używane, i przyciągnąć nowych użytkowników. Testuj i weryfikuj adresy URL w aplikacji w Android Studio. Więcej informacji znajdziesz w artykule Obsługa adresów URL i indeksowanie aplikacji w Android Studio.
- Ulepszenia z najnowszej wersji IntelliJ 15, w tym ulepszona analiza kodu i wydajność. Pełny opis nowych funkcji i ulepszeń znajdziesz w artykule Co nowego w IntelliJ.
- Funkcja automatycznego uzupełniania w edytorze XML dodaje teraz cudzysłowy podczas uzupełniania atrybutów. Aby sprawdzić, czy ta opcja jest włączona, otwórz okno dialogowe Ustawienia lub Preferencje, wybierz Edytor > Ogólne > Inteligentne klawisze i zaznacz pole obok opcji Dodaj cudzysłowy do wartości atrybutu po zakończeniu atrybutu. Problem: 195113
- Edytor XML obsługuje teraz uzupełnianie kodu w przypadku wyrażeń powiązania danych.
Android Studio w wersji 1.5.1 (grudzień 2015 r.)
Poprawki i ulepszenia:
- Rozwiązaliśmy problem z renderowaniem w edytorze układu. Problem: 194612
- Dodaliśmy możliwość różnicowania
description
atrybutów pliku manifestu w zależności od konfiguracji. Problem: 194705 - Poprawiliśmy kontrast motywu Darcula w Android Studio w Vector Asset Studio. Problem: 191819
- Dodaliśmy obsługę przycisku Pomoc w Vector Asset Studio.
- Dodaliśmy obsługę operatora
%
w przypadku wiązania danych. Problem: 194045 - Rozwiązaliśmy problem, który powodował, że uruchomienie aplikacji w celu debugowania skutkowało połączeniem debugera z niewłaściwym urządzeniem. Problem: 195167
- Naprawiliśmy wyjątek wskaźnika pustego, który mógł wystąpić podczas próby uruchomienia aplikacji w określonych scenariuszach.
Android Studio w wersji 1.5.0 (listopad 2015 r.)
Poprawki i ulepszenia:
- Dodano nowe możliwości analizy Monitora pamięci do Monitora Androida. Gdy wyświetlasz plik HPROF zarejestrowany na tym monitorze, wyświetlane informacje są teraz bardziej przydatne, dzięki czemu możesz szybciej lokalizować problemy, takie jak wycieki pamięci. Aby użyć tego monitora, kliknij Android Monitor u dołu okna głównego. W Monitorze Androida kliknij kartę Pamięć. Gdy monitor jest uruchomiony, kliknij ikonę Dump Java Heap, a następnie w oknie głównym kliknij Captures i dwukrotnie kliknij plik, aby go wyświetlić. Po prawej stronie kliknij Capture Analysis (Analiza przechwytywania). (Monitor urządzenia z Androidem nie może działać w tym samym czasie co Monitor Androida).
- Dodano obsługę nowych precyzyjnych linków i linków do aplikacji. Edytor kodu może automatycznie tworzyć filtr intencji do linkowania bezpośredniego w pliku
AndroidManifest.xml
. Może też generować kod, który pomoże Ci zintegrować się z interfejsem App Indexing API w aktywności w pliku Java. Funkcja testowania precyzyjnych linków pomaga sprawdzić, czy dany precyzyjny link może uruchomić aplikację. Na karcie Ogólne w oknie Konfiguracje uruchamiania/debugowania możesz określić opcje uruchamiania precyzyjnych linków. Wywołania interfejsu App Indexing API możesz też testować w aktywności za pomocą wyświetlacza logcat w Monitorze Androida. Narzędzielint
na Androida wyświetla teraz ostrzeżenia dotyczące niektórych problemów związanych z precyzyjnymi linkami i interfejsem App Indexing API. - Dodano możliwość używania krótkich nazw podczas uzupełniania kodu niestandardowych widoków w edytorze kodu.
- Dodaliśmy obsługę większej liczby elementów
VectorDrawable
w Vector Asset Studio w celu zapewnienia zgodności wstecznej. Studio zasobów wektorowych może używać tych elementów do konwertowania obiektów rysowalnych wektorowo na rastrowe obrazy PNG, które można wykorzystywać w Androidzie 4.4 (API na poziomie 20) i starszych wersjach. - Dodaliśmy nowe
lint
testy dla Androida TV i Androida Auto, aby zapewnić Ci natychmiastowe, praktyczne informacje zwrotne w Android Studio, a także kilka szybkich poprawek. Na przykład w przypadku Androida TV może zgłaszać problemy z uprawnieniami, nieobsługiwanym sprzętem, elementemuses-feature
i brakującym banerem oraz szybko je rozwiązywać. W przypadku Androida Auto może sprawdzać prawidłowe użycie w pliku deskryptora, do którego odwołuje się plikAndroidManifest.xml
, zgłaszać brak filtra intencji dla klasyMediaBrowserService
i wykrywać określone problemy z działaniami głosowymi. - Dodaliśmy nowe sprawdzenia
lint
dotyczące niezabezpieczonych odbiorników transmisji,SSLCertificateSocketFactory
iHostnameVerifier
użycia klas orazFile.setReadable()
iFile.setWritable()
wywołań. Wykrywa też nieprawidłowe wyszukiwania zasobów w pliku manifestu, zwłaszcza w przypadku zasobów, które różnią się w zależności od konfiguracji. - Naprawiliśmy kilka problemów ze stabilnością.
Android Studio w wersji 1.4.1 (październik 2015 r.)
Poprawki i ulepszenia:
- Rozwiązaliśmy problem z buforowaniem modelu Gradle, który mógł prowadzić do nadmiernej synchronizacji Gradle po ponownym uruchomieniu IDE.
- Rozwiązaliśmy problem z zakleszczeniem podczas debugowania kodu natywnego.
- Rozwiązaliśmy problem, który blokował użytkowników systemu kontroli wersji Subversion 1.9.
- Rozwiązaliśmy problem z oknem wybierania urządzenia, który polegał na tym, że po podłączeniu nieautoryzowanego urządzenia nie można było już wybrać emulatora. Problem: 189658
- Naprawiliśmy błąd zgłaszania nieprawidłowego tłumaczenia w przypadku języków, które mają kwalifikator regionu i tłumaczenie w regionie (ale nie w języku podstawowym). Problem: 188577
- Rozwiązaliśmy problem z zakleszczeniem w Edytorze motywów, który był związany z jego interakcją z Edytorem układów. Problem: 188070
- Rozwiązaliśmy problem z ponownym wczytywaniem Edytora motywów i konfliktem edycji, który powodował nieprawidłową aktualizację atrybutów. Problem: 187726
- Poprawiona wydajność Edytora motywów.
- Rozwiązaliśmy problem polegający na tym, że atrybut
android:required
był ignorowany w pliku manifestu. Problem: 187665
Android Studio w wersji 1.4.0 (wrzesień 2015 r.)
Poprawki i ulepszenia:
- Dodaliśmy Studio zasobów wektorowych, narzędzie do importowania grafik wektorowych, takich jak ikony materiałowe i pliki SVG. Aby użyć tego narzędzia, w widoku Androida w oknie Project (Projekt) kliknij prawym przyciskiem myszy folder res i wybierz New (Nowy) > Vector Asset (Zasób wektorowy).
- Dodano nowe funkcje monitora Androida: GPU i sieć. Aby użyć tych monitorów, kliknij Monitor Androida u dołu okna głównego. Monitor urządzenia z Androidem nie może działać jednocześnie z Monitorem Androida.
- Dodaliśmy wczesną wersję nowego Edytora motywów. Aby skorzystać z tej funkcji, wybierz Narzędzia > Android > Edytor motywów.
- Zaktualizowano szablony Androida w bibliotece pomocy dotyczącej projektowania. Szablony obsługują teraz specyfikację Material Design, a także
appcompat
bibliotekę pomocy zapewniającą zgodność wsteczną.
Android Studio w wersji 1.3.2 (sierpień 2015 r.)
Poprawki i ulepszenia:
- Dodano obsługę Androida 6.0 (poziom interfejsu API 23), w tym nowe ikony i Menedżera AVD, który umożliwia tworzenie urządzeń o nowych gęstościach ekranu.
- Naprawiliśmy wyjątek, który występował podczas sprawdzania aktualizacji. Problem: 183068
- Rozwiązaliśmy problem, który powodował awarię edytora układu z powodu nierozwiązanych współrzędnych widoku. Problem: 178690
- Rozwiązanie problemu z ostrzeżeniami o nieprawidłowym typie zasobu. Problem: 182433
- Naprawiliśmy sprawdzanie lint, które nieprawidłowo oznaczał zasoby jako prywatne. Problem: 183120
Android Studio w wersji 1.3.1 (sierpień 2015 r.)
Poprawki i ulepszenia:
- Poprawiono obsługę tworzenia urządzenia wirtualnego z Androidem Wear (AVD) w systemie Windows.
- Zaktualizowano Kreator projektu, aby używał wpisanej nazwy projektu.
- Dodaliśmy obsługę przechowywania pakietu SDK Androida w katalogu tylko do odczytu.
- Zaktualizowano wtyczkę Androida do obsługi Gradle do wersji 1.3.0.
- Rozwiązaliśmy problemy z uruchamianiem sesji debugowania z poziomu powłoki Unix Android Debug Bridge (adb).
- Poprawiono komunikat o zmianie nazwy pakietu Java, aby wyświetlać prawidłową nazwę pakietu.
Android Studio w wersji 1.3.0 (lipiec 2015 r.)
Poprawki i ulepszenia:
- Dodano opcje włączania usług dla programistów, takich jak Google AdMob i Analytics, w aplikacji z poziomu Android Studio.
- Dodano dodatkowe adnotacje, takie jak
@RequiresPermission
,@CheckResults
i@MainThread
. - Dodaliśmy możliwość generowania zrzutów sterty Javy i analizowania przydziałów wątków w Monitorze pamięci. Możesz też przekonwertować pliki binarne HPROF w formacie specyficznym dla Androida na standardowy format HPROF w Androidzie Studio.
- Zintegrowaliśmy Menedżera SDK z Android Studio, aby uprościć dostęp do pakietów i narzędzi oraz wyświetlać powiadomienia o aktualizacjach.
Uwaga: samodzielny Menedżer SDK jest nadal dostępny z poziomu wiersza poleceń, ale zalecamy używanie go tylko w przypadku samodzielnych instalacji SDK.
- Dodano polecenie
finger
w konsoli emulatora, aby symulować uwierzytelnianie odciskiem palca. - Dodano deklarację zasobu
<public>
, aby oznaczyć zasoby biblioteki jako publiczne i prywatne.Uwaga: wymaga wtyczki Androida do obsługi Gradle w wersji 1.3 lub nowszej.
- Dodaliśmy obsługę powiązań danych, aby umożliwić tworzenie deklaratywnych układów, które wiążą logikę aplikacji z elementami układu.
- Dodano obsługę osobnego modułu testowego APK do tworzenia testowych plików APK w Android Studio.
- Zaktualizowaliśmy AVD Manager, wprowadzając optymalizacje HAXM i ulepszone powiadomienia.
- Dodaliśmy obsługę emulatora 64-bitowego ARM i MIPS w przypadku QEMU w wersji 2.1.
- Uproszczono rozwiązywanie problemów z ostrzeżeniami narzędzia Lint, dodając szybkie poprawki, takie jak automatyczne generowanie implementacji interfejsu Parcelable.
- Dodaliśmy obsługę szablonów na żywo, które umożliwiają szybkie wstawianie fragmentów kodu.
Android Studio w wersji 1.2.2(czerwiec 2015 r.)
Poprawki i ulepszenia:
- Rozwiązaliśmy problemy z kompilacją, które uniemożliwiały jej ukończenie.
Android Studio w wersji 1.2.1 (maj 2015 r.)
Poprawki i ulepszenia:
- Naprawiono drobne problemy z wydajnością i funkcjami.
Android Studio w wersji 1.2.0 (kwiecień 2015 r.)
Poprawki i ulepszenia:
- Zaktualizowaliśmy okno środowiska wykonawczego Androida, aby uwzględnić narzędzie Monitor pamięci, i dodaliśmy kartę do monitorowania wydajności procesora.
- Dodaliśmy kartę Zrzuty na lewym marginesie, aby wyświetlać przechwycone pliki danych o wydajności pamięci i procesora, takie jak śledzenie metod procesora i migawki sterty pamięci.
- Rozszerzona obsługa adnotacji z dodatkowymi adnotacjami metadanych i wnioskowaną możliwością przyjmowania wartości null.
- Ulepszyliśmy Edytor tłumaczeń, dodając obsługę normy Best Current Practice (BCP) 47, która używa 3-literowych kodów języków i regionów.
- Zintegrowane funkcje IntelliJ 14 i 14.1, które poprawiają analizę kodu i wydajność:
-
- Ulepszone debugowanie, które umożliwia wyświetlanie w tekście wartości zmiennych i obiektów odwołujących się, a także przeprowadzanie w tekście oceny wyrażeń lambda i operatorów.
- Dodaliśmy wykrywanie stylu kodu w przypadku rozmiarów tabulatorów i wcięć.
- Dodaliśmy pliki tymczasowe do eksperymentowania z kodem i tworzenia prototypów bez plików projektu.
- Dodaliśmy jednoczesne wstawianie tagów otwierających i zamykających w plikach HTML i XML.
- Dodaliśmy wbudowany dekompilator klas Java, dzięki czemu możesz sprawdzić zawartość biblioteki, dla której kod źródłowy nie jest dostępny.
Pełny opis nowych funkcji i ulepszeń znajdziesz w artykule Co nowego w IntelliJ.
- Dodano dodatkowe widoki projektu dla wersji roboczych, plików projektu, problemów, produkcji i testów, aby ułatwić zarządzanie projektami i dostęp do nich.
- Ulepszyliśmy menu Plik > Ustawienia i okna dialogowe, aby ułatwić dostęp do ustawień i zarządzanie nimi.
- Dodaliśmy obsługę wyświetlaczy o wysokiej gęstości pikseli w systemach Windows i Linux.
- Dodaliśmy obsługę zasobów o rozdzielczości 280 dpi w folderze
res/drawable-280dpi/
.
Android Studio w wersji 1.1.0 (luty 2015 r.)
Różne poprawki i ulepszenia:
- Dodaliśmy obsługę szablonu zegarka Android Wear.
- Zmodyfikowano tworzenie nowych projektów i modułów, aby uwzględniało foldery
res/mipmap
z ikonami programu uruchamiającego o określonej gęstości. Te folderyres/mipmap
zastępują folderyres/drawable
ikon programów uruchamiających. - Zaktualizowaliśmy ikony programu uruchamiającego, aby miały wygląd Material Design, i dodaliśmy ikonę programu uruchamiającego
xxxhdpi
. - Dodano i ulepszono sprawdzanie Lint w przypadku kombinacji regionów i języków, ikon programu uruchamiającego, nazw zasobów i innych typowych problemów z kodem.
- Dodano obsługę tagu języka BCP 47 (Best Current Practice).
Android Studio w wersji 1.0.1 (grudzień 2014 r.)
Różne poprawki i ulepszenia:
- Rozwiązaliśmy problem z blokowaniem Menedżera AVD i pliku device.xml.
- Naprawiono logowanie emulatora w systemach Windows.
- Rozwiązaliśmy problem z tworzeniem urządzeń wirtualnych z Androidem w Android Studio i pakietem Android SDK zainstalowanymi na różnych dyskach w systemach Windows.
- Ustawia domyślny kanał aktualizacji dla nowych pobrań na Stabilny. Jeśli masz zainstalowaną wersję 1.0.0 Androida Studio i chcesz otrzymywać aktualizacje stabilnej wersji gotowej do wdrożenia, wybierz Plik > Ustawienia > Aktualizacje, aby zmienić kanał aktualizacji na Stabilny.
Android Studio w wersji 1.0 (grudzień 2014 r.)
Pierwsza wersja Androida Studio.
Android Studio w wersji 0.8.14 (październik 2014 r.)
Pełną listę zmian znajdziesz na stronie tools.android.com.
Android Studio w wersji 0.8.6 (sierpień 2014 r.)
Pełną listę zmian znajdziesz na stronie tools.android.com.
Android Studio w wersji 0.8.0 (czerwiec 2014 r.)
Dodano obsługę projektów Android Wear.
Pełną listę zmian znajdziesz na stronie tools.android.com.
Android Studio w wersji 0.5.2 (maj 2014 r.)
- Pełną listę zmian znajdziesz na stronie tools.android.com.
Android Studio w wersji 0.4.6 (marzec 2014 r.)
- Pełną listę zmian znajdziesz na stronie tools.android.com.
Android Studio w wersji 0.4.2 (styczeń 2014 r.)
- Pełną listę zmian znajdziesz na stronie tools.android.com.
Android Studio w wersji 0.3.2 (październik 2013 r.)
- Pełną listę zmian znajdziesz na stronie tools.android.com.
Android Studio w wersji 0.2.x (lipiec 2013 r.)
- Scalono z najnowszymi zmianami w bazie kodu IntelliJ. Zawiera poprawki problemów zgłoszonych przez użytkowników Studio, takie jak zmiany rozmiarów czcionek i renderowania czcionek w systemie Linux.
- Wtyczka Androida do obsługi Gradle została zaktualizowana do wersji 0.5.0.
Uwaga: ta nowa wersja nie jest zgodna wstecznie. Podczas otwierania projektu, który korzysta ze starszej wersji wtyczki, Studio wyświetli błąd Nie udało się odświeżyć projektu Gradle <project_name>.
Zaktualizowana wtyczka Gradle zawiera te zmiany:
- Poprawiliśmy model IDE, aby zawierał plik wyjściowy nawet wtedy, gdy jest dostosowany za pomocą DSL. Dodatkowo
poprawiliśmy DSL, aby pobierać i ustawiać plik wyjściowy w obiekcie wariantu, dzięki czemu nie trzeba używać
variant.packageApplication or variant.zipAlign
- Poprawiliśmy rozwiązywanie zależności, abyśmy rozwiązywali kombinację (konfiguracja domyślna, typy kompilacji, wersje) razem, a nie osobno.
- Naprawiono zależność w przypadku testów projektu biblioteki, aby prawidłowo uwzględniać wszystkie zależności samej biblioteki.
- Naprawiono przypadek, w którym 2 zależności mają taką samą nazwę liścia.
- Rozwiązaliśmy problem polegający na tym, że pliku reguł Proguard nie można było zastosować w przypadku wersji.
Wszystkie informacje o wersjach wtyczki Gradle znajdziesz tutaj: http://tools.android.com/tech-docs/new-build-system.
- Poprawiliśmy model IDE, aby zawierał plik wyjściowy nawet wtedy, gdy jest dostosowany za pomocą DSL. Dodatkowo
poprawiliśmy DSL, aby pobierać i ustawiać plik wyjściowy w obiekcie wariantu, dzięki czemu nie trzeba używać
- Błędy Gradle z narzędzia aapt nie wskazują już scalonych plików wyjściowych w folderze build/, ale prawdziwe lokalizacje źródłowe.
- Równoległe kompilacje. Możesz teraz używać równoległych kompilacji Gradle. Pamiętaj, że kompilacje równoległe są w fazie „inkubacji” (patrz dokumentacja Gradle). Ta funkcja jest domyślnie wyłączona. Aby włączyć tę funkcję, kliknij Ustawienia > Kompilator i zaznacz pole Kompiluj niezależne moduły równolegle.
- Dalsze prace nad nowym repozytorium zasobów używanym do renderowania układu, zwijania zasobów w edytorze i innych działań:
- Podstawowa obsługa zależności bibliotek .aar (np. korzystanie z biblioteki bez lokalnej kopii źródeł). Nadal nie działa w przypadku weryfikacji kodu XML zasobu i nawigacji w edytorach kodu źródłowego.
- Wykrywanie cykli w odwołaniach do zasobów.
- Szybka dokumentacja (F1), która może wyświetlać wszystkie tłumaczenia ciągu znaków pod kursorem, będzie teraz wyświetlać również wszystkie nakładki zasobów z różnych wersji Gradle i typów kompilacji, a także biblioteki. Są one wymienione w odwrotnej kolejności nakładania zasobów, a wersje ciągu znaków, które są zamaskowane, są przekreślone.
- Poprawki dotyczące aktualizowania scalonych zasobów, gdy zmieni się zestaw zależności modułów.
- Poprawki renderowania XML, które umożliwiają prawidłowe obsługiwanie deklaracji encji znakowych oraz znaków ucieczki XML i Unicode.
- Obsługa zapisywania zrzutów ekranu w oknach podglądu układu i edytora układu.
- Poprawki błędów w szablonach.
- Poprawki błędów narzędzia Lint.
- Różne poprawki raportów o awariach. Dziękujemy i zachęcamy do dalszego przesyłania raportów o awariach.
Android Studio w wersji 0.1.x (maj 2013 r.)
- Różne poprawki błędów, w tym poprawka typowego problemu z instalacją systemu Windows.
Starsze wersje wtyczki Androida do obsługi Gradle
3.6.0 (luty 2020 r.)
Ta wersja wtyczki Androida wymaga:
-
Gradle 5.6.4. Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
-
Narzędzia do kompilacji pakietu SDK w wersji 28.0.3 lub nowszej.
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami widoczności pakietu w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
Nowe funkcje
Ta wersja wtyczki Androida do obsługi Gradle zawiera te nowe funkcje:
Wyświetl powiązanie
Powiązanie widoku zapewnia bezpieczeństwo w czasie kompilacji podczas odwoływania się do widoków w kodzie. Możesz teraz zastąpić findViewById()
odwołaniem do wygenerowanej automatycznie klasy powiązań. Aby zacząć korzystać z powiązania widoków, w pliku build.gradle
każdego modułu umieść ten kod:
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
Więcej informacji znajdziesz w dokumentacji dotyczącej powiązania widoku.
Obsługa wtyczki Maven Publish
Wtyczka Androida do obsługi Gradle obsługuje wtyczkę Gradle do publikowania w Mavenie, która umożliwia publikowanie artefaktów kompilacji w repozytorium Apache Maven. Wtyczka Androida do Gradle tworzy komponent dla każdego artefaktu wariantu kompilacji w aplikacji lub module biblioteki, którego możesz użyć do dostosowania publikacji w repozytorium Maven.
Więcej informacji znajdziesz na stronie poświęconej korzystaniu z wtyczki Maven Publish.
Nowe domyślne narzędzie do pakowania
Podczas tworzenia wersji debugowania aplikacji wtyczka używa nowego narzędzia do pakowania o nazwie zipflinger, aby utworzyć plik APK. To nowe narzędzie powinno przyspieszyć kompilację. Jeśli nowe narzędzie do pakowania nie działa zgodnie z oczekiwaniami, zgłoś błąd. Możesz wrócić do starego narzędzia do pakowania, dodając do pliku gradle.properties
ten kod:
android.useNewApkCreator=false
Atrybucja kompilacji natywnej
Możesz teraz określić, ile czasu zajmuje Clangowi kompilacja i linkowanie każdego pliku C/C++ w projekcie. Gradle może wygenerować ślad Chrome zawierający sygnatury czasowe tych zdarzeń kompilatora, dzięki czemu możesz lepiej zrozumieć, ile czasu zajmuje kompilacja projektu. Aby wygenerować ten plik atrybucji kompilacji, wykonaj te czynności:
-
Dodaj flagę
-Pandroid.enableProfileJson=true
podczas uruchamiania kompilacji Gradle. Na przykład:gradlew assembleDebug -Pandroid.enableProfileJson=true
-
Otwórz przeglądarkę Chrome i na pasku wyszukiwania wpisz
chrome://tracing
. -
Kliknij przycisk Wczytaj i przejdź do
<var>project-root</var>/build/android-profile
, aby znaleźć plik. Plik ma nazwęprofile-<var>timestamp</var>.json.gz
.
Dane atrybucji kompilacji natywnej znajdziesz u góry przeglądarki:
Zmiany w działaniu
Podczas korzystania z tej wersji wtyczki możesz zauważyć następujące zmiany w jej działaniu:
Domyślnie biblioteki natywne są pakowane bez kompresji
Podczas tworzenia aplikacji wtyczka domyślnie ustawia wartość extractNativeLibs
na "false"
. Oznacza to, że biblioteki natywne są wyrównane do stron i spakowane bez kompresji. Chociaż powoduje to większy rozmiar przesyłanego pliku, użytkownicy zyskują:
- Mniejszy rozmiar instalacji aplikacji, ponieważ platforma może uzyskiwać dostęp do bibliotek natywnych bezpośrednio z zainstalowanego pliku APK bez tworzenia kopii bibliotek.
- Mniejszy rozmiar pobierania, ponieważ kompresja w Sklepie Play jest zwykle lepsza, gdy w pliku APK lub pakiecie Android App Bundle uwzględnisz nieskompresowane biblioteki natywne.
Jeśli chcesz, aby wtyczka Androida do obsługi Gradle pakowała skompresowane biblioteki natywne, w pliku manifestu aplikacji umieść ten kod:
<application
android:extractNativeLibs="true"
... >
</application>
Uwaga: atrybut extractNativeLibs
manifest
został zastąpiony opcją useLegacyPackaging
DSL. Więcej informacji znajdziesz w informacjach o wersji Używanie DSL do pakowania skompresowanych bibliotek natywnych.
Domyślna wersja NDK
Jeśli pobierzesz kilka wersji NDK, wtyczka Androida do Gradle wybierze domyślną wersję do kompilowania plików kodu źródłowego.
Wcześniej wtyczka wybierała najnowszą pobraną wersję NDK.
Użyj właściwości android.ndkVersion
w pliku build.gradle
modułu, aby zastąpić domyślne ustawienie wybrane przez wtyczkę.
Uproszczone generowanie klasy R
Wtyczka Androida do Gradle upraszcza ścieżkę kompilacji, generując tylko jedną klasę R dla każdego modułu biblioteki w projekcie i udostępniając te klasy R innym zależnościom modułu. Ta optymalizacja powinna przyspieszyć kompilację, ale musisz pamiętać o tych kwestiach:
- Kompilator udostępnia klasy R zależnościom modułu nadrzędnego, dlatego ważne jest, aby każdy moduł w projekcie używał unikalnej nazwy pakietu.
- Widoczność klasy R biblioteki dla innych zależności projektu jest określana przez konfigurację używaną do uwzględniania biblioteki jako zależności. Jeśli na przykład biblioteka A zawiera bibliotekę B jako zależność „api”, biblioteka A i inne biblioteki, które są od niej zależne, mają dostęp do klasy R biblioteki B. Jednak inne biblioteki mogą nie mieć dostępu do klasy R biblioteki B. Jeśli biblioteka A używa konfiguracji zależności
implementation
. Więcej informacji znajdziesz w artykule o konfiguracjach zależności.
Usuwanie zasobów, których brakuje w konfiguracji domyślnej
W przypadku modułów biblioteki, jeśli uwzględnisz zasób dla języka, którego nie ma w domyślnym zestawie zasobów (np. jeśli uwzględnisz hello_world
jako zasób ciągu tekstowego w /values-es/strings.xml
, ale nie zdefiniujesz tego zasobu w /values/strings.xml
), wtyczka Androida do Gradle nie będzie już uwzględniać tego zasobu podczas kompilowania projektu. Ta zmiana w działaniu powinna zmniejszyć liczbę Resource Not Found
wyjątków w czasie działaniaResource Not Found
i przyspieszyć kompilację.
D8 uwzględnia teraz zasady przechowywania CLASS w przypadku adnotacji
Podczas kompilowania aplikacji kompilator D8 uwzględnia teraz, kiedy adnotacje stosują zasadę zachowywania CLASS, a te adnotacje nie są już dostępne w czasie działania. To zachowanie występuje również w przypadku ustawienia docelowego pakietu SDK aplikacji na poziom interfejsu API 23, który wcześniej umożliwiał dostęp do tych adnotacji w czasie działania podczas kompilowania aplikacji przy użyciu starszych wersji wtyczki Androida do obsługi Gradle i D8.
Inne zmiany w działaniu
-
aaptOptions.noCompress
nie rozróżnia już wielkości liter na wszystkich platformach (w przypadku plików APK i pakietów) i uwzględnia ścieżki, w których użyto wielkich liter. -
Wiązanie danych jest teraz domyślnie przyrostowe. Więcej informacji znajdziesz w problemie nr 110061530.
-
Wszystkie testy jednostkowe, w tym testy jednostkowe Roboelectric, można teraz w pełni buforować. Więcej informacji znajdziesz w tym artykule.
Poprawki błędów
Ta wersja wtyczki Androida do obsługi Gradle zawiera te poprawki błędów:
- Testy jednostkowe Robolectric są teraz obsługiwane w modułach biblioteki, które korzystają z wiązania danych. Więcej informacji znajdziesz w problemie nr 126775542.
- Możesz teraz uruchamiać
connectedAndroidTest
zadania w wielu modułach, gdy włączony jest tryb równoległego wykonywania Gradle.
Znane problemy
W tej sekcji opisujemy znane problemy występujące we wtyczce Androida do obsługi Gradle w wersji 3.6.0.
Powolne działanie zadania Android Lint
W przypadku niektórych projektów narzędzie Android Lint może działać znacznie dłużej z powodu regresji w infrastrukturze analizowania, co powoduje wolniejsze obliczanie wnioskowanych typów dla wyrażeń lambda w określonych konstrukcjach kodu.
Problem jest zgłaszany jako błąd w IDEA i zostanie rozwiązany w wtyczce Androida do obsługi Gradle w wersji 4.0.
Brak klasy manifestu {:#agp-missing-manifest}
Jeśli aplikacja definiuje w manifeście uprawnienia niestandardowe, wtyczka Androida Gradle zwykle generuje klasę Manifest.java
, która zawiera uprawnienia niestandardowe jako stałe ciągi znaków. Wtyczka pakuje tę klasę z aplikacją, dzięki czemu możesz łatwiej odwoływać się do tych uprawnień w czasie działania.
Generowanie klasy manifestu nie działa w wtyczce Androida do obsługi Gradle w wersji 3.6.0.
Jeśli tworzysz aplikację za pomocą tej wersji wtyczki i odwołuje się ona do klasy manifestu, może pojawić się wyjątek ClassNotFoundException
. Aby rozwiązać ten problem, wykonaj jedną z tych czynności:
-
Odwołuj się do uprawnień niestandardowych za pomocą ich pełnej nazwy. Na przykład:
"com.example.myapp.permission.DEADLY_ACTIVITY"
. -
Zdefiniuj własne stałe, jak pokazano poniżej:
public final class CustomPermissions { public static final class permission { public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY"; } }
3.5.0 (sierpień 2019 r.)
Wtyczka Androida do obsługi Gradle w wersji 3.5.0 wraz z Androidem Studio 3.5 to ważna wersja, która jest wynikiem projektu Marble. Projekt ten koncentruje się na ulepszaniu 3 głównych obszarów narzędzi dla deweloperów aplikacji na Androida: stanu systemu, dopracowania funkcji i usuwania błędów. W tej aktualizacji skupiliśmy się przede wszystkim na zwiększeniu szybkości kompilacji projektu.
Więcej informacji o tych i innych aktualizacjach Projektu Marble znajdziesz w poście na blogu dla deweloperów aplikacji na Androida lub w sekcjach poniżej.
Ta wersja wtyczki Androida wymaga:
-
Gradle 5.4.1. Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
-
Narzędzia do kompilacji pakietu SDK w wersji 28.0.3 lub nowszej.
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami widoczności pakietu w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
3.5.3 (grudzień 2019 r.)
Ta niewielka aktualizacja obsługuje Androida Studio 3.5.3 i zawiera różne poprawki błędów oraz ulepszenia działania.
3.5.2 (listopad 2019 r.)
Ta niewielka aktualizacja obsługuje Androida Studio 3.5.2 i zawiera różne poprawki błędów oraz ulepszenia działania. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.5.1 (październik 2019 r.)
Ta niewielka aktualizacja obsługuje Androida Studio 3.5.1 i zawiera różne poprawki błędów oraz ulepszenia działania. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
Przyrostowe przetwarzanie adnotacji
Procesor adnotacji Data Binding obsługuje przyrostowe przetwarzanie adnotacji, jeśli w pliku gradle.properties
ustawisz android.databinding.incremental=true
. Ta optymalizacja poprawia wydajność przyrostowego tworzenia. Pełną listę zoptymalizowanych procesorów adnotacji znajdziesz w tabeli procesorów adnotacji przyrostowych.
KAPT w wersji 1.3.30 i nowszych obsługuje też przyrostowe procesory adnotacji, które możesz włączyć, dodając kapt.incremental.apt=true
do pliku gradle.properties
.
Testy jednostkowe z możliwością zapisywania w pamięci podręcznej
Gdy włączysz testy jednostkowe, aby korzystały z zasobów, komponentów i plików manifestu Androida, ustawiając includeAndroidResources
na true
, wtyczka Androida do obsługi Gradle wygeneruje plik konfiguracji testu zawierający ścieżki bezwzględne, co spowoduje utratę możliwości przenoszenia pamięci podręcznej. Możesz poinstruować wtyczkę, aby zamiast tego generowała konfigurację testu przy użyciu ścieżek względnych, co umożliwia pełne buforowanie zadania AndroidUnitTest
. Aby to zrobić, w pliku gradle.properties
umieść ten kod:
android.testConfig.useRelativePath = true
Znane problemy
-
Jeśli używasz wtyczki Kotlin Gradle w wersji 1.3.31 lub starszej, podczas kompilowania lub synchronizowania projektu może pojawić się ten komunikat ostrzegawczy:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
Aby rozwiązać ten problem, zaktualizuj wtyczkę do wersji 1.3.40 lub nowszej.
3.4.0 (kwiecień 2019 r.)
Ta wersja wtyczki Androida wymaga:
-
Gradle w wersji 5.1.1 lub nowszej. Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
Uwaga: w przypadku Gradle w wersji 5.0 i nowszych domyślny rozmiar sterty pamięci demona Gradle zmniejsza się z 1 GB do 512 MB. Może to spowodować spadek wydajności kompilacji. Aby zastąpić to ustawienie domyślne, określ rozmiar sterty demona Gradle w pliku
gradle.properties
projektu. -
Narzędzia do kompilacji pakietu SDK w wersji 28.0.3 lub nowszej.
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami widoczności pakietu w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
3.4.2 (lipiec 2019 r.)
Ta niewielka aktualizacja obsługuje Androida Studio 3.4.2 i zawiera różne poprawki błędów oraz ulepszenia działania. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.4.1 (maj 2019 r.)
Ta niewielka aktualizacja obsługuje Androida Studio 3.4.1 i zawiera różne poprawki błędów oraz ulepszenia działania. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
Nowe funkcje
-
Nowe konfiguracje zależności sprawdzania lint: działanie
lintChecks
uległo zmianie, a nowa konfiguracja zależnościlintPublish
została wprowadzona, aby zapewnić Ci większą kontrolę nad tym, które sprawdzania lint są pakowane w bibliotekach Androida.-
lintChecks
: jest to istniejąca konfiguracja, której należy używać do sprawdzania kodu, które mają być uruchamiane tylko podczas lokalnego kompilowania projektu. Jeśli dołączasz do opublikowanego pliku AAR testy lint za pomocą konfiguracji zależnościlintChecks
, musisz przenieść te zależności, aby zamiast tego używać nowej konfiguracjilintPublish
opisanej poniżej. -
lintPublish
: Użyj tej nowej konfiguracji w projektach biblioteki do sprawdzania kodu za pomocą narzędzia lint, które chcesz uwzględnić w opublikowanym pliku AAR, jak pokazano poniżej. Oznacza to, że projekty, które korzystają z Twojej biblioteki, również stosują te testy.
Poniższy przykładowy kod korzysta z obu konfiguracji zależności w lokalnym projekcie biblioteki Androida.
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks project(':lint') // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish project(':lintpublish') }
dependencies { // Executes lint checks from the ':lint' project at build time. lintChecks(project(":lint")) // Packages lint checks from the ':lintpublish' in the published AAR. lintPublish(project(":lintpublish")) }
-
Ogólnie zadania związane z pakowaniem i podpisywaniem powinny być wykonywane szybciej. Jeśli zauważysz spadek wydajności związany z tymi zadaniami, zgłoś błąd.
-
Zmiany w działaniu
-
Wycofanie wtyczki funkcji aplikacji błyskawicznych na Androida: ostrzeżenie: jeśli do tworzenia aplikacji błyskawicznej nadal używasz wtyczki
com.android.feature
, wtyczka Androida do obsługi Gradle w wersji 3.4.0 będzie wyświetlać ostrzeżenie o wycofaniu. Aby mieć pewność, że w przyszłych wersjach wtyczki nadal będzie można tworzyć aplikację błyskawiczną, przenieś ją do wtyczki z funkcjami dynamicznymi. Umożliwia ona też publikowanie zarówno wersji instalowanej, jak i błyskawicznej aplikacji z poziomu jednego pakietu Android App Bundle. -
R8 włączony domyślnie: R8 integruje usuwanie cukru syntaktycznego, zmniejszanie rozmiaru, zaciemnianie, optymalizację i indeksowanie DEX w jednym kroku, co skutkuje znaczną poprawą wydajności kompilacji. Narzędzie R8 zostało wprowadzone we wtyczce Androida do obsługi Gradle w wersji 3.3.0 i jest teraz domyślnie włączone w przypadku projektów aplikacji i bibliotek Androida, które korzystają z wtyczki w wersji 3.4.0 lub nowszej.
Obraz poniżej przedstawia ogólny proces kompilacji przed wprowadzeniem R8.

W przypadku R8 usuwanie składni, zmniejszanie, zaciemnianie, optymalizacja i indeksowanie (D8) są wykonywane w jednym kroku, jak pokazano poniżej.

Pamiętaj, że R8 jest zaprojektowany do współpracy z dotychczasowymi regułami ProGuard, więc prawdopodobnie nie musisz nic robić, aby korzystać z R8. Jest to jednak inna technologia niż ProGuard, zaprojektowana specjalnie z myślą o projektach na Androida, więc zmniejszanie i optymalizacja mogą spowodować usunięcie kodu, którego ProGuard nie usunąłby. W takiej mało prawdopodobnej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w danych wyjściowych kompilacji.
Jeśli masz problemy z używaniem R8, przeczytaj najczęstsze pytania dotyczące zgodności R8, aby sprawdzić, czy istnieje rozwiązanie Twojego problemu. Jeśli rozwiązanie nie jest udokumentowane, zgłoś błąd.
Aby wyłączyć R8, dodaj jeden z tych wierszy do pliku gradle.properties
projektu:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Uwaga: jeśli w pliku build.gradle
modułu aplikacji ustawisz wartość useProguard
na false
, wtyczka Androida do obsługi Gradle będzie używać R8 do zmniejszania kodu aplikacji w przypadku danego typu kompilacji, niezależnie od tego, czy wyłączysz R8 w pliku gradle.properties
projektu.
-
ndkCompile
jest wycofany: jeśli spróbujesz użyćndkBuild
do skompilowania bibliotek natywnych, pojawi się błąd kompilacji. Zamiast tego użyj CMake lub ndk-build, aby dodać do projektu kod w językach C i C++.
Znane problemy
-
Prawidłowe używanie unikalnych nazw pakietów nie jest obecnie wymuszane, ale w późniejszych wersjach wtyczki będzie bardziej rygorystyczne. W przypadku wtyczki Androida do obsługi Gradle w wersji 3.4.0 możesz włączyć sprawdzanie, czy projekt deklaruje akceptowalne nazwy pakietów, dodając poniższy wiersz do pliku
gradle.properties
.android.uniquePackageNames = true
Więcej informacji o ustawianiu nazwy pakietu za pomocą wtyczki Androida do obsługi Gradle znajdziesz w artykule Ustawianie identyfikatora aplikacji.
3.3.0 (styczeń 2019 r.)
Ta wersja wtyczki Androida wymaga:
-
Gradle w wersji 4.10.1 lub nowszej. Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
Uwaga: w przypadku Gradle w wersji 5.0 i nowszych domyślny rozmiar sterty pamięci demona Gradle zmniejsza się z 1 GB do 512 MB. Może to spowodować spadek wydajności kompilacji. Aby zastąpić to ustawienie domyślne, określ rozmiar sterty demona Gradle w pliku
gradle.properties
projektu. -
Narzędzia do kompilacji pakietu SDK w wersji 28.0.3 lub nowszej.
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami widoczności pakietu w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
3.3.2 (marzec 2019 r.)
Ta niewielka aktualizacja obsługuje Androida Studio 3.3.2 i zawiera różne poprawki błędów oraz ulepszenia działania. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.
3.3.1 (luty 2019 r.)
Ta niewielka aktualizacja obsługuje Androida Studio 3.3.1 i zawiera różne poprawki błędów oraz ulepszenia działania.
Nowe funkcje
-
Ulepszona synchronizacja ścieżki klas: podczas rozwiązywania zależności w ścieżkach klas w czasie działania i kompilacji wtyczka Androida do Gradle próbuje rozwiązać niektóre konflikty wersji zależności występujące w wielu ścieżkach klas.
Jeśli np. ścieżka klas środowiska wykonawczego zawiera bibliotekę A w wersji 2.0, a ścieżka klas kompilacji zawiera bibliotekę A w wersji 1.0, wtyczka automatycznie aktualizuje zależność w ścieżce klas kompilacji do biblioteki A w wersji 2.0, aby uniknąć błędów.
Jeśli jednak ścieżka klasy środowiska wykonawczego zawiera bibliotekę A w wersji 1.0, a kompilacja zawiera bibliotekę A w wersji 2.0, wtyczka nie obniża poziomu zależności w ścieżce klasy kompilacji do biblioteki A w wersji 1.0 i wyświetla błąd. Więcej informacji znajdziesz w artykule Rozwiązywanie konfliktów między ścieżkami klas.
-
Ulepszona przyrostowa kompilacja kodu Java podczas korzystania z procesorów adnotacji: ta aktualizacja skraca czas kompilacji dzięki ulepszeniu obsługi przyrostowej kompilacji kodu Java podczas korzystania z procesorów adnotacji.
Uwaga: ta funkcja jest zgodna z wersją Gradle 4.10.1 i nowszymi, z wyjątkiem Gradle 5.1 z powodu problemu 8194.
-
W przypadku projektów korzystających z Kapt (większość projektów tylko w Kotlinie i projektów hybrydowych Kotlin-Java): włączona jest kompilacja przyrostowa Javy, nawet jeśli używasz powiązania danych lub wtyczki retro-lambda. Przetwarzanie adnotacji przez zadanie Kapt nie jest jeszcze przyrostowe.
-
W przypadku projektów, które nie korzystają z Kapt (projekty tylko w języku Java): jeśli wszystkie używane przez Ciebie procesory adnotacji obsługują przyrostowe przetwarzanie adnotacji, przyrostowa kompilacja w języku Java jest domyślnie włączona. Aby monitorować stopniowe wdrażanie procesora adnotacji, śledź problem 5277 w Gradle.
Jeśli jednak co najmniej jeden procesor adnotacji nie obsługuje kompilacji przyrostowych, kompilacja przyrostowa w języku Java nie jest włączona. Zamiast tego możesz dodać do pliku
gradle.properties
ten flag:android.enableSeparateAnnotationProcessing=true
Gdy uwzględnisz ten flagę, wtyczka Androida do Gradle wykona procesory adnotacji w osobnym zadaniu i umożliwi przyrostowe uruchamianie zadania kompilacji Javy.
-
-
Lepsze informacje do debugowania podczas korzystania z przestarzałego interfejsu API: gdy wtyczka wykryje, że używasz interfejsu API, który nie jest już obsługiwany, może teraz podać bardziej szczegółowe informacje, które pomogą Ci określić, gdzie ten interfejs API jest używany. Aby zobaczyć dodatkowe informacje, musisz uwzględnić w pliku
gradle.properties
projektu te elementy:android.debug.obsoleteApi=true
Możesz też włączyć flagę, przekazując
-Pandroid.debug.obsoleteApi=true
z wiersza poleceń. -
Testy instrumentacji możesz uruchamiać w modułach funkcji z poziomu wiersza poleceń.
Zmiany w działaniu
-
Konfiguracja zadań wykonywanych na żądanie: wtyczka korzysta teraz z nowego interfejsu API Gradle do tworzenia zadań, aby uniknąć inicjowania i konfigurowania zadań, które nie są wymagane do ukończenia bieżącej kompilacji (lub zadań, które nie znajdują się na wykresie zadań do wykonania). Jeśli na przykład masz kilka wariantów kompilacji, takich jak „release” i „debug”, a kompilujesz wersję „debug” aplikacji, wtyczka unika inicjowania i konfigurowania zadań dla wersji „release” aplikacji.
Wywoływanie niektórych starszych metod w interfejsie Variants API, np.
variant.getJavaCompile()
, może nadal wymuszać konfigurację zadania. Aby mieć pewność, że kompilacja jest zoptymalizowana pod kątem konfiguracji zadań wykonywanych na żądanie, wywołaj nowe metody, które zamiast tego zwracają obiekt TaskProvider, np.variant.getJavaCompileProvider()
.Jeśli wykonujesz niestandardowe zadania kompilacji, dowiedz się, jak dostosować się do nowego interfejsu API Gradle do tworzenia zadań.
-
W przypadku danego typu kompilacji podczas ustawiania
useProguard false
wtyczka używa teraz R8 zamiast ProGuard do zmniejszania i zaciemniania kodu oraz zasobów aplikacji. Więcej informacji o R8 znajdziesz w tym poście na blogu dla deweloperów aplikacji na Androida. -
Szybsze generowanie klasy R w projektach bibliotek: wcześniej wtyczka Androida do obsługi Gradle generowała plik
R.java
dla każdego z zależności projektu, a następnie kompilowała te klasy R wraz z innymi klasami aplikacji. Wtyczka generuje teraz bezpośrednio plik JAR zawierający skompilowaną klasę R aplikacji, bez wcześniejszego tworzenia pośrednich klasR.java
. Ta optymalizacja może znacznie zwiększyć wydajność kompilacji w przypadku projektów, które zawierają wiele podprojektów bibliotek i zależności, a także przyspieszyć indeksowanie w Android Studio. -
Podczas tworzenia pakietu aplikacji na Androida pliki APK wygenerowane z tego pakietu aplikacji, które są kierowane na Androida 6.0 (poziom interfejsu API 23) lub nowszego, domyślnie zawierają nieskompresowane wersje bibliotek natywnych. Ta optymalizacja eliminuje konieczność kopiowania biblioteki przez urządzenie, a tym samym zmniejsza rozmiar aplikacji na dysku. Jeśli chcesz wyłączyć tę optymalizację, dodaj do pliku
gradle.properties
ten kod:android.bundle.enableUncompressedNativeLibs = false
-
Wymaga on minimalnych wersji niektórych wtyczek innych firm.
-
Synchronizacja projektu z jednym wariantem: Synchronizacja projektu z konfiguracją kompilacji to ważny krok, który pozwala Android Studio zrozumieć strukturę projektu. W przypadku dużych projektów ten proces może jednak zająć dużo czasu. Jeśli Twój projekt korzysta z wielu wariantów kompilacji, możesz teraz zoptymalizować synchronizację projektu, ograniczając ją tylko do aktualnie wybranego wariantu.
Aby włączyć tę optymalizację, musisz używać Androida Studio w wersji 3.3 lub nowszej z Android Gradle Plugin w wersji 3.3.0 lub nowszej. Gdy spełnisz te wymagania, środowisko IDE wyświetli prośbę o włączenie tej optymalizacji podczas synchronizacji projektu. Optymalizacja jest też domyślnie włączona w nowych projektach.
Aby włączyć tę optymalizację ręcznie, kliknij Plik > Ustawienia > Eksperymentalne > Gradle (Android Studio > Ustawienia > Eksperymentalne > Gradle na komputerze Mac) i zaznacz pole wyboru Synchronizuj tylko aktywny wariant.
Uwaga: ta optymalizacja w pełni obsługuje projekty, które zawierają języki Java i C++, a także częściowo obsługuje język Kotlin. Gdy włączysz optymalizację w przypadku projektów z zawartością w języku Kotlin, synchronizacja Gradle wewnętrznie powróci do używania pełnych wariantów.
-
Automatyczne pobieranie brakujących pakietów SDK: ta funkcja została rozszerzona o obsługę NDK. Więcej informacji znajdziesz w artykule Automatyczne pobieranie brakujących pakietów za pomocą Gradle.
Poprawki błędów.
-
Wtyczka Androida do obsługi Gradle w wersji 3.3.0 rozwiązuje te problemy:
- Proces kompilacji wywołuje
android.support.v8.renderscript.RenderScript
zamiast wersji AndroidX, mimo że Jetifier jest włączony. - Konflikty spowodowane przez
androidx-rs.jar
, w tym statycznie powiązaneannotation.AnyRes
- Jeśli używasz RenderScript, nie musisz już ręcznie ustawiać wersji narzędzi kompilacji w plikach
build.gradle
.
- Proces kompilacji wywołuje
3.2.0 (wrzesień 2018 r.)
Ta wersja wtyczki Androida wymaga:
- Gradle 4.6 lub nowszy. Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
- Narzędzia do kompilacji pakietu SDK w wersji 28.0.3 lub nowszej.
3.2.1 (październik 2018 r.)
Po tej aktualizacji nie musisz już określać wersji narzędzi do kompilacji pakietu SDK. Wtyczka Androida do obsługi Gradle domyślnie używa teraz wersji 28.0.3.
Nowe funkcje
-
Obsługa tworzenia pakietów Android App Bundle: pakiet aplikacji to nowy format przesyłania, który zawiera cały skompilowany kod i wszystkie zasoby aplikacji, a generowanie i podpisywanie plików APK jest odroczone do momentu przesłania do Sklepu Google Play. Nie musisz już tworzyć, podpisywać ani zarządzać wieloma plikami APK, a użytkownicy mogą pobierać mniejsze pliki zoptymalizowane pod kątem ich urządzeń. Więcej informacji znajdziesz w artykule Android App Bundle.
-
Obsługa większych szybkości kompilacji przyrostowych podczas korzystania z procesorów adnotacji: język DSL
AnnotationProcessorOptions
rozszerza terazCommandLineArgumentProvider
, co umożliwia Tobie lub autorowi procesora adnotacji dodawanie adnotacji do argumentów procesora za pomocą adnotacji typu właściwości kompilacji przyrostowej. Używanie tych adnotacji zwiększa poprawność i wydajność przyrostowych i buforowanych czystych kompilacji. Więcej informacji znajdziesz w artykule Przekazywanie argumentów do procesorów adnotacji. -
Narzędzie do migracji do AndroidaX: jeśli używasz wtyczki Androida do obsługi Gradle w wersji 3.2.0 z Androidem w wersji 3.2 lub nowszej, możesz przenieść lokalne zależności projektu i zależności Maven, aby używać nowych bibliotek AndroidaX. W tym celu na pasku menu wybierz Refactor > Migrate to AndroidX (Przebuduj > Przenieś do AndroidaX). Użycie tego narzędzia do migracji powoduje też ustawienie tych flag na
true
w plikugradle.properties
:-
android.useAndroidX
: jeśli ta opcja ma wartośćtrue
, wtyczka Androida używa odpowiedniej biblioteki AndroidX zamiast biblioteki pomocy. Jeśli ta flaga nie jest określona, wtyczka domyślnie ustawia ją nafalse
. -
android.enableJetifier
: jeśli ustawiono wartośćtrue
, wtyczka Androida automatycznie migruje istniejące biblioteki innych firm, aby używać AndroidaX, poprzez przepisanie ich plików binarnych. Jeśli ta flaga nie jest określona, wtyczka domyślnie ustawia ją nafalse
. Możesz ustawić tę flagę natrue
tylko wtedy, gdyandroid.useAndroidX
ma wartośćtrue
. W przeciwnym razie wystąpi błąd kompilacji.Więcej informacji znajdziesz w omówieniu AndroidaX.
-
-
Nowe narzędzie do zmniejszania kodu – R8: R8 to nowe narzędzie do zmniejszania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji podglądowej R8, dodaj do pliku
gradle.properties
projektu ten kod:android.enableR8 = true
android.enableR8 = true
Zmiany w działaniu
-
Desugaryzacja za pomocą D8 jest teraz domyślnie włączona.
-
AAPT2 jest teraz w repozytorium Maven Google. Aby używać AAPT2, upewnij się, że w pliku
build.gradle
masz zależnośćgoogle()
, jak pokazano poniżej:buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() }
-
Natywny multidex jest teraz domyślnie włączony. W poprzednich wersjach Androida Studio włączano natywny multidex podczas wdrażania wersji debugowania aplikacji na urządzeniu z Androidem API na poziomie 21 lub wyższym. Teraz, niezależnie od tego, czy wdrażasz aplikację na urządzeniu, czy tworzysz plik APK do publikacji, wtyczka Androida do Gradle umożliwia natywną obsługę wielu plików DEX we wszystkich modułach, w których ustawiono
minSdkVersion=21
lub nowszą wersję. -
Wymagane są teraz minimalne wersje wtyczek: protobuf (0.8.6), Kotlin (1.2.50) i Crashlytics (1.25.4).
-
Wtyczka modułu funkcji
com.android.feature
wymusza teraz używanie tylko liter, cyfr i znaków podkreślenia podczas określania nazwy modułu. Jeśli na przykład nazwa modułu funkcji zawiera myślniki, pojawi się błąd kompilacji. Działa to tak samo jak w przypadku wtyczki modułu z funkcją dynamiczną.
Poprawki błędów
- Zadanie JavaCompile można teraz buforować w projektach z powiązaniem danych. (Problem 69243050)
- Lepsze unikanie kompilacji w przypadku modułów biblioteki z powiązaniem danych. (Problem nr 77539932)
- Jeśli w starszych wersjach wyłączono konfigurację na żądanie z powodu nieprzewidywalnych błędów kompilacji, można ją teraz ponownie włączyć. (Problem 77910727)
3.1.0 (marzec 2018 r.)
Ta wersja wtyczki Androida wymaga:
-
Gradle w wersji 4.4 lub nowszej.
Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
-
Narzędzia do kompilacji w wersji 27.0.3 lub nowszej.
Pamiętaj, że nie musisz już określać wersji narzędzi do kompilacji za pomocą właściwości
android.buildToolsVersion
– wtyczka domyślnie używa minimalnej wymaganej wersji.
Nowy kompilator DEX, D8
Domyślnie Android Studio używa teraz nowego kompilatora DEX o nazwie D8. Kompilacja DEX to proces przekształcania kodu bajtowego .class
w kod bajtowy .dex
na potrzeby środowiska wykonawczego Androida (lub Dalvik w starszych wersjach Androida). W porównaniu z poprzednim kompilatorem DX kompilator D8 działa szybciej i generuje mniejsze pliki DEX, a przy tym zapewnia taką samą lub lepszą wydajność aplikacji w czasie działania.
D8 nie powinien zmieniać codziennego procesu tworzenia aplikacji. Jeśli jednak napotkasz problemy związane z nowym kompilatorem, zgłoś błąd. Możesz tymczasowo wyłączyć D8 i używać DX, dodając do pliku gradle.properties
projektu ten kod:
android.enableD8=false
W przypadku projektów, które korzystają z funkcji języka Java 8, przyrostowe usuwanie składni jest domyślnie włączone. Możesz ją wyłączyć, podając w pliku gradle.properties
projektu to polecenie:
android.enableIncrementalDesugaring=false.
Użytkownicy wersji podglądowej: jeśli używasz już wersji podglądowej D8, pamiętaj, że jest ona teraz kompilowana z bibliotekami zawartymi w narzędziach do kompilacji pakietu SDK, a nie w JDK. Jeśli więc uzyskujesz dostęp do interfejsów API, które istnieją w JDK, ale nie w bibliotekach narzędzi do kompilacji pakietu SDK, pojawi się błąd kompilacji.
Zmiany w działaniu
-
Podczas tworzenia wielu plików APK, z których każdy jest kierowany na inny interfejs ABI, domyślnie nie generuje już plików APK dla tych interfejsów:
mips
,mips64
iarmeabi
.Jeśli chcesz utworzyć pliki APK przeznaczone na te interfejsy ABI, musisz użyć NDK w wersji r16b lub starszej i określić interfejsy ABI w pliku
build.gradle
, jak pokazano poniżej:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Wtyczka Androida pamięć podręczna kompilacji usuwa teraz wpisy starsze niż 30 dni.
-
Przekazywanie wartości
"auto"
doresConfig
nie powoduje już automatycznego wybierania zasobów ciągów do spakowania w pliku APK. Jeśli nadal będziesz używać"auto"
, wtyczka spakuje wszystkie zasoby ciągów znaków udostępniane przez aplikację i jej zależności. Zamiast tego określ każdą wersję językową, którą chcesz spakować do pliku APK. -
Moduły lokalne nie mogą zależeć od testowego pliku APK aplikacji, więc dodanie zależności do testów instrumentalnych za pomocą konfiguracji
androidTestApi
zamiastandroidTestImplementation
spowoduje wyświetlenie przez Gradle tego ostrzeżenia:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Poprawki
- Rozwiązuje problem polegający na tym, że Android Studio nie rozpoznaje prawidłowo zależności w kompozytowych kompilacjach.
- Rozwiązuje problem, który powodował błąd synchronizacji projektu podczas wielokrotnego wczytywania wtyczki Androida w ramach jednej kompilacji, np. gdy wiele podprojektów zawierało wtyczkę Androida w ścieżce klasy skryptu kompilacji.
3.0.0 (październik 2017 r.)
Wtyczka Androida do obsługi Gradle w wersji 3.0.0 zawiera różne zmiany, które mają na celu rozwiązanie problemów z wydajnością dużych projektów.
Na przykład w przykładowym projekcie szkieletowym z około 130 modułami i dużą liczbą zależności zewnętrznych (ale bez kodu ani zasobów) możesz zauważyć poprawę wydajności podobną do tej:
Wersja wtyczki Androida + wersja Gradle | Wtyczka Androida 2.2.0 + Gradle 2.14.1 | Wtyczka Androida w wersji 2.3.0 lub nowszej i Gradle w wersji 3.3 lub nowszej | Wtyczka Androida w wersji 3.0.0 lub nowszej i Gradle w wersji 4.1 lub nowszej |
---|---|---|---|
Konfiguracja (np. uruchomienie ./gradlew --help ) |
~2 min | ~9 s | ~2,5 s |
1-wierszowa zmiana w Javie (zmiana implementacji) | ~2 min 15 s | ~29 s | ~6,4 s |
Niektóre z tych zmian powodują, że dotychczasowe kompilacje przestają działać. Dlatego przed użyciem nowej wtyczki warto rozważyć nakład pracy związany z migracją projektu.
Jeśli nie zauważysz opisanych powyżej ulepszeń wydajności, zgłoś błąd i dołącz ślad kompilacji za pomocą profilera Gradle.
Ta wersja wtyczki Androida wymaga:
- Gradle 4.1 lub nowszy. Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
-
Narzędzia do kompilacji w wersji 26.0.2 lub nowszej. Po tej aktualizacji nie musisz już określać wersji narzędzi do kompilacji – wtyczka domyślnie używa minimalnej wymaganej wersji.
Możesz teraz usunąć usługę
android.buildToolsVersion
.
3.0.1 (listopad 2017 r.)
Jest to niewielka aktualizacja, która zapewnia obsługę Androida Studio 3.0.1 i zawiera ogólne poprawki błędów oraz ulepszenia działania.
Optymalizacje
- Lepsza równoległość w przypadku projektów wielomodułowych dzięki szczegółowemu grafowi zadań.
- Podczas wprowadzania zmian w zależności Gradle wykonuje szybsze kompilacje, ponieważ nie kompiluje ponownie modułów, które nie mają dostępu do interfejsu API tej zależności.
Ogranicz, które zależności udostępniają swoje interfejsy API innym modułom, używając nowych konfiguracji zależności Gradle:
implementation
,api
,compileOnly
iruntimeOnly
. - Szybsze przyrostowe kompilowanie dzięki indeksowaniu DEX na poziomie klasy. Każda klasa jest teraz kompilowana w osobnych plikach DEX, a ponownie indeksowane są tylko klasy, które zostały zmodyfikowane. Możesz też oczekiwać większej szybkości kompilacji w przypadku aplikacji, w których wartość
minSdkVersion
jest ustawiona na 20 lub mniej i które korzystają z starszego multi-dexu. - Zwiększyliśmy szybkość kompilacji, optymalizując niektóre zadania pod kątem korzystania z wyników zapisanych w pamięci podręcznej. Aby skorzystać z tej optymalizacji, musisz najpierw włączyć pamięć podręczną kompilacji Gradle.
- Ulepszone przyrostowe przetwarzanie zasobów za pomocą AAPT2, które jest teraz domyślnie włączone. Jeśli podczas korzystania z narzędzia AAPT2 wystąpią problemy, zgłoś błąd. Możesz też wyłączyć AAPT2, ustawiając
android.enableAapt2=false
w plikugradle.properties
i ponownie uruchamiając demona Gradle, wpisując./gradlew --stop
w wierszu poleceń.
Nowe funkcje
- Zarządzanie zależnościami z uwzględnieniem wariantów. Podczas tworzenia określonej wersji modułu wtyczka automatycznie dopasowuje wersje zależności modułu biblioteki lokalnej do wersji tworzonego modułu.
- Zawiera nową wtyczkę modułu funkcji, która obsługuje aplikacje błyskawiczne na Androida i pakiet SDK do aplikacji błyskawicznych na Androida (możesz go pobrać za pomocą menedżera SDK). Więcej informacji o tworzeniu modułów funkcji za pomocą nowej wtyczki znajdziesz w artykule Struktura aplikacji natychmiastowej z wieloma funkcjami.
- Wbudowana obsługa niektórych funkcji języka Java 8 i bibliotek Java 8. Jack jest już przestarzały i nie jest już wymagany. Aby korzystać z ulepszonej obsługi języka Java 8 wbudowanej w domyślny łańcuch narzędzi, musisz najpierw wyłączyć Jacka. Więcej informacji znajdziesz w artykule Korzystanie z funkcji języka Java 8.
-
Dodaliśmy obsługę przeprowadzania testów za pomocą Android Test Orchestrator, co umożliwia uruchamianie każdego testu aplikacji w ramach własnego wywołania Instrumentation. Każdy test jest uruchamiany we własnej instancji Instrumentation, więc żaden wspólny stan między testami nie gromadzi się na procesorze ani w pamięci urządzenia. Nawet jeśli jeden test ulegnie awarii, spowoduje to wyłączenie tylko jego własnej instancji narzędzia Instrumentation, więc pozostałe testy nadal będą działać.
- Dodano
testOptions.execution
, aby określić, czy używać orkiestracji testów na urządzeniu. Jeśli chcesz użyć narzędzia Android Test Orchestrator, musisz określićANDROID_TEST_ORCHESTRATOR
, jak pokazano poniżej. Domyślnie ta właściwość ma wartośćHOST
, która wyłącza orkiestrację na urządzeniu i jest standardową metodą przeprowadzania testów.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Dodano
-
Nowa konfiguracja zależności
androidTestUtil
umożliwia zainstalowanie innego pakietu APK narzędzia testowego przed uruchomieniem testów instrumentacji, np. Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
Dodano
testOptions.unitTests.includeAndroidResources
, aby obsługiwać testy jednostkowe, które wymagają zasobów Androida, np. Roboelectric. Gdy ustawisz tę właściwość natrue
, wtyczka przed uruchomieniem testów jednostkowych połączy zasoby, komponenty i pliki manifestu. Testy mogą następnie sprawdzaćcom/android/tools/test_config.properties
w ścieżce klas pod kątem tych kluczy:-
android_merged_assets
: ścieżka bezwzględna do katalogu scalonych komponentów.Uwaga: w przypadku modułów biblioteki scalone komponenty nie zawierają komponentów zależności (patrz problem #65550419).
-
android_merged_manifest
: ścieżka bezwzględna do pliku manifestu łączonego. -
android_merged_resources
: bezwzględna ścieżka do katalogu scalonych zasobów, który zawiera wszystkie zasoby z modułu i wszystkich jego zależności. -
android_custom_package
: nazwa pakietu końcowej klasy R. Jeśli dynamicznie modyfikujesz identyfikator aplikacji, ta nazwa pakietu może nie pasować do atrybutupackage
w manifeście aplikacji.
-
- Obsługa czcionek jako zasobów (nowa funkcja wprowadzona w Androidzie 8.0 (poziom 26 interfejsu API)).
- Obsługa plików APK w określonych językach w przypadku pakietu SDK aplikacji błyskawicznych na Androida w wersji 1.1 lub nowszej.
-
Możesz teraz zmienić katalog wyjściowy zewnętrznego projektu kompilacji natywnej, jak pokazano poniżej:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Podczas tworzenia projektów natywnych w Android Studio możesz teraz używać CMake w wersji 3.7 lub nowszej.
-
Nowa konfiguracja zależności
lintChecks
umożliwia tworzenie pliku JAR, który definiuje niestandardowe reguły lint, i pakowanie go w projektach AAR i APK.Niestandardowe reguły lint muszą należeć do osobnego projektu, który generuje pojedynczy plik JAR i zawiera tylko zależności
compileOnly
. Inne moduły aplikacji i biblioteki mogą wtedy zależeć od projektu lint za pomocą konfiguracjilintChecks
:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Zmiany w działaniu
- Wtyczka Androida w wersji 3.0.0 usuwa niektóre interfejsy API, więc jeśli z nich korzystasz, kompilacja ulegnie awarii. Nie możesz już na przykład używać interfejsu Variants API do uzyskiwania dostępu do obiektów
outputFile()
ani używaćprocessManifest.manifestOutputFile()
do pobierania pliku manifestu dla każdej wersji. Więcej informacji znajdziesz w sekcji Zmiany w interfejsie API. - Nie musisz już określać wersji narzędzi do kompilacji (możesz więc usunąć właściwość
android.buildToolsVersion
). Domyślnie wtyczka automatycznie używa minimalnej wymaganej wersji narzędzi do kompilacji dla używanej wersji wtyczki Androida. - Teraz możesz włączać i wyłączać kompresję PNG w bloku
buildTypes
, jak pokazano poniżej. Kompresja PNG jest domyślnie włączona we wszystkich wersjach, z wyjątkiem wersji debugowania, ponieważ wydłuża czas kompilacji projektów zawierających wiele plików PNG. Aby skrócić czas kompilacji innych typów kompilacji, wyłącz kompresję PNG lub przekonwertuj obrazy do formatu WebP.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Wtyczka Androida automatycznie tworzy teraz wykonywalne elementy docelowe, które konfigurujesz w zewnętrznych projektach CMake.
- Musisz teraz dodać procesory adnotacji do ścieżki klasy procesora za pomocą konfiguracji zależności
annotationProcessor
. - Używanie wycofanej funkcji
ndkCompile
jest teraz bardziej ograniczone. Zamiast tego przenieś się na CMake lub ndk-build, aby kompilować kod natywny, który chcesz spakować do pliku APK. Więcej informacji znajdziesz w artykule Migracja z ndk-compile.
3.0.0 (październik 2017 r.)
Wtyczka Androida do obsługi Gradle w wersji 3.0.0 zawiera różne zmiany, które mają na celu rozwiązanie problemów z wydajnością dużych projektów.
Na przykład w przykładowym projekcie szkieletowym z około 130 modułami i dużą liczbą zależności zewnętrznych (ale bez kodu ani zasobów) możesz zauważyć poprawę wydajności podobną do tej:
Wersja wtyczki Androida + wersja Gradle | Wtyczka Androida 2.2.0 + Gradle 2.14.1 | Wtyczka Androida w wersji 2.3.0 lub nowszej i Gradle w wersji 3.3 lub nowszej | Wtyczka Androida w wersji 3.0.0 lub nowszej i Gradle w wersji 4.1 lub nowszej |
---|---|---|---|
Konfiguracja (np. uruchomienie ./gradlew --help ) |
~2 min | ~9 s | ~2,5 s |
1-wierszowa zmiana w Javie (zmiana implementacji) | ~2 min 15 s | ~29 s | ~6,4 s |
Niektóre z tych zmian powodują, że dotychczasowe kompilacje przestają działać. Dlatego przed użyciem nowej wtyczki warto rozważyć nakład pracy związany z migracją projektu.
Jeśli nie zauważysz opisanych powyżej ulepszeń wydajności, zgłoś błąd i dołącz ślad kompilacji za pomocą profilera Gradle.
Ta wersja wtyczki Androida wymaga:
- Gradle 4.1 lub nowszy. Więcej informacji znajdziesz w sekcji dotyczącej aktualizowania Gradle.
-
Narzędzia do kompilacji w wersji 26.0.2 lub nowszej. Po tej aktualizacji nie musisz już określać wersji narzędzi do kompilacji – wtyczka domyślnie używa minimalnej wymaganej wersji.
Możesz teraz usunąć usługę
android.buildToolsVersion
.
3.0.1 (listopad 2017 r.)
Jest to niewielka aktualizacja, która zapewnia obsługę Androida Studio 3.0.1 i zawiera ogólne poprawki błędów oraz ulepszenia działania.
Optymalizacje
- Lepsza równoległość w przypadku projektów wielomodułowych dzięki szczegółowemu grafowi zadań.
- Podczas wprowadzania zmian w zależności Gradle wykonuje szybsze kompilacje, ponieważ nie kompiluje ponownie modułów, które nie mają dostępu do interfejsu API tej zależności.
Ogranicz, które zależności udostępniają swoje interfejsy API innym modułom, używając nowych konfiguracji zależności Gradle:
implementation
,api
,compileOnly
iruntimeOnly
. - Szybsze przyrostowe kompilowanie dzięki indeksowaniu DEX na poziomie klasy. Każda klasa jest teraz kompilowana w osobnych plikach DEX, a ponownie indeksowane są tylko klasy, które zostały zmodyfikowane. Możesz też oczekiwać większej szybkości kompilacji w przypadku aplikacji, w których wartość
minSdkVersion
jest ustawiona na 20 lub mniej i które korzystają z starszego multi-dexu. - Zwiększyliśmy szybkość kompilacji, optymalizując niektóre zadania pod kątem korzystania z wyników zapisanych w pamięci podręcznej. Aby skorzystać z tej optymalizacji, musisz najpierw włączyć pamięć podręczną kompilacji Gradle.
- Ulepszone przyrostowe przetwarzanie zasobów za pomocą AAPT2, które jest teraz domyślnie włączone. Jeśli podczas korzystania z narzędzia AAPT2 wystąpią problemy, zgłoś błąd. Możesz też wyłączyć AAPT2, ustawiając
android.enableAapt2=false
w plikugradle.properties
i ponownie uruchamiając demona Gradle, wpisując./gradlew --stop
w wierszu poleceń.
Nowe funkcje
- Zarządzanie zależnościami z uwzględnieniem wariantów. Podczas tworzenia określonej wersji modułu wtyczka automatycznie dopasowuje wersje zależności modułu biblioteki lokalnej do wersji tworzonego modułu.
- Zawiera nową wtyczkę modułu funkcji, która obsługuje aplikacje błyskawiczne na Androida i pakiet SDK do aplikacji błyskawicznych na Androida (możesz go pobrać za pomocą menedżera SDK). Więcej informacji o tworzeniu modułów funkcji za pomocą nowej wtyczki znajdziesz w artykule Struktura aplikacji natychmiastowej z wieloma funkcjami.
- Wbudowana obsługa niektórych funkcji języka Java 8 i bibliotek Java 8. Jack jest już przestarzały i nie jest już wymagany. Aby korzystać z ulepszonej obsługi języka Java 8 wbudowanej w domyślny łańcuch narzędzi, musisz najpierw wyłączyć Jacka. Więcej informacji znajdziesz w artykule Korzystanie z funkcji języka Java 8.
-
Dodaliśmy obsługę przeprowadzania testów za pomocą Android Test Orchestrator, co umożliwia uruchamianie każdego testu aplikacji w ramach własnego wywołania Instrumentation. Każdy test jest uruchamiany we własnej instancji Instrumentation, więc żaden wspólny stan między testami nie gromadzi się na procesorze ani w pamięci urządzenia. Nawet jeśli jeden test ulegnie awarii, spowoduje to wyłączenie tylko jego własnej instancji narzędzia Instrumentation, więc pozostałe testy nadal będą działać.
- Dodano
testOptions.execution
, aby określić, czy używać orkiestracji testów na urządzeniu. Jeśli chcesz użyć narzędzia Android Test Orchestrator, musisz określićANDROID_TEST_ORCHESTRATOR
, jak pokazano poniżej. Domyślnie ta właściwość ma wartośćHOST
, która wyłącza orkiestrację na urządzeniu i jest standardową metodą przeprowadzania testów.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Dodano
-
Nowa konfiguracja zależności
androidTestUtil
umożliwia zainstalowanie innego pakietu APK narzędzia testowego przed uruchomieniem testów instrumentacji, np. Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
Dodano
testOptions.unitTests.includeAndroidResources
, aby obsługiwać testy jednostkowe, które wymagają zasobów Androida, np. Roboelectric. Gdy ustawisz tę właściwość natrue
, wtyczka przed uruchomieniem testów jednostkowych połączy zasoby, komponenty i pliki manifestu. Testy mogą następnie sprawdzaćcom/android/tools/test_config.properties
w ścieżce klas pod kątem tych kluczy:-
android_merged_assets
: ścieżka bezwzględna do katalogu scalonych komponentów.Uwaga: w przypadku modułów biblioteki scalone komponenty nie zawierają komponentów zależności (patrz problem #65550419).
-
android_merged_manifest
: ścieżka bezwzględna do pliku manifestu łączonego. -
android_merged_resources
: bezwzględna ścieżka do katalogu scalonych zasobów, który zawiera wszystkie zasoby z modułu i wszystkich jego zależności. -
android_custom_package
: nazwa pakietu końcowej klasy R. Jeśli dynamicznie modyfikujesz identyfikator aplikacji, ta nazwa pakietu może nie pasować do atrybutupackage
w manifeście aplikacji.
-
- Obsługa czcionek jako zasobów (nowa funkcja wprowadzona w Androidzie 8.0 (poziom 26 interfejsu API)).
- Obsługa plików APK w określonych językach w przypadku pakietu SDK aplikacji błyskawicznych na Androida w wersji 1.1 lub nowszej.
-
Możesz teraz zmienić katalog wyjściowy zewnętrznego projektu kompilacji natywnej, jak pokazano poniżej:
Groovy
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory "./outputs/cmake" } } }
Kotlin
android { ... externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { ... // Specifies a relative path for outputs from external native // builds. You can specify any path that's not a subdirectory // of your project's temporary build/ directory. buildStagingDirectory = "./outputs/cmake" } } }
- Podczas tworzenia projektów natywnych w Android Studio możesz teraz używać CMake w wersji 3.7 lub nowszej.
-
Nowa konfiguracja zależności
lintChecks
umożliwia tworzenie pliku JAR, który definiuje niestandardowe reguły lint, i pakowanie go w projektach AAR i APK.Niestandardowe reguły lint muszą należeć do osobnego projektu, który generuje pojedynczy plik JAR i zawiera tylko zależności
compileOnly
. Inne moduły aplikacji i biblioteki mogą wtedy zależeć od projektu lint za pomocą konfiguracjilintChecks
:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Zmiany w działaniu
- Wtyczka Androida w wersji 3.0.0 usuwa niektóre interfejsy API, więc jeśli z nich korzystasz, kompilacja ulegnie awarii. Nie możesz już na przykład używać interfejsu Variants API do uzyskiwania dostępu do obiektów
outputFile()
ani używaćprocessManifest.manifestOutputFile()
do pobierania pliku manifestu dla każdej wersji. Więcej informacji znajdziesz w sekcji Zmiany w interfejsie API. - Nie musisz już określać wersji narzędzi do kompilacji (możesz więc usunąć właściwość
android.buildToolsVersion
). Domyślnie wtyczka automatycznie używa minimalnej wymaganej wersji narzędzi do kompilacji dla używanej wersji wtyczki Androida. - Teraz możesz włączać i wyłączać kompresję PNG w bloku
buildTypes
, jak pokazano poniżej. Kompresja PNG jest domyślnie włączona we wszystkich wersjach, z wyjątkiem wersji debugowania, ponieważ wydłuża czas kompilacji projektów zawierających wiele plików PNG. Aby skrócić czas kompilacji innych typów kompilacji, wyłącz kompresję PNG lub przekonwertuj obrazy do formatu WebP.Groovy
android { buildTypes { release { // Disables PNG crunching for the release build type. crunchPngs false } } }
Kotlin
android { buildTypes { release { // Disables PNG crunching for the release build type. isCrunchPngs = false } } }
- Wtyczka Androida automatycznie tworzy teraz wykonywalne elementy docelowe, które konfigurujesz w zewnętrznych projektach CMake.
- Musisz teraz dodać procesory adnotacji do ścieżki klasy procesora za pomocą konfiguracji zależności
annotationProcessor
. - Używanie wycofanej funkcji
ndkCompile
jest teraz bardziej ograniczone. Zamiast tego przenieś się na CMake lub ndk-build, aby kompilować kod natywny, który chcesz spakować do pliku APK. Więcej informacji znajdziesz w artykule Migracja z ndk-compile.
2.3.0 (luty 2017 r.)
2.3.3 (czerwiec 2017 r.)
Jest to niewielka aktualizacja, która dodaje zgodność z Androidem Studio 2.3.3.
2.3.2 (maj 2017)
Jest to niewielka aktualizacja, która dodaje zgodność z Androidem Studio w wersji 2.3.2.
2.3.1 (kwiecień 2017 r.)
Jest to niewielka aktualizacja wtyczki Androida 2.3.0, która rozwiązuje problem polegający na tym, że niektóre fizyczne urządzenia z Androidem nie działały prawidłowo z natychmiastowym uruchamianiem (patrz problem nr 235879).
- Zależności:
-
- Gradle w wersji 3.3 lub nowszej.
- Narzędzia do kompilacji w wersji 25.0.0 lub nowszej.
- Nowość:
-
- Korzysta z Gradle 3.3, który ma ulepszenia wydajności i nowe funkcje. Więcej informacji znajdziesz w informacjach o wersji Gradle.
- Pamięć podręczna kompilacji: przechowuje niektóre dane wyjściowe generowane przez wtyczkę Androida podczas kompilowania projektu (np. rozpakowane pliki AAR i wstępnie zindeksowane zależności zdalne). Czyste kompilacje są znacznie szybsze podczas korzystania z pamięci podręcznej, ponieważ system kompilacji może po prostu ponownie wykorzystać te pliki podczas kolejnych kompilacji zamiast tworzyć je od nowa. Projekty korzystające z wtyczki Androida w wersji 2.3.0 lub nowszej domyślnie używają pamięci podręcznej kompilacji. Więcej informacji znajdziesz w artykule Zwiększanie szybkości kompilacji za pomocą pamięci podręcznej kompilacji.
- Zawiera zadanie
cleanBuildCache
, które czyści pamięć podręczną kompilacji. - Jeśli używasz eksperymentalnej wersji pamięci podręcznej kompilacji (dostępnej w starszych wersjach wtyczki), zaktualizuj wtyczkę do najnowszej wersji.
- Zawiera zadanie
- Zmiany:
-
- Obsługuje zmiany w funkcji Instant Run wprowadzone w Androidzie Studio 2.3.
- Czas konfiguracji bardzo dużych projektów powinien być znacznie krótszy.
- Rozwiązano problemy z automatycznym pobieraniem w przypadku biblioteki układu ograniczeń.
- Wtyczka korzysta teraz z ProGuard w wersji 5.3.2.
- Zawiera wiele poprawek zgłoszonych błędów. Jeśli napotkasz problemy, zgłaszaj błędy.
2.2.0 (wrzesień 2016 r.)
- Zależności:
-
- Gradle w wersji 2.14.1 lub nowszej.
- Narzędzia do kompilacji w wersji 23.0.2 lub nowszej.
- Nowość:
-
- Korzysta z Gradle w wersji 2.14.1, która zawiera ulepszenia wydajności i nowe funkcje oraz usuwa lukę w zabezpieczeniach umożliwiającą lokalne podniesienie uprawnień podczas korzystania z demona Gradle. Więcej informacji znajdziesz w informacjach o wersji Gradle.
- Korzystając z języka
externalNativeBuild {}
DSL, Gradle umożliwia teraz łączenie się z natywnymi źródłami i kompilowanie bibliotek natywnych za pomocą CMake lub ndk-build. Po utworzeniu bibliotek natywnych Gradle pakuje je do pliku APK. Więcej informacji o używaniu CMake i ndk-build z Gradle znajdziesz w artykule Dodawanie do projektu kodu w C i C++. - Gdy uruchamiasz kompilację z poziomu wiersza poleceń, Gradle próbuje teraz automatycznie pobrać brakujące komponenty pakietu SDK lub aktualizacje, od których zależy Twój projekt. Więcej informacji znajdziesz w artykule Automatyczne pobieranie brakujących pakietów za pomocą Gradle.
- Nowa eksperymentalna funkcja buforowania umożliwia Gradle przyspieszenie kompilacji przez wstępne indeksowanie, przechowywanie i ponowne wykorzystywanie wstępnie indeksowanych wersji bibliotek. Więcej informacji o korzystaniu z tej eksperymentalnej funkcji znajdziesz w przewodniku Build Cache.
- Zwiększa wydajność kompilacji dzięki zastosowaniu nowego domyślnego potoku pakowania, który w ramach jednego zadania obsługuje kompresję, podpisywanie i wyrównywanie. Możesz wrócić do starszych narzędzi do pakowania, dodając
android.useOldPackaging=true
do plikugradle.properties
. Podczas korzystania z nowego narzędzia do pakowaniazipalignDebug
nie jest dostępna. Możesz jednak utworzyć własną, wywołując metodęcreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - Podpisywanie plików APK odbywa się teraz przy użyciu schematu podpisu APK w wersji 2, a także tradycyjnego podpisywania plików JAR. Wszystkie platformy Androida akceptują powstałe pliki APK. Wszelkie modyfikacje tych plików APK po podpisaniu unieważniają ich podpisy w wersji 2 i uniemożliwiają instalację na urządzeniu. Aby wyłączyć tę funkcję, dodaj ten kod do pliku
build.gradle
na poziomie modułu:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- W przypadku kompilacji multidex możesz teraz używać reguł ProGuard, aby określać, które klasy Gradle ma kompilować do pliku DEX main aplikacji. Ponieważ system Android podczas uruchamiania aplikacji najpierw wczytuje główny plik DEX, możesz nadać priorytet niektórym klasom podczas uruchamiania, kompilując je w głównym pliku DEX. Po utworzeniu pliku konfiguracji ProGuard specjalnie dla głównego pliku DEX przekaż ścieżkę pliku konfiguracji do Gradle za pomocą
buildTypes.multiDexKeepProguard
. Korzystanie z tego DSL-a różni się od korzystania zbuildTypes.proguardFiles
, które udostępnia ogólne reguły ProGuard dla aplikacji i nie określa klas dla głównego pliku DEX. - Dodaje obsługę flagi
android:extractNativeLibs
, która może zmniejszyć rozmiar aplikacji podczas instalowania jej na urządzeniu. Gdy ustawisz tę flagę nafalse
w elemencie<application>
w manifeście aplikacji, Gradle spakuje nieskompresowane i wyrównane wersje bibliotek natywnych w pliku APK. Zapobiega to kopiowaniu bibliotek natywnych z pliku APK do systemu plików urządzenia podczas instalacji i dodatkowo zmniejsza rozmiar aktualizacji różnicowych aplikacji.PackageManager
- Możesz teraz określić
versionNameSuffix
iapplicationIdSuffix
dla wersji produktu. (Problem 59614)
- Zmiany:
-
-
getDefaultProguardFile
zwraca teraz domyślne pliki ProGuard dostarczane przez wtyczkę Androida do Gradle i nie używa już plików z pakietu SDK Androida. - Ulepszona wydajność i funkcje kompilatora Jack:
- Jack obsługuje teraz pokrycie testami Jacoco, gdy ustawisz
testCoverageEnabled
natrue
. - Ulepszona obsługa procesorów adnotacji. Procesory adnotacji na ścieżce klas, takie jak zależności
compile
, są automatycznie stosowane w kompilacji. Możesz też określić procesor adnotacji w kompilacji i przekazać argumenty za pomocą języka DSLjavaCompileOptions.annotationProcessorOptions {}
w plikubuild.gradle
na poziomie modułu:Groovy
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className 'com.example.MyProcessor' // Arguments are optional. arguments = [ foo : 'bar' ] } } } }
Kotlin
android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { className = "com.example.MyProcessor" // Arguments are optional. arguments(mapOf(foo to "bar")) } } } }
Jeśli chcesz zastosować procesor adnotacji w czasie kompilacji, ale nie chcesz go uwzględniać w pliku APK, użyj zakresu zależności
annotationProcessor
:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
- Domyślnie, jeśli rozmiar sterty demona Gradle wynosi co najmniej 1,5 GB, Jack działa w tym samym procesie co Gradle. Aby dostosować rozmiar sterty demona, dodaj do pliku
gradle.properties
te informacje:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
Aby wyświetlić listę parametrów, które możesz ustawić, uruchom to polecenie z wiersza poleceń:
java -jar /build-tools/jack.jar --help-properties
- Jack obsługuje teraz pokrycie testami Jacoco, gdy ustawisz
-
2.1.0 (kwiecień 2016 r.)
2.1.3 (sierpień 2016 r.)
Ta aktualizacja wymaga Gradle w wersji 2.14.1 lub nowszej. Gradle 2.14.1 zawiera ulepszenia wydajności, nowe funkcje i ważną poprawkę zabezpieczeń. Więcej informacji znajdziesz w informacjach o wersji Gradle.
- Zależności:
-
- Gradle w wersji 2.10 lub nowszej.
- Narzędzia do kompilacji w wersji 23.0.2 lub nowszej.
- Nowość:
-
- Dodano obsługę wersji N Developer Preview, JDK 8 i funkcji języka Java 8 przy użyciu łańcucha narzędzi Jack. Więcej informacji znajdziesz w przewodniku po wersji N.
Uwaga: natychmiastowe uruchamianie nie działa obecnie z narzędziem Jack i zostanie wyłączone podczas korzystania z nowego łańcucha narzędzi. Musisz używać kompilatora Jack tylko wtedy, gdy tworzysz aplikację na Androida N i chcesz korzystać z obsługiwanych funkcji języka Java 8.
- Dodaliśmy domyślną obsługę kompilacji przyrostowej w języku Java, aby skrócić czas kompilacji podczas programowania. W tym celu ponownie kompiluje tylko te części kodu źródłowego, które uległy zmianie lub wymagają ponownej kompilacji. Aby wyłączyć tę funkcję, dodaj ten kod do pliku
build.gradle
na poziomie modułu:Groovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
Dodaliśmy obsługę przetwarzania dex w procesie, które wykonuje dexing w procesie kompilacji, a nie w oddzielnych, zewnętrznych procesach maszyny wirtualnej. Dzięki temu nie tylko przyspiesza to przyrostowe kompilacje, ale także pełne kompilacje. Ta funkcja jest domyślnie włączona w przypadku projektów, w których maksymalny rozmiar sterty demona Gradle wynosi co najmniej 2048 MB. Aby to zrobić, w pliku
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
projektu wstaw ten ciąg:Jeśli w pliku
```none org.gradle.jvmargs = -Xmx3072m ```build.gradle
na poziomie modułu zdefiniowano wartość parametrujavaMaxHeapSize
, musisz ustawić parametrorg.gradle.jvmargs
na wartośćjavaMaxHeapSize
+ 1024 MB. Jeśli na przykład ustawisz wartośćjavaMaxHeapSize
na „2048m”, musisz dodać ten ciąg do plikugradle.properties
projektu:Aby wyłączyć dexing w procesie, dodaj ten kod do pliku
build.gradle
na poziomie modułu:Groovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- Dodano obsługę wersji N Developer Preview, JDK 8 i funkcji języka Java 8 przy użyciu łańcucha narzędzi Jack. Więcej informacji znajdziesz w przewodniku po wersji N.
2.0.0 (kwiecień 2016 r.)
- Zależności:
-
- Gradle w wersji 2.10 lub nowszej.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Nowość:
-
- Umożliwia natychmiastowe uruchamianie przez obsługę wstrzykiwania kodu bajtowego oraz przesyłanie aktualizacji kodu i zasobów do uruchomionej aplikacji w emulatorze lub na urządzeniu fizycznym.
- Dodano obsługę przyrostowych kompilacji, nawet gdy aplikacja nie jest uruchomiona. Pełne czasy kompilacji są skracane dzięki przesyłaniu przyrostowych zmian przez Android Debug Bridge na podłączone urządzenie.
- Dodano
maxProcessCount
, aby kontrolować, ile procesów dex instancji roboczych może być uruchamianych jednocześnie. Ten kod w pliku na poziomie modułubuild.gradle
ustawia maksymalną liczbę równoczesnych procesów na 4:Groovy
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
Kotlin
android { ... dexOptions { maxProcessCount = 4 // this is the default value } }
</li> <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing of dependencies, which are not supported with Proguard. This improves the build speed of your debug build variant. Because the experimental shrinker does not support optimization and obfuscation, you should enable Proguard for your release builds. To enable the experimental shrinker for your debug builds, add the following to your module-level <code>build.gradle</code> file:
Groovy
android { ... buildTypes { debug { minifyEnabled true useProguard false } release { minifyEnabled true useProguard true // this is a default setting } } }
Kotlin
android { ... buildTypes { getByName("debug") { minifyEnabled = true useProguard = false } getByName("release") { minifyEnabled = true useProguard = true // this is a default setting } } }
</li> <li>Added logging support and improved performance for the resource shrinker. The resource shrinker now logs all of its operations into a <code>resources.txt</code> file located in the same folder as the Proguard log files. </li> </ul>
- Zmienione działanie:
-
- Gdy wartość
minSdkVersion
wynosi 18 lub więcej, do podpisywania plików APK używany jest algorytm SHA256.
<li>DSA and ECDSA keys can now sign APK packages. <p class="note"> <strong>Note:</strong> The <a href= "/training/articles/keystore.html">Android keystore</a> provider no longer supports <a href= "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore"> DSA keys on Android 6.0</a> (API level 23) and higher. </p> </li> </ul>
- Gdy wartość
- Rozwiązane problemy:
-
- Rozwiązaliśmy problem, który powodował duplikowanie zależności AAR w konfiguracjach kompilacji testowej i głównej.
Wtyczka Androida do obsługi 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ą 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: - 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ówTransform
, a następnie zarejestruj ją za pomocąandroid.registerTransform(theTransform)
lubandroid.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 odbywa się teraz z użyciem 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 klasyApplicationVariant
. Nie możesz już uzyskać dostępu do zadaniaDex
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
. - Dodano 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ścigeneratedDensities
w sekcjachdefaultConfig
lubproductFlavor
plikubuild.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.app
ilib
. 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.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Zintegrowaliśmy wtyczkę Data Binding z wtyczką Androida do obsługi Gradle. Aby ją włączyć, dodaj ten kod do każdego pliku
Wtyczka Androida do obsługi Gradle, wersja 1.3.1 (sierpień 2015 r.)
Zależności:- Gradle w wersji 2.2.1 lub nowszej.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Naprawiliśmy zadanie ZipAlign, aby prawidłowo korzystało z danych wyjściowych poprzedniego zadania w przypadku używania dostosowanej nazwy pliku.
- Poprawiono pakowanie Renderscript za pomocą NDK.
- Utrzymano obsługę zadania kompilacji
createDebugCoverageReport
. - Poprawiliśmy obsługę dostosowanego użycia właściwości
archiveBaseName
w pliku kompilacjibuild.gradle
. - Naprawiliśmy ostrzeżenie
Invalid ResourceType
lint spowodowane wyszukiwaniem adnotacji metody parametru podczas uruchamiania lint poza Androidem Studio.
Wtyczka Androida do obsługi Gradle, wersja 1.3.0 (lipiec 2015 r.)
Zależności:- Gradle w wersji 2.2.1 lub nowszej.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
-
Dodano obsługę właściwości
com.android.build.threadPoolSize
, która umożliwia kontrolowanie rozmiaru puli wątków zadaniaAndroid
z poziomu plikugradle.properties
lub wiersza poleceń. W poniższym przykładzie ta właściwość ma wartość 4.-Pcom.android.build.threadPoolSize=4
- Ustaw domyślne działanie kompilacji, aby wykluczyć z plików APK pliki
LICENSE
iLICENSE.txt
. Aby uwzględnić te pliki w pliku APK, usuń je z właściwościpackagingOptions.excludes
w plikubuild.gradle
. Na przykład:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- Dodaliśmy zadanie
sourceSets
, które umożliwia sprawdzenie wszystkich dostępnych zbiorów źródeł. - Ulepszona obsługa testów jednostkowych, która rozpoznaje foldery źródłowe
wariantów kompilacji i wielu wersji. Na przykład, aby przetestować aplikację z wieloma wersjami
flavor1
iflavorA
z typem kompilacjiDebug
, zestawy źródeł testowych to:- test
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
Testy na Androida już rozpoznawały foldery źródłowe z wieloma wersjami.
- Ulepszona obsługa testów jednostkowych:
- Uruchom
javac
w przypadku źródeł głównych i testowych, nawet jeśli w pliku kompilacji właściwośćuseJack
ma wartośćtrue
. - Prawidłowe rozpoznawanie zależności dla każdego typu kompilacji.
- Uruchom
- Dodano obsługę określania argumentów narzędzia do testowania instrumentacji z wiersza poleceń.
Na przykład:
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
Dodaliśmy obsługę dowolnych dodatkowych parametrów narzędzia Android Asset Packaging Tool (AAPT) w pliku
build.gradle
. Na przykład:android { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- Dodaliśmy obsługę
modułu testowego APK jako osobnego modułu testowego, używając właściwości
targetProjectPath
itargetVariant
do ustawienia ścieżki APK i wersji docelowej.Uwaga: moduł APK do testowania nie obsługuje wersji produktu i może być przeznaczony tylko dla jednego wariantu. Jacoco nie jest jeszcze obsługiwany.
- Dodano weryfikację nazwy zasobu przed scaleniem zasobów.
- Podczas tworzenia pakietu AAR (Android ARchive) dla modułów biblioteki nie podawaj automatycznego symbolu zastępczego
@{applicationId}
w ustawieniach narzędzia do scalania plików manifestu. Zamiast tego użyj innego symbolu zastępczego, np.@{libApplicationId}
, i podaj jego wartość, jeśli chcesz uwzględnić identyfikatory aplikacji w bibliotece archiwum.
Wtyczka Androida do obsługi Gradle, wersja 1.2.0 (kwiecień 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:
-
- Ulepszona obsługa uruchamiania testów jednostkowych za pomocą Gradle.
- Dodaliśmy obsługę uwzględniania zasobów w stylu Java w ścieżce klasy podczas uruchamiania testów jednostkowych bezpośrednio z Gradle.
- Dodano obsługę zależności testów jednostkowych w przypadku artefaktów Android Archive (AAR).
- Dodaliśmy obsługę właściwości
unitTestVariants
, aby można było manipulować wariantami testów jednostkowych za pomocą plikubuild.gradle
. - Dodaliśmy blok kodu
unitTest.all
w sekcjitestOptions
, aby skonfigurować niestandardowe zadania na potrzeby testów jednostkowych. Poniższy przykładowy kod pokazuje, jak dodać ustawienia konfiguracji testu jednostkowego za pomocą tej nowej opcji:android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
- Poprawiliśmy obsługę wyliczeń i publicznych pól instancji w pakiecie pliku
mockable-android.jar
. - Naprawiono zależności zadań projektu biblioteki, aby klasy testowe były ponownie kompilowane po zmianach.
- Dodano właściwość
testProguardFile
, aby podczas minimalizowania testowego pliku APK stosować pliki ProGuard. - Dodaliśmy właściwość
timeOut
do bloku koduadbOptions
, aby ustawić maksymalny czas nagrywania ekranu za pomocą Android Debug Bridge. - Dodaliśmy obsługę zasobów o rozdzielczości 280 dpi.
- Zwiększona wydajność podczas oceny projektu.
- Ulepszona obsługa uruchamiania testów jednostkowych za pomocą Gradle.
Wtyczka Androida do obsługi Gradle, wersja 1.1.3 (marzec 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:
-
- Rozwiązaliśmy problem z duplikatami zależności w aplikacji testowej, który powodował błąd ProGuard.
- Poprawiliśmy implementację interfejsu Comparator, która nie była zgodna z umową interfejsu Comparator w JDK i generowała błąd JDK 7.
Wtyczka Androida do obsługi Gradle, wersja 1.1.2 (luty 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:
-
- Znormalizowana ścieżka podczas tworzenia pliku JAR, który można poddać testom jednostkowym.
- Naprawiliśmy ustawienie
archivesBaseName
w plikubuild.gradle
. - Rozwiązanie problemu z niezdefiniowanym symbolem zastępczym w narzędziu do łączenia plików manifestu podczas tworzenia testowej aplikacji biblioteki.
Wtyczka Androida do obsługi Gradle, wersja 1.1.1 (luty 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:
-
- Zmodyfikowano warianty kompilacji, aby tylko warianty, które zawierają aplikację Wear, wywoływały zadania kompilacji specyficzne dla Wear.
- Zmieniliśmy problemy związane z zależnościami, aby powodowały błąd w czasie kompilacji, a nie w czasie debugowania. Umożliwia to uruchamianie zadań diagnostycznych (np. „dependencies”), które pomagają rozwiązać konflikt.
- Poprawiono metodę
android.getBootClasspath()
, aby zwracała wartość.
Wtyczka Androida do obsługi Gradle, wersja 1.1.0 (luty 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:
-
- Dodano obsługę nowych testów jednostkowych
- Umożliwia uruchamianie testów jednostkowych na lokalnej maszynie JVM w specjalnej wersji pliku
android.jar
, która jest zgodna z popularnymi platformami do tworzenia atrap, np. Mockito. - Dodaliśmy nowe zadania testowe
testDebug
,testRelease
itestMyFlavorDebug
podczas korzystania z wersji produktu. - Dodano nowe foldery źródłowe rozpoznawane jako testy jednostkowe:
src/test/java/
,src/testDebug/java/
,src/testMyFlavor/java/
. - Dodaliśmy nowe konfiguracje w pliku
build.gradle
do deklarowania zależności tylko na potrzeby testów, np.testCompile 'junit:junit:4.11'
,testMyFlavorCompile 'some:library:1.0'
.Uwaga: zależności tylko do testów nie są obecnie zgodne z kompilatorem Jack (Java Android Compiler Kit).
- Dodano opcję
android.testOptions.unitTests.returnDefaultValues
, która umożliwia kontrolowanie działania pliku mockable android.jar. - W nazwach zadań testowych zastąpiono
Test
znakiemAndroidTest
. Na przykład zadanieassembleDebugTest
to teraz zadanieassembleDebugTest
.assembleDebugAndroidTest
Zadania testów jednostkowych nadal mają w nazwie symbolUnitTest
, np.assembleDebugUnitTest
. - Zmodyfikowane pliki konfiguracyjne ProGuard nie będą już stosowane do testowego pliku APK. Jeśli minifikacja jest włączona, ProGuard przetwarza testowy plik APK i stosuje tylko plik mapowania wygenerowany podczas minifikacji głównego pliku APK.
- Zaktualizowane zarządzanie zależnościami
- Rozwiązaliśmy problemy z zakresami
provided
ipackage
.Uwaga: te zakresy są niezgodne z pakietami AAR (Android ARchive) i spowodują niepowodzenie kompilacji z pakietami AAR.
- Zmodyfikowano rozwiązywanie zależności, aby porównywać zależności aplikacji poddawanej testom i aplikacji testowej. Jeśli w przypadku obu aplikacji znajdzie się artefakt w tej samej wersji, nie jest on dołączany do aplikacji testowej, a jest pakowany tylko z aplikacją poddawaną testom. Jeśli w przypadku obu aplikacji zostanie znaleziony artefakt w innej wersji, kompilacja się nie powiedzie.
- Rozwiązaliśmy problemy z zakresami
- Dodaliśmy obsługę
anyDpi
kwalifikatora zasobu w narzędziu do łączenia zasobów. - Zwiększona szybkość oceny i synchronizacji IDE w przypadku projektów z dużą liczbą modułów Androida.
Wtyczka Androida do obsługi Gradle, wersja 1.0.1 (styczeń 2015 r.)
- Zależności:
-
-
Gradle w wersji od 2.2.1 do 2.3.x.
Uwaga: ta wersja wtyczki Androida do obsługi Gradle nie jest zgodna z Gradle w wersji 2.4 i nowszych.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
-
- Uwagi ogólne:
-
- Rozwiązaliśmy problem z niepowodzeniem kompilacji Gradle podczas uzyskiwania dostępu do modułu
extractReleaseAnnotations
. (Problem 81638). - Rozwiązaliśmy problem z przekazywaniem ustawienia
Disable
do kodu bajtowego Dalvik Executable (dex).--no-optimize
(Problem 82662). - Rozwiązaliśmy problemy z łączeniem plików manifestu podczas importowania bibliotek z wartością
targetSdkVersion
mniejszą niż 16. - Rozwiązaliśmy problem z kolejnością gęstości podczas korzystania z Androida Studio z JDK 8.
- Rozwiązaliśmy problem z niepowodzeniem kompilacji Gradle podczas uzyskiwania dostępu do modułu
Wtyczka Androida do obsługi Gradle, wersja 1.0.0 (grudzień 2014 r.)
- Zależności:
-
-
Gradle w wersji od 2.2.1 do 2.3.x.
Uwaga: ta wersja wtyczki Androida do obsługi Gradle nie jest zgodna z Gradle w wersji 2.4 i nowszych.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
-
- Uwagi ogólne:
-
- Pierwsza wersja wtyczki.