Poniżej znajdziesz informacje o wersji Android Studio 3.6 i starszych oraz wtyczki Gradle dla Androida 3.6.0 i starszych.
starsze wersje Android Studio,
3.6 (luty 2020 r.)
Android Studio 3.6 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
Dziękujemy też wszystkim członkom społeczności, którzy pomogli nam w tej aktualizacji.
3.6.3 (kwiecień 2020 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualizacjami wersji.
3.6.2 (marzec 2020 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj powiązany post na blogu z aktualizacjami wersji.
3.6.1 (luty 2020 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj powiązany post na blogu z aktualizacjami wersji.
Narzędzia do projektowania
Ta wersja Android Studio zawiera aktualizacje kilku narzędzi do projektowania, w tym edytora układu i menedżera zasobów.
Podzielony widok i powiększenie w edytorach projektów
Ta wersja zawiera te aktualizacje edytorów projektowania wizualnego:
-
Edytorzy projektów, np. Edytor układu i Edytor nawigacji, udostępniają teraz widok Split, który umożliwia jednoczesne wyświetlanie widoków Projekt i Kod interfejsu użytkownika. W prawym górnym rogu okna edytora znajdują się teraz 3 przyciski:, które umożliwiają przełączanie opcji wyświetlania:
- Aby włączyć widok podzielony, kliknij ikonę Podziel.
- Aby włączyć widok kodu źródłowego XML, kliknij ikonę Źródło.
- Aby włączyć widok projektu, kliknij ikonę Projekt.
-
Elementy sterujące służące do powiększania i przesuwania 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 użytkownika za pomocą edytora układu.
Karta zasobu selektora kolorów
Aby ułatwić Ci szybkie aktualizowanie wartości zasobów kolorów w aplikacji, gdy używasz selektora kolorów w pliku XML lub narzędzi projektowych, IDE automatycznie wypełnia wartości zasobów kolorów.
Menedżer zasobów
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.
- Teraz możesz zmieniać nazwy zasobów podczas importowania, 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 Android Gradle zawiera wiele ulepszeń, w tym optymalizacje dotyczące szybkości kompilacji, obsługę wtyczki Maven publishing i obsługę View Binding. Więcej informacji znajdziesz w pełnych informacjach o wersji.
Wyświetlanie powiązania
Powiązanie widoku ułatwia pisanie kodu, który wchodzi w interakcję z widokami, generując klasę powiązania dla każdego pliku XML układu. Te klasy zawierają bezpośrednie odwołania do wszystkich widoków, które mają identyfikator w odpowiednim układzie.
Ponieważ zastępuje ona funkcję findViewById()
, wiązanie widoku eliminuje ryzyko wyjątków związanych z wskaźnikiem null wynikających z nieprawidłowego identyfikatora widoku.
Aby włączyć wiązanie widoku, musisz użyć wtyczki Android Gradle w wersji 3.6.0 lub nowszej i umieścić w pliku build.gradle
każdego modułu następujące informacje:
Groovy
android { buildFeatures.viewBinding = true }
Kotlin
android { buildFeatures.viewBinding = true }
Apply Changes
Możesz teraz dodać klasę, a potem wdrożyć zmiany kodu w uruchomionej aplikacji, klikając Zastosuj zmiany kodu lub Zastosuj zmiany i ponowne uruchomienie aktywności .
Więcej informacji o różnicach między tymi 2 działaniami znajdziesz w sekcji Stosowanie zmian.
Opcja menu Refactor do włączenia obsługi aplikacji błyskawicznych
Po utworzeniu projektu aplikacji możesz w dowolnym momencie natychmiast włączyć moduł podstawowy w ten sposób:
- Otwórz panel Projekt, klikając Widok > Okna narzędzi > Projekt na pasku menu.
- Kliknij prawym przyciskiem myszy moduł podstawowy (zazwyczaj o nazwie „app”) i wybierz Refactor > Enable Instant Apps Support (Refactor > Włącz obsługę aplikacji błyskawicznych).
- W wyświetlonym oknie wybierz moduł podstawowy z menu.
- Kliknij OK.
Uwaga: z kreatora Tworzenie nowego projektu została usunięta opcja natychmiastowego włączenia modułu aplikacji podstawowej.
Więcej informacji znajdziesz w artykule Omówienie Google Play Instant.
Odszyfrowanie kodu bajtowego klasy i metody w APK Analyzer
Jeśli używasz APK Analyzer do sprawdzania plików DEX, możesz odszyfrować bajtowy kod klasy i metody w ten sposób:
- Na pasku menu kliknij Utwórz > Przeanalizuj APK.
- W wyświetlonym oknie przejdź do pliku APK, który chcesz sprawdzić, i go wybierz.
- Kliknij Otwórz.
- W analizatorze APK wybierz plik DEX, który chcesz sprawdzić.
- W przeglądarce plików DEX załaduj plik mapowania ProGuard dla analizowanego pliku APK.
- Kliknij prawym przyciskiem myszy klasę lub metodę, którą chcesz sprawdzić, i kliknij Pokaż kod bajtowy.
Narzędzia natywne
Te aktualizacje umożliwiają tworzenie aplikacji natywnych (C/C++) w Android Studio.
Obsługa Kotlina
Te funkcje NDK w Android Studio, które były wcześniej obsługiwane w języku Java, są teraz obsługiwane również w Kotlinie:
-
Przejdź z deklaracji JNI do odpowiadającej jej 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 zastępczej 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ą wyróżnione w kodzie źródłowym jako ostrzeżenie. Deklaracje JNI z brakującymi implementacjami są również wyróżniane jako błędy.
-
Gdy zmienisz nazwę (przepiszesz) natywnej funkcji implementacji, wszystkie odpowiednie deklaracje JNI zostaną zaktualizowane. Zmień nazwę deklaracji JNI, aby zaktualizować funkcję implementacji natywnej.
-
Sprawdzanie podpisu w przypadku implementacji JNI z implicytnymi wywołaniami.
Inne ulepszenia JNI
Edytor kodu w Android Studio obsługuje teraz płynniejszy proces tworzenia kodu JNI, w tym ulepszone podpowiedzi typów, autouzupełnianie, inspekcje i refaktoryzację kodu.
Ponowne wczytywanie pliku APK dla bibliotek natywnych {:#3.6-reload-apk}
Nie musisz już tworzyć nowego projektu, gdy plik APK w Twoim projekcie jest aktualizowany poza IDE. Android Studio wykrywa zmiany w pliku APK i daje Ci możliwość ponownego zaimportowania pliku.
Dołącz źródła pliku APK tylko w języku Kotlin
Podczas profilowania i debugowania gotowych plików APK możesz teraz dołączać zewnętrzne źródła plików APK tylko z Kotlinem. Więcej informacji znajdziesz w artykule Dołączanie źródeł kodu Kotlin lub Java.
Wykrywanie wycieków w narzędziu Memory Profiler
Podczas analizowania zrzutu stosu w profilu pamięci możesz teraz filtrować dane z profilowania, które według Android Studio mogą wskazywać na wycieki pamięci w przypadku instancji Activity
i Fragment
w aplikacji.
Typy danych wyświetlanych przez filtr:
-
instancji
Activity
, które zostały zniszczone, ale nadal są używane; -
Fragment
, które nie mają prawidłowej wartościFragmentManager
, ale są nadal używane.
Dołącz źródła pliku APK tylko w języku Kotlin
Podczas profilowania i debugowania gotowych plików APK możesz teraz dołączać zewnętrzne źródła plików APK tylko z Kotlinem. Więcej informacji znajdziesz w artykule Dołączanie źródeł kodu Kotlin lub Javy.
Wykrywanie wycieków w narzędziu Memory Profiler
Podczas analizowania zrzutu stosu w profilu pamięci możesz teraz filtrować dane z profilowania, które według Android Studio mogą wskazywać na wycieki pamięci w przypadku instancji Activity
i Fragment
w aplikacji.
Typy danych wyświetlanych przez filtr:
-
instancji
Activity
, które zostały zniszczone, ale nadal są używane; -
Fragment
, które nie mają prawidłowegoFragmentManager
, ale są nadal używane.
W niektórych sytuacjach, takich jak te, filtr może dać fałszywe wyniki:
Fragment
został utworzony, ale nie został jeszcze użyty.Fragment
jest przechowywane w pamięci podręcznej, ale nie w ramachFragmentTransaction
.
Aby skorzystać z tej funkcji, najpierw zrób zrzut stosu lub zaimportuj plik zrzutu stosu do Android Studio. Aby wyświetlić fragmenty i czynności, które mogą powodować wycieki pamięci, zaznacz pole wyboru Wycieki pamięci z działalności/fragmentów w panelu zrzutu stosu w profilu pamięci.
Emulatory
Android Studio 3.6 pozwala korzystać z kilku aktualizacji zawartych w emulatorze Androida 29.2.7 lub nowszym, jak opisano poniżej.
Ulepszona obsługa lokalizacji
Emulator Androida w wersji 29.2.7 lub nowszej zapewnia dodatkową obsługę emulacji współrzędnych GPS i informacji o trasie. Gdy otworzysz sekcji „Emulatory” Rozszerzone opcje sterowania, opcje na karcie „Lokalizacja” są teraz uporządkowane na 2 kartach: Pojedyncze punkty i Ścieżki.
Pojedyncze punkty
Na karcie Pojedyncze punkty możesz użyć widoku internetowego Map Google, aby wyszukiwać punkty zainteresowania, tak jak w przypadku korzystania z Map Google na telefonie lub w przeglądarce. Gdy wyszukujesz lub klikasz lokalizację na mapie, możesz ją zapisać, klikając Zapisz punkt na dole mapy. Wszystkie zapisane lokalizacje są wyświetlane po prawej stronie okna Rozszerzone ustawienia.
Aby ustawić lokalizację emulatorów na wybraną na mapie, kliknij przycisk Ustaw lokalizację w prawym dolnym rogu okna Rozszerzone opcje sterowania.
.
Trasy
Podobnie jak karta Pojedyncze punkty karta Trasa zawiera widok internetowy Map Google, za pomocą którego możesz utworzyć trasę między co najmniej 2 miejscami. Aby utworzyć i zapisać trasę:
- W widoku mapy użyj pola tekstowego, aby wyszukać pierwszy punkt na trasie.
- Wybierz lokalizację w wynikach wyszukiwania.
- Kliknij przycisk Przejdź.
- Wybierz punkt początkowy trasy na mapie.
- (Opcjonalnie) Kliknij Dodaj miejsce docelowe, aby dodać kolejne przystanki na trasie.
- Zapisz trasę, klikając Zapisz trasę w widoku mapy.
- Podaj nazwę trasy i kliknij Zapisz.
Aby symulować działanie emulatora na podstawie zapisanej trasy, wybierz ją na liście Zapisane trasy i w prawym dolnym rogu okna Rozszerzone opcje sterowania kliknij Odtwórz trasę. Aby zatrzymać symulację, kliknij Zatrzymaj trasę.
.
Aby stale symulować działanie emulatora zgodnie ze wskazaną trasą, włącz przełącznik Powtarzaj odtwarzanie. Aby zmienić szybkość, z jaką emulator będzie podążać za określoną trasą, wybierz opcję w menu Szybkość odtwarzania.
Obsługa kilku wyświetlaczy
Emulator Androida umożliwia teraz wdrażanie aplikacji na wiele wyświetlaczy, które obsługują wymiary dostosowane do potrzeb użytkownika. Możesz też testować aplikacje, które obsługują 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 Ustawienia zaawansowane i otwórz kartę Wyświetlacze.
-
Aby dodać kolejny wyświetlacz, kliknij Dodaj dodatkowy wyświetlacz.
-
W menu 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) Kliknij Dodaj drugi wyświetlacz, aby dodać trzeci wyświetlacz.
-
Aby dodać określone wyświetlacze do działającego urządzenia wirtualnego, kliknij Zastosuj zmiany.
Nowe urządzenia wirtualne i szablony projektów na system operacyjny Android Automotive
Podczas tworzenia nowego projektu w Android Studio możesz teraz wybrać jeden z 3 szablonów na karcie Motoryzacja w kroku kreatora Tworzenie nowego projektu: Brak aktywności, Usługa multimedialna i Usługa do obsługi wiadomości. W przypadku istniejących projektów możesz dodać obsługę urządzeń z Androidem Automotive, wybierając na pasku menu Plik > Nowy > Nowy moduł, a następnie Moduł samochodowy. Następnie kreator Tworzenie nowego modułu przeprowadzi Cię przez proces tworzenia nowego modułu za pomocą jednego ze szablonów projektu Androida Automotive.
.
Możesz też utworzyć urządzenie wirtualne z Androidem (AVD) na potrzeby urządzeń z systemem operacyjnym Android Automotive. Aby to zrobić, na karcie Motoryzacja w kreatorze Konfiguracja urządzenia wirtualnego wybierz jedną z tych opcji.
- Polestar 2: utwórz AVD, który emuluje jednostkę główną Polestar 2.
- Samochodowóz (1024p w orientacji poziomej): utwórz AVD dla uniwersalnych urządzeń z Androidem Automotive o wymiarach 1024 x 768 pikseli.
.
Pobieranie pakietu SDK z możliwością wznowienia
Podczas pobierania komponentów i narzędzi SDK za pomocą Menedżera pakietu SDK Android Studio umożliwia teraz wznowienie przerwanych (np. z powodu problemu z siecią) pobierania zamiast jego ponownego uruchamiania od początku. To ulepszenie jest szczególnie przydatne w przypadku dużych plików do pobrania, takich jak emulator Androida czy obrazy systemowe, gdy połączenie z internetem jest niestabilne.
Jeśli w tle działa zadanie pobierania pakietu SDK, możesz je wstrzymać lub wznowić, korzystając z elementów sterujących na pasku stanu.
Wycofanie obsługi Win32
Po grudniu 2019 r. nie będzie już można aktualizować 32-bitowej wersji Android Studio na Windows. W grudniu 2020 r. przestanie ona być obsługiwana. Nadal możesz korzystać z Android Studio. Aby jednak otrzymywać dodatkowe aktualizacje, zaktualizuj stanowisko robocze do 64-bitowej wersji systemu Windows.
Więcej informacji znajdziesz w artykule Wycofanie 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 spowolnić proces synchronizacji.
Aby poprawić wydajność synchronizacji Gradle, kliknij Plik > Ustawienia > Eksperymentalne i wybierz Nie twórz listy zadań Gradle podczas synchronizacji Gradle.
Gdy włączysz tę opcję, Android Studio pominie tworzenie listy zadań podczas synchronizacji, co pozwoli na szybsze ukończenie synchronizacji Gradle i poprawi szybkość reakcji interfejsu. Pamiętaj, że gdy IDE pominie kompilację listy zadań, listy zadań w panelu Gradle są puste, a automatyczne uzupełnianie nazw zadań w plikach kompilacji nie działa.
Nowa lokalizacja przełącznika trybu offline w Gradle
Aby włączyć lub wyłączyć tryb offline Gradle, na pasku menu kliknij Widok > Okna narzędzia > Gradle. Następnie u góry okna Gradle kliknij Przełącz tryb offline .
IntelliJ IDEA 2019.2
Główne środowisko programistyczne Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2019.2.
Więcej informacji o ulepszeniach z innych wersji IntelliJ, które są uwzględnione w wersji 2019.2, znajdziesz na tych stronach:
Współtwórcy społeczności
Dziękujemy wszystkim członkom społeczności, którzy pomogli nam znaleźć błędy i wskazali inne sposoby na ulepszenie Android Studio 3.6. Szczególnie dziękujemy tym użytkownikom, którzy zgłosili błędy:
|
|
|
3.5 (sierpień 2019 r.)
Android Studio 3.5 to wersja główna, która powstała w ramach projektu Marble. Począwszy od wydania Android Studio 3.3, w ramach inicjatywy Project Marble ukazało się kilka wersji, które koncentrowały się na ulepszaniu 3 głównych obszarów środowiska IDE: stanu systemu, udoskonalenia funkcji i naprawiania błędów.
Informacje 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 współtwórcom społeczności, którzy pomogli nam w 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. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj powiązany post na blogu z aktualizacjami wersji.
3.5.1 (październik 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj powiązany post na blogu z aktualizacjami wersji.
Project Marble: stan systemu
W tej sekcji opisano zmiany w Android Studio 3.5, które mają na celu poprawę stanu systemu.
Zalecane ustawienia pamięci
Android Studio wysyła teraz powiadomienie, jeśli wykryje, że możesz zwiększyć wydajność, zwiększając maksymalną ilość pamięci RAM, którą system operacyjny powinien przydzielić procesom Android Studio, takim jak podstawowe IDE, demon Gradle i demon Kotlin. Możesz zaakceptować zalecane ustawienia, klikając link do działania w powiadomieniu, lub dostosować je ręcznie. W tym celu wybierz Plik > Ustawienia (lub Android Studio > Preferencje w systemie macOS), a następnie odszukaj sekcję Ustawienia pamięci w sekcji Wygląd i zachowanie > Ustawienia systemu. Więcej informacji znajdziesz w artykule Maksymalny rozmiar stosu.
Raport o wykorzystaniu pamięci
Problemy z pamięcią w Android Studio są czasami trudne do odtworzenia i zgłoszenia. Aby rozwiązać ten problem, w Android Studio możesz wygenerować raport o wykorzystaniu pamięci. Aby to zrobić, na pasku menu kliknij Pomoc > Przeanalizuj wykorzystanie pamięci. Gdy to zrobisz, IDE lokalnie sprawdzi dane pod kątem informacji umożliwiających identyfikację, a potem zapyta, czy chcesz je wysłać do zespołu Android Studio, aby pomóc w znalezieniu źródła problemów z pamięcią. Więcej informacji znajdziesz w artykule Generowanie raportu o wykorzystaniu pamięci.
Windows: optymalizacja operacji wejścia/wyjścia dotyczących pliku antywirusa
Android Studio automatycznie sprawdza, czy określone katalogi projektu są wykluczone z skanowania antywirusowego w czasie rzeczywistym. Gdy można wprowadzić zmiany, aby poprawić wydajność kompilacji, Android Studio wysyła powiadomienie i podaje instrukcje optymalizacji konfiguracji programu antywirusowego. Więcej informacji znajdziesz w artykule Minimalizowanie wpływu oprogramowania antywirusowego na szybkość kompilacji.
Projekt Marble: dopracowanie funkcji
W tej sekcji opisano zmiany w Android Studio 3.5, które koncentrują się na ulepszaniu dotychczasowych funkcji.
Apply Changes
Zastosowanie zmian umożliwia przesyłanie zmian kodu i zasobów do uruchomionej aplikacji bez jej restartowania, a w niektórych przypadkach także bez restartowania bieżącej aktywności. Zastosowanie zmian wdraża zupełnie nowe podejście do zachowania stanu aplikacji. W przeciwieństwie do funkcji Wykonaj błyskawicznie, która przepisuje bajt kod źródłowy pliku APK, funkcja Zastosuj zmiany na bieżąco redefiniuje klasy, korzystając z instrumentacji czasu wykonywania obsługiwanej w Androidzie 8.0 (poziom interfejsu API 26) lub nowszym.
Więcej informacji znajdziesz w sekcji Stosowanie zmian.
Proces wdrażania aplikacji
IDE ma nowe menu, które umożliwia szybki wybór urządzenia, na które chcesz wdrożyć aplikację. W tym menu znajdziesz też nową opcję, która umożliwia uruchamianie aplikacji na wielu urządzeniach jednocześnie.
Ulepszone wykrywanie synchronizacji i pamięci podręcznej Gradle
IDE lepiej wykrywa, kiedy Gradle okresowo czyści pamięć podręczną kompilacji, co pozwala ograniczyć zużycie dysku twardego. W poprzednich wersjach ten stan powodował, że IDE zgłaszało brakujące zależności, a synchronizacja Gradle się nie powiodła. Teraz IDE po prostu pobiera zależności w miarę potrzeby, aby zapewnić prawidłowe zakończenie synchronizacji Gradle.
Ulepszone dane wyjściowe dotyczące błędów kompilacji
Okno Generowanie umożliwia teraz lepsze raportowanie błędów, np. link do pliku i wiersza z raportowanym błędem, w przypadku tych procesów kompilacji:
- Kompilacja i linkowanie za pomocą AAPT
- R8 i ProGuard
- Dexing
- scalanie zasobów;
- Analiza pliku XML
- Kompilacja Javac, Kotlinc i CMake
Przenieś projekt na wyższy abonament
Ulepszenie procesu aktualizacji, aby zapewnić więcej informacji i działań ułatwiających aktualizowanie IDE i wtyczki Gradle dla Androida. Na przykład więcej błędów synchronizacji i tworzenia zawiera działania, które pomogą Ci ograniczyć błędy podczas aktualizacji.
Pamiętaj, że możesz aktualizować IDE niezależnie od innych komponentów, takich jak wtyczka Androida do obsługi Gradle. Możesz więc bezpiecznie aktualizować IDE, gdy tylko pojawi się nowsza wersja, a inne komponenty aktualizować później.
Edytor układu
Android Studio 3.5 zawiera kilka ulepszeń dotyczących wizualizacji układu, zarządzania i interakcji.
Podczas pracy z ConstraintLayout
w panelu Atrybuty pojawi się nowa sekcja Ograniczenia, w której znajdziesz relacje ograniczeń wybranego komponentu interfejsu. Możesz wybrać ograniczenie na stronie projektu lub na liście ograniczeń, aby wyróżnić je w obu obszarach.
Podobnie możesz teraz usunąć ograniczenie, wybierając je i naciskając klawisz Delete
. Możesz też usunąć ograniczenie, przytrzymując klawisz Control
(Command
w systemie macOS) i klikając kotwicę ograniczeń. Pamiętaj, że gdy przytrzymasz klawisz Control
lub Command
i najedziesz kursorem na kotwicę, wszystkie powiązane ograniczenia zmienią kolor na czerwony, aby wskazać, że możesz je usunąć.
Po wybraniu widoku możesz utworzyć ograniczenie, klikając dowolną ikonę + w sekcji Widżet ograniczenia w panelu Atrybuty, jak pokazano na poniższym obrazie. Gdy utworzysz nowe ograniczenie, edytor układu wybierze i podświetli to ograniczenie, aby od razu pokazać wizualne informacje o dodanych elementach.
Podczas tworzenia ograniczenia Edytor układu wyświetla teraz tylko odpowiednie punkty kotwiczenia, które można ograniczyć. Wcześniej edytor układu wyróżniał wszystkie punkty kotwiczenia we wszystkich widokach, niezależnie od tego, czy można było je ograniczyć. Dodatkowo niebieski nakładany obraz wyróżnia teraz docelowe ograniczenie. To wyróżnianie jest szczególnie przydatne, gdy próbujesz ograniczyć komponent do komponentu, który nakłada się na inny.
Oprócz powyższych zmian w Android Studio 3.5 znajdziesz też te ulepszenia edytora układu:
- Widżet ograniczeń i menu domyślnego marginesu umożliwiają teraz używanie zasobów wymiarów do marginesów.
- Na pasku narzędzi w Edytorze układu została zaktualizowana lista urządzeń, które określają rozmiar powierzchni projektu. Usprawniliśmy też zachowanie przy przesuwaniu elementów, a uchwyty zmiany rozmiaru na powierzchni projektowania są teraz zawsze widoczne. Podczas zmiany rozmiaru pojawiają się nowe nakładki z popularnymi rozmiarami urządzeń.
- Edytor układu ma nową paletę kolorów, która zwiększa spójność i zmniejsza kontrast między komponentami, tekstem i ograniczeniami.
- Tryb szablonu obsługuje teraz tekst w niektórychś komponentach, w których wcześniej nie był on wyświetlany.
Więcej informacji o tych zmianach znajdziesz w artykule Projekt Marble w Android Studio: edytor układu.
Wiązanie danych
Oprócz dodania obsługi przetwarzania przyrostowego adnotacji dla wiązania danych IDE ulepsza funkcje inteligentnego edytora i ich wydajność podczas tworzenia wyrażeń wiązania danych w XML.
Ulepszona obsługa projektów C/C++
Android Studio 3.5 zawiera kilka zmian, które poprawiają obsługę projektów C/C++.
Ulepszenia w panelu Tworzenie wariantów dotyczące synchronizacji pojedynczego wariantu
W panelu Warianty kompilacji możesz teraz określić zarówno aktywny wariant kompilacji, jak i aktywny ABI. Ta funkcja upraszcza konfigurację kompilacji dla poszczególnych modułów i może też poprawić wydajność synchronizacji Gradle.
Więcej informacji znajdziesz w sekcji Zmiana wariantu kompilacji.
Wersje NDK porównane ze sobą
Możesz teraz używać wielu wersji NDK obok siebie. Ta funkcja zapewnia większą elastyczność podczas konfigurowania projektów, np. gdy masz projekty, które na tym samym komputerze korzystają z różnych wersji NDK.
Jeśli Twój projekt używa wtyczki Android Gradle w wersji 3.5.0 lub nowszej, możesz też określić wersję NDK, której ma używać każdy moduł w projekcie. Możesz używać tej funkcji do tworzenia powtarzalnych kompilacji i łagodzenia niezgodności między wersjami NDK a wtyczką Gradle na Androida.
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 zgodnym urządzeniu z ChromeOS i postępuj zgodnie z instrukcjami instalacji.
Uwaga: Android Studio w ChromeOS obecnie obsługuje wdrażanie aplikacji tylko na połączone urządzenie. Więcej informacji znajdziesz w artykule Uruchamianie aplikacji na urządzeniu z Androidem.
Przesyłanie warunkowe modułów funkcji
Dostarczanie warunkowe umożliwia skonfigurowanie określonych wymagań konfiguracji urządzenia dla modułów funkcji, aby były one pobierane automatycznie podczas instalacji aplikacji. Możesz na przykład skonfigurować moduł funkcji, który zawiera funkcje rzeczywistości rozszerzonej (AR), tak aby były dostępne podczas instalacji aplikacji tylko na urządzeniach obsługujących AR.
Ten mechanizm dostarczania umożliwia obecnie kontrolowanie pobierania modułu w momencie instalowania 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 wymagań, moduł nie jest pobierany w momencie instalowania aplikacji. Twoja aplikacja może jednak później poprosić o pobieranie 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 programistyczne Android Studio zostało zaktualizowane o ulepszone funkcje z IntelliJ IDEA, które zostały wprowadzone w wersji 2019.1, np. dostosowywanie motywu.
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 Android Studio, znajdziesz w tych aktualizacjach z poprawkami błędów:
- 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 wersji 3.5.0 wtyczki Androida do obsługi Gradle, np. ulepszone wsparcie dla stopniowego przetwarzania adnotacji i testów jednostkowych z możliwością zapisania w pamięci podręcznej, znajdziesz w notatkach do wersji.
Współtwórcy społeczności
Dziękujemy wszystkim członkom społeczności, którzy pomogli nam znaleźć błędy i wskazali sposoby na ulepszenie Android Studio 3.5. Szczególnie dziękujemy tym, którzy zgłosili błędy o priorytecie 0 i 1:
|
|
|
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. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualizacjami wersji.
3.4.1 (maj 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu o aktualizacjach wersji.
Znane problemy z wersją 3.4.0
Profilowanie jest wyłączone podczas wdrażania aplikacji na urządzenie z Androidem Q Beta.
- Podczas korzystania z Data Binding Library funkcja
LiveDataListener.onChanged()
może zakończyć się niepowodzeniem z błędem NPE. Poprawka tego problemu zostanie uwzględniona w Android Studio 3.4.1 i jest już dostępna w najnowszej wersji w wersji zapoznawczej Android Studio 3.5. (zobacz problem #122066788)
IntelliJ IDEA 2018.3.4
Główne środowisko programistyczne Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA do wersji 2018.3.4.
Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.4.0
Informacje o nowościach w wersji 3.4.0 wtyczki Androida do obsługi Gradle znajdziesz w notatkach do wersji.
Okno nowej struktury projektu
Nowy dialog struktury projektu ułatwia aktualizowanie zależności i konfigurowanie różnych aspektów projektu, takich jak moduły, warianty kompilacji, konfiguracje podpisywania i zmiennych kompilacji.
Plik PSD możesz otworzyć, wybierając Plik > Struktura projektu na pasku menu. Plik PSD możesz też otworzyć, naciskając Ctrl+Shift+Alt+S
w Windows i Linuxie lub Command+;
(przecinek) w macOS. Poniżej znajdziesz opisy niektórych nowych i zmienionych sekcji PSD.
Zmienne
Nowa sekcja zmiennych w PSD umożliwia tworzenie zmiennych kompilacji i zarządzanie nimi, np. w celu zachowania spójności numerów wersji zależności w całym projekcie.
- Szybkie wyświetlanie i edytowanie zmiennych kompilacji, które są już dostępne w skryptach kompilacji Gradle w projekcie.
- Dodawanie nowych zmiennych kompilacji na poziomie projektu lub modułu bezpośrednio z 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 ich edytowania za pomocą PSD. Ponadto za pomocą PSD nie można edytować plików kompilacji napisanych w Kotlinie.
Moduły
Skonfiguruj właściwości stosowane do wszystkich wariantów kompilacji w dotychczasowym module lub dodaj nowe moduły do projektu w sekcji Moduły. Na przykład możesz tu konfigurować właściwości defaultConfig
lub zarządzać konfiguracjami podpisywania.
Zależności
Aby sprawdzić i wizualizować każdą zależność w grafu zależności projektu, który został rozwiązany przez Gradle podczas synchronizacji projektu, wykonaj te czynności:
- W panelu po lewej stronie PSD kliknij Zależności.
- W panelu Moduły wybierz moduł, którego zależności chcesz sprawdzić.
- Po prawej stronie pliku PSD otwórz panel Rozwiązane zależności, który jest pokazany poniżej.
Możesz też szybko wyszukać i dodać zależności do projektu, wybierając najpierw moduł w sekcji Zależności w pliku PSD, klikając przycisk (+) w sekcji Zadeklarowane zależności i wybierając typ zależności, którą chcesz dodać.
W zależności od wybranego typu zależności powinno się wyświetlić okno podobne do tego poniżej, które pomoże Ci dodać zależność do modułu.
Tworzenie wersji
W tej sekcji pliku PSD utwórz i skonfiguruj warianty kompilacji oraz wersje produktu dla każdego modułu w projekcie. Możesz dodawać m.in. obiekty zastępcze w pliku manifestu, pliki ProGuard i przypisywać klucze podpisywania.
Sugestie
Sugerowane zmiany zależności projektu i zmiennych kompilacji znajdziesz w sekcji Sugestia, jak pokazano na ilustracji poniżej.
Nowy Menedżer zasobów
Menedżer zasobów to nowe okno narzędzi służące do importowania, tworzenia, zarządzania i używania zasobów w aplikacji. Aby otworzyć okno narzędzi, na pasku menu kliknij Widok > Okna narzędzi > Menedżer zasobów. Za pomocą Menedżera zasobów możesz:
- Wizualizacja zasobów: możesz wyświetlić podgląd obiektów do rysowania, kolorów i schematów, aby szybko znaleźć potrzebne zasoby.
- Import zbiorczy: możesz zaimportować wiele zasobów rysunkowych naraz, przeciągając je i upuszczając w oknie narzędzia Menedżer zasobów lub używając kreatora Importowanie zasobów rysunkowych. Aby otworzyć kreatora, kliknij przycisk (+) w lewym górnym rogu okna narzędzia, a potem w menu kliknij Importuj elementy rysowalne.
-
Konwertowanie plików SVG na obiekty
VectorDrawable
: za pomocą kreatora Importowanie obiektów do rysowania możesz konwertować obrazy SVG na obiektyVectorDrawable
. - Przeciąganie i upuszczanie komponentów: w oknie narzędzi Menedżer zasobów możesz przeciągać i upuszczać komponenty w widoku projektu i widoku XML w Edytorze układu.
- Wyświetlanie wersji alternatywnych: teraz możesz wyświetlać alternatywne wersje zasobów, klikając je dwukrotnie w oknie Narzędzia. Ten widok pokazuje różne utworzone przez Ciebie wersje i zawarte w nich warunki.
- Widok kafelków i widok listy: w oknie narzędzia możesz zmieniać widok, aby wizualizować zasoby w różnych układach.
Więcej informacji znajdziesz w przewodniku Zarządzanie zasobami aplikacji.
Sprawdzanie identyfikatorów wersji podczas profilowania i debugowania plików APK
Gdy podasz pliki symboli debugowania dla współdzielonych bibliotek .so
w swojej aplikacji APK, Android Studio sprawdzi, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji bibliotek .so
w tym pliku APK.
Jeśli kompilujesz biblioteki natywne w pliku APK z identyfikatorem kompilacji, Android Studio sprawdza, czy identyfikator kompilacji w plikach symboli jest zgodny z identyfikatorem kompilacji w bibliotekach natywnych. W razie niezgodności pliki symboli zostaną odrzucone. Jeśli kompilacja nie została wykonana z identyfikatorem kompilacji, podanie nieprawidłowych plików symboli może spowodować problemy z debugowaniem.
R8 jest domyślnie włączone
R8 łączy desugaring, kompresowanie, zaciemnianie, optymalizację i dexing w jednym kroku, co powoduje zauważalne zwiększenie wydajności kompilacji. R8 zostało wprowadzone w pliku Android Gradle plugin 3.3.0 i jest teraz domyślnie włączone zarówno w przypadku projektów aplikacji, jak i projektów bibliotek Androida korzystających z pliku plugin 3.4.0 lub nowszej wersji.
Ilustracja poniżej przedstawia proces kompilacji przed wprowadzeniem R8.
Teraz dzięki R8 desugaring, shrinking, obfuscating, optymalizacja i dexing (D8) są wykonywane w jednym kroku, jak pokazano poniżej.
Pamiętaj, że R8 jest przeznaczone do współpracy z dotychczasowymi regułami ProGuard, więc prawdopodobnie nie musisz podejmować żadnych działań, aby korzystać z R8. Jednak ze względu na to, że jest to inna technologia niż ProGuard i jest przeznaczona specjalnie do projektów na Androida, kompresowanie i optymalizowanie może spowodować usunięcie kodu, którego ProGuard nie usuwa. W tej mało prawdopodobnej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w wyniku kompilacji.
Jeśli wystąpią problemy z użyciem R8, przeczytaj najczęstsze pytania dotyczące zgodności R8, aby sprawdzić, czy istnieje rozwiązanie Twojego problemu. Jeśli rozwiązanie nie zostało udokumentowane, zgłoś błąd.
Możesz wyłączyć R8, dodając 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 danym typie kompilacji w pliku build.gradle
modułu aplikacji ustawisz wartość useProguard
na false
, wtyczka Androida do obsługi Gradle będzie używać R8 do kompresji kodu aplikacji w tym typie kompilacji, niezależnie od tego, czy wyłączysz R8 w pliku gradle.properties
projektu.
Edytor nawigacji obsługuje teraz wszystkie typy argumentów
W Edytorze nawigacji są teraz obsługiwane wszystkie typy argumentów obsługiwane przez komponent Nawigacja. Więcej informacji o obsługiwanych typach znajdziesz w artykule Przesyłanie danych między miejscami docelowymi.
Ulepszenia w Edytorze układu {:#layout-editor}
Panel Atrybuty w Edytorze układu został uproszczony i przekształcony w pojedynczą stronę z sekcjami, które możesz rozwijać, aby wyświetlić atrybuty, które możesz skonfigurować. Panel Atrybuty zawiera też te zmiany:
- Nowa sekcja Zadeklarowane atrybuty zawiera atrybuty określone w pliku układu oraz umożliwia szybkie dodawanie nowych atrybutów.
- W panelu Atrybuty obok każdego atrybutu znajdują się teraz wskaźniki, które są wypełnione, gdy wartość atrybutu jest odniesieniem do zasobu, i puste w przeciwnym przypadku.
- Atrybuty z błędami lub ostrzeżeniami są teraz wyróżnione. Czerwone podświetlenia 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 zaczniesz używać w kodzie niektórych klas Jetpacka i Firebase, nowa akcja intencji zaproponuje dodanie do projektu wymaganej zależności biblioteki Gradle, jeśli nie zostało to jeszcze zrobione. Jeśli na przykład odwołujesz się do klasy WorkManager
bez wcześniejszego zaimportowania wymaganej zależności android.arch.work:work-runtime
, akcja intencji pozwoli Ci to zrobić jednym kliknięciem, jak pokazano poniżej.
Ponieważ Jetpack przepakował bibliotekę pomocy do oddzielnych pakietów, którymi łatwiej się zarządza i które łatwiej jest aktualizować, ta akcja pomaga szybko dodawać tylko te zależności, których potrzebujesz do używanych komponentów Jetpacka.
3.3 (styczeń 2019 r.)
Android Studio 3.3 to ważna wersja, która zawiera wiele nowych funkcji i udoskonaleń.
3.3.2 (marzec 2019 r.)
Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj powiązany post na blogu z aktualizacjami wersji.
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 środowisko IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA do wersji 2018.2.2.
Aktualizacje wtyczki Androida do obsługi Gradle
Informacje o nowościach we wtyczce Gradle na Androida znajdziesz w notatkach do 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 Wdrażanie nawigacji za pomocą komponentu architektury nawigacji.
Usuwanie nieużywanych katalogów Androida Studio
Gdy po raz pierwszy uruchomisz główną wersję Android Studio, aplikacja wyszuka katalogi zawierające pamięci podręczne, ustawienia, indeksy i logi wersji Android Studio, dla których nie można znaleźć odpowiedniej instalacji. W oknie Usuwanie nieużywanych katalogów Android Studio wyświetlane są lokalizacje, rozmiary i czas ostatniej modyfikacji tych nieużywanych katalogów oraz opcja ich usunięcia.
Poniżej znajdziesz listę katalogów, które Android Studio może usunąć:
- Linux:
~/.AndroidStudio[Preview]X.Y
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
- Windows:
%USER%.AndroidStudio[Preview]X.Y
Ulepszenia dotyczące lintowania
Lint wywoływany z Gradle jest znacznie szybszy – w przypadku większych projektów może działać nawet 4 razy szybciej.
Kreator tworzenia nowego projektu
Kreator Utwórz nowy projekt ma nowy wygląd i zawiera zmiany, które ułatwiają tworzenie nowych projektów w Android Studio.
Więcej informacji znajdziesz w artykule Tworzenie projektu.
Aktualizacje programu Profiler
Android Studio 3.3 zawiera aktualizacje poszczególnych profilujących.
Zwiększona wydajność
Na podstawie opinii użytkowników znacznie poprawiliśmy wydajność renderowania podczas korzystania z profilatorów. Nadal przesyłaj opinie, zwłaszcza jeśli nadal masz problemy z działaniem.
Opcje śledzenia przydziału pamięci przez profilator
Aby poprawić wydajność aplikacji podczas profilowania, Profilator pamięci teraz domyślnie okresowo próbkuje alokacje pamięci. W razie potrzeby możesz zmienić to zachowanie, korzystając z menu Śledzenie alokacji podczas testowania na urządzeniach z Androidem 8.0 (poziom interfejsu API 26) lub nowszym.
W menu Śledzenie alokacji możesz wybrać jeden z tych trybów:
-
Pełny: rejestruje wszystkie przydzielenia pamięci obiektu. Pamiętaj, że jeśli Twoja aplikacja przydziela wiele obiektów, podczas profilowania mogą wystąpić poważne problemy z wydajnością.
-
Sampled (próbkowany): okresowo rejestruje przydział pamięci obiektów. Jest to zachowanie domyślne i ma mniejszy wpływ na wydajność aplikacji podczas profilowania. W przypadku aplikacji, które przydzielają dużą liczbę obiektów w krótkim czasie, 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 na procesorze, a po zakończeniu nagrywania wraca do poprzedniego ustawienia. Możesz zmienić to zachowanie w oknie konfiguracji nagrywania na procesorze.
Śledzenie dotyczy zarówno obiektów Java, jak i odwołań JNI.
Sprawdzanie danych dotyczących renderowania klatek
W profilu procesora możesz teraz sprawdzić, ile czasu zajmuje aplikacji w języku Java renderowanie każdej klatki w głównym wątku interfejsu użytkownika i w wątku renderowania. Te dane mogą być przydatne podczas analizowania wąskich gardeł, które powodują problemy z interfejsem i niską liczbą klatek na sekundę. Na przykład każda klatka, której renderowanie trwa dłużej niż 16 ms, co jest wymagane do utrzymania płynnej liczby klatek na sekundę, jest wyświetlana na czerwono.
Aby zobaczyć dane dotyczące renderowania klatek, nagraj ślad, używając konfiguracji, która umożliwia śledzenie wywołań systemu. Po zakończeniu nagrywania ścieżki możesz sprawdzić informacje o każdym klatce na osi czasu w sekcji KAŁÓD, jak pokazano na ilustracji poniżej.
Więcej informacji o sprawdzaniu i rozwiązywaniu problemów z liczbą klatek na sekundę znajdziesz w artykule Wydawanie przez renderowanie.
Fragmenty na osi czasu zdarzenia
Oś czasu zdarzenia pokazuje teraz, kiedy fragmenty są dołączane i odłączane. Dodatkowo, gdy najedziesz kursorem na fragment, pojawi się etykietka z informacją o jego stanie.
Wyświetlanie sformatowanego tekstu w przypadku danych połączenia w profilu sieci
Wcześniej profilator sieci wyświetlał tylko tekst nieprzetworzony z łączących się ładunków danych. Android Studio 3.3 domyślnie formatuje teraz niektóre typy tekstu, w tym JSON, XML i HTML. Na kartach Odpowiedź i Żądanie kliknij link Wyświetl przetworzony, aby wyświetlić sformatowany tekst, i kliknij link Wyświetl źródło, aby wyświetlić tekst nieprzetworzony.
Więcej informacji znajdziesz w artykule Sprawdzanie ruchu sieciowego za pomocą narzędzia Network Profiler.
Automatyczne pobieranie komponentów pakietu SDK
Jeśli Twój projekt potrzebuje komponentu pakietu SDK z platformy SDK, NDK lub CMake, Gradle będzie teraz automatycznie próbować pobierać wymagane pakiety, o ile wcześniej zaakceptujesz odpowiednie umowy licencyjne za pomocą Menedżera pakietu 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 analizę kodu statycznego 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.
Możesz włączyć lub ponownie włączyć inspekcje, otwierając okno Ustawienia lub Ustawienia i klikając Edytor > Inspekcje > C/C++ > Ogólne > Clang-Tidy. Po wybraniu tej inspekcji w oknie Ustawienia lub Ustawienia możesz też zobaczyć listę kontroli Clang-Tidy, które są włączone i wyłączone, w sekcji Opcja w panelu po prawej stronie. Aby włączyć dodatkowe kontrole, dodaj je do listy i kliknij Zastosuj.
Aby skonfigurować Clang-Tidy z dodatkowymi opcjami, kliknij Skonfiguruj opcje sprawdzania Clang-Tidy i dodaj je w oknie, które się otworzy.
Usunięcie opcji dostosowywania 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 we wszystkich projektach utworzonych w Android Studio.
CMake w wersji 3.10.2
Menedżer pakietu SDK zawiera teraz wersję CMake 3.10.2. Pamiętaj, że Gradle nadal domyślnie używa wersji 3.6.0.
Aby określić wersję CMake, której ma używać Gradle, dodaj do pliku build.gradle
modułu następujący wiersz:
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
głównego modułu możesz teraz dołączyć „+”, aby dopasować działanie do polecenia CMake cmake_minimum_required()
.
Uwaga: nie zalecamy używania składni „+” z innymi zależnościami kompilacji, ponieważ zależności dynamiczne mogą powodować nieoczekiwane aktualizacje wersji i trudności z rozwiązywaniem różnic między wersjami.
Pakiety Android App Bundle obsługują teraz aplikacje błyskawiczne
Android Studio umożliwia teraz tworzenie pakietów aplikacji na Androida z pełną obsługą Google Play Instant. Innymi słowy, możesz teraz tworzyć i wdrażać zarówno instalowane aplikacje, jak i aplikacje błyskawiczne z jednego projektu w Android Studio, a następnie 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 standardowy sposób, ale uwzględni w pliku manifestu te właściwości, aby dodać obsługę aplikacji błyskawicznych 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ć funkcję obsługiwaną natychmiastowo, wybierając Plik > Nowy > Nowy moduł na pasku menu, a następnie Moduł funkcji dynamicznej obsługiwanej natychmiastowo w oknie Utwórz nowy moduł. 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ę uruchomienia i zaznacz pole Ogólne > Wdrożyć 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 może to jednak zająć dużo czasu. Jeśli Twój projekt używa wielu wersji kompilacji, możesz zoptymalizować jego synchronizację, ograniczając ją tylko do wybranego obecnie wariantu.
Aby włączyć tę optymalizację, musisz używać Android Studio 3.3 lub nowszej wersji z wtyczką Gradle dla Androida 3.3.0 lub nowszą. Jeśli spełniasz te wymagania, IDE poprosi Cię o włączenie tej optymalizacji podczas synchronizowania projektu. Optymalizacja jest też domyślnie włączona w przypadku nowych projektów.
Aby włączyć tę optymalizację ręcznie, kliknij Plik > Ustawienia > Eksperymentalne > Gradle (Android Studio > Ustawienia > Eksperymentalne > Gradle na komputerze Mac) i zaznacz pole wyboru Tylko synchronizacja aktywnej wersji.
Uwaga: ta optymalizacja obsługuje obecnie tylko projekty, które obejmują tylko język programowania Java. Jeśli IDE wykryje w Twoim projekcie kod Kotlin lub C++, nie włączy automatycznie tej optymalizacji i nie powinieneś jej włączać ręcznie.
Więcej informacji znajdziesz w artykule Włączanie synchronizacji projektu z jednym wariantem.
Przesyłanie szybkiej opinii
Jeśli zdecydujesz się udostępniać statystyki dotyczące korzystania z Android Studio, aby pomóc nam w ulepszaniu tej aplikacji, na pasku stanu u dołu okna IDE zobaczysz te 2 nowe ikony:
Wystarczy, że klikniesz ikonę najlepiej odzwierciedlającą Twoje obecne wrażenia z IDE. W tym celu IDE wysyła statystyki użytkowania, które pozwalają zespołowi Android Studio lepiej zrozumieć Twój nastrój. W niektórych przypadkach, na przykład gdy użytkownik zgłasza negatywne wrażenia związane z IDE, może przesłać dodatkową opinię.
Jeśli nie masz jeszcze włączonego udostępniania statystyk użytkowania, otwórz okno Ustawienia (Preferencje na komputerze Mac), przejdź do Wygląd i zachowanie > Ustawienia systemu > Udostępnianie danych i zaznacz pole wyboru 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 Android Studio 3.2 zawiera następujące zmiany i poprawki:
- Dołączona wersja Kotlina to obecnie 1.2.71.
- Domyślna wersja narzędzi do kompilacji to teraz 28.0.3.
- W bibliotece Nawigacja 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ło awarie IntelliSense i innych funkcji CLion.
- Dodawanie
SliceProvider
powodowało błędy kompilacji w projektach, które nie używały bibliotekandroidx.*
. - Niektóre testy jednostkowe Kotlina nie były uruchamiane.
- Problem z powiązaniem danych powodował błąd
PsiInvalidElementAccessException
. <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 3.2.1.
Zdecydowanie zalecamy, aby nie używać wersji Kotlin 1.2.70.
Kotlin w wersji 1.2.61 zawiera poprawkę błędu, który może powodować zawieszanie się Android Studio, ale Kotlin w wersji 1.2.70 nie zawiera tej poprawki.
Wersje Kotlin 1.2.71 i nowsze zawierają jednak tę poprawkę.
-
Zazwyczaj nie trzeba podawać wersji narzędzi do kompilacji, ale jeśli używasz wtyczki Android Gradle 3.2.0 z opcją
renderscriptSupportModeEnabled
ustawioną natrue
, musisz uwzględnić w plikubuild.gradle
każdego modułu:android.buildToolsVersion "28.0.3"
Nowości w Asystencie
Nowy asystent informuje o najnowszych zmianach w Android Studio.
Asystent otwiera się, gdy uruchomisz Android Studio po nowej instalacji lub aktualizacji, jeśli wykryje, że są nowe informacje do wyświetlenia. Możesz też otworzyć Asystenta, 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 prostsze tworzenie wysokiej jakości aplikacji, które można testować. Android Studio zawiera te aktualizacje, które umożliwiają obsługę Jetpacka: Więcej informacji znajdziesz w dokumentacji Jetpacka.
Edytor nawigacji
Nowy Edytor nawigacji integruje się z elementami nawigacji Jetpacka na Androida, aby zapewnić graficzny widok struktury nawigacji aplikacji. Ułatwia to projektowanie i wdrażanie nawigacji między miejscami docelowymi w aplikacji.
W Android Studio 3.2 Edytor nawigacji jest funkcją eksperymentalną. Aby włączyć Edytor nawigacji, kliknij Plik > Ustawienia (Android Studio > Preferencje na Macu), wybierz kategorię Experimental (Eksperymentalne) w panelu po lewej stronie, zaznacz pole obok opcji Enable Navigation Editor (Włącz Edytor nawigacji) i ponownie uruchom Android Studio.
Aby dowiedzieć się więcej, przeczytaj dokumentację Edytora nawigacji.
Migracja AndroidX
W ramach Jetpacka przenosimy biblioteki Android Support Libraries do nowej biblioteki rozszerzeń Androida, która korzysta z przestrzeni nazw androidx
. Więcej informacji znajdziesz w omówieniu AndroidX.
Android Studio 3.2 ułatwia ten proces dzięki nowej funkcji migracji.
Aby przenieść istniejący projekt do AndroidX, wybierz Refactor > Migrate to AndroidX. Jeśli masz zależności Maven, które nie zostały przeniesione do przestrzeni nazw AndroidX, system kompilacji Android Studio automatycznie przekształca te zależności projektu.
Wtyczka Androida do obsługi Gradle udostępnia te flagi globalne, które możesz ustawić w pliku gradle.properties
:
android.useAndroidX
: jeśli ustawisz wartośćtrue
, ten parametr flagi oznacza, że od teraz chcesz używać AndroidX. Jeśli flaga jest nieobecna, Android Studio działa tak, jakby flaga była ustawiona nafalse
.android.enableJetifier
: gdy ten parametr ma wartośćtrue
, flaga ta wskazuje, że chcesz, aby narzędzie (z wtyczki Android Gradle) automatycznie konwertowało istniejące biblioteki innych firm tak, jakby były napisane dla AndroidX. Jeśli flaga jest nieobecna, Android Studio działa tak, jakby flaga była ustawiona nafalse
.
Gdy używasz polecenia Migrate to AndroidX, obie flagi są ustawione na true
.
Jeśli chcesz od razu zacząć używać bibliotek AndroidX i nie musisz konwertować dotychczasowych 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 zasoby aplikacji, ale generowanie i podpisywanie pliku APK jest opóźnione do Google Play.
Nowy model dostarczania aplikacji w Google Play korzysta z Twojego pakietu aplikacji, aby generować i przesyłać pliki APK zoptymalizowane pod kątem konfiguracji urządzenia każdego użytkownika. Dzięki temu użytkownicy pobierają tylko kod i zasoby potrzebne do uruchomienia aplikacji. Nie musisz już tworzyć, podpisywać ani zarządzać wieloma plikami APK. Użytkownicy otrzymują mniejsze, bardziej zoptymalizowane pliki do pobrania.
Możesz też dodać do projektu aplikacji moduły funkcji i uwzględnić je w pakiecie aplikacji. Użytkownicy będą mogli pobierać i instalować funkcje aplikacji na żądanie.
Aby utworzyć pakiet, wybierz Utwórz > Utwórz pakiety / APK > Utwórz pakiety.
Więcej informacji, w tym instrukcje tworzenia i analizowania pakietów Android App Bundle, znajdziesz w artykule Pakiet Android App Bundle.
Przykładowe dane w edytorze układu
Wiele układów na Androida zawiera dane z czasu wykonywania, które mogą utrudniać wizualizację wyglądu i działania układu na etapie projektowania aplikacji. Teraz możesz łatwo wyświetlić podgląd widoku w Edytorze układu wypełnionego przykładowymi danymi. Gdy dodasz widok, w oknie Projektowanie pojawi się pod nim 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 wypełnisz widok.
Aby wypróbować dane przykładowe, dodaj do nowego układu element RecyclerView
, kliknij przycisk atrybutów w czasie projektowania poniżej widoku i wybierz opcję z karuzeli szablonów danych przykładowych.
Wycinki
Fragmenty to nowy sposób na umieszczanie części funkcji aplikacji na innych interfejsach na Androidzie. Na przykład dzięki Slices możesz wyświetlać funkcje i treści aplikacji w sugestiach wyszukiwarki Google.
Android Studio 3.2 zawiera wbudowany szablon, który ułatwia rozszerzanie aplikacji o nowe interfejsy Slice Provider API, a także nowe mechanizmy kontroli lint, które sprawdzają, czy podczas tworzenia sekcji korzystasz ze sprawdzonych metod.
Aby rozpocząć, kliknij prawym przyciskiem folder projektu i wybierz Nowe > Inne > Dostawca przekroju.
Aby dowiedzieć się więcej, m.in. jak przetestować interakcje z Slice, przeczytaj przewodnik dla początkujących dotyczący Slice.
Kotlin 1.2.61
Android Studio 3.2 zawiera Kotlin 1.2.61, a nowy pakiet Android SDK lepiej integruje się z językiem Kotlin. Więcej informacji znajdziesz na blogu dla deweloperów aplikacji na Androida.
IntelliJ IDEA 2018.1.6
Główne środowisko IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA do wersji 2018.1.6.
Profilatory Androida
Wypróbuj te nowe funkcje Profilatora Androida w Android Studio 3.2.
Sesje
Dane z profilowania możesz teraz zapisywać jako sesje, aby wrócić do nich później i je sprawdzić. Profilator przechowuje dane sesji do momentu ponownego uruchomienia IDE.
Gdy rejestrujesz śledzenie metody lub wykonujesz zrzut stosu, IDE dodaje te dane (wraz z aktywizacją sieci aplikacji) jako osobny wpis do bieżącej sesji. Możesz łatwo przełączać się między nagraniami, aby porównywać dane.
Śledzenie systemu
W sekcji Profilowanie procesora wybierz nową konfigurację Śledzenia systemu, aby sprawdzić aktywność wątków procesora systemowego urządzenia. Ta konfiguracja śledzenia jest oparta na systrace
i przydaje się do badania problemów na poziomie systemu, takich jak problemy z interfejsem użytkownika.
Korzystając z tej konfiguracji śledzenia, możesz wizualnie oznaczać ważne rutiny kodu na osi czasu w profilu, instrumentując kod C/C++ za pomocą natywnego interfejsu API śledzenia lub kod Java za pomocą klasy Trace
.
Sprawdzanie odwołań JNI w aplikacji Memory Profiler
Jeśli wdrażasz aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, możesz teraz sprawdzać przydzielanie pamięci dla kodu JNI aplikacji za pomocą profilowania pamięci.
Gdy aplikacja jest uruchomiona, wybierz fragment osi czasu, który chcesz sprawdzić, a potem w menu nad listą klas kliknij Stos JNI, jak pokazano na rysunku poniżej. Następnie możesz przeglądać obiekty w pniu, tak jak zwykle, oraz podwójnie klikać obiekty na karcie Stos wywołania alokacji, aby sprawdzić, gdzie w Twoim kodzie przydzielane i zwalniane są odwołania JNI.
Importowanie, eksportowanie i przeglądanie plików z zrzutem stosu pamięci
Teraz możesz importować, eksportować i przeglądać pliki .hprof
z pamięci podręcznej utworzone za pomocą profilowania pamięci.
Zaimportuj plik .hprof
, klikając Rozpocznij nową sesję profilu
w panelu Sesje profilu i wybierając Wczytaj z pliku. Następnie możesz sprawdzić dane w profilu pamięci tak jak w przypadku dowolnego innego zrzutu pamięci.
Aby zapisać dane z zrzutu stosu, aby przejrzeć je później, użyj przycisku Eksportuj zrzut stosu po prawej stronie pozycji Zrzut stosu w panelu Sesjekcje. 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 wybranej konfiguracji uruchomienia zaznacz pole Rozpocznij rejestrowanie śledzenia metody po uruchomieniu.
- W menu wybierz konfigurację nagrywania na procesorze, której chcesz użyć.
- 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 CPU Profiler możesz wyeksportować dane do pliku .trace
, aby udostępnić go innym użytkownikom 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 przeglądać pliki .trace
utworzone za pomocą interfejsu Debug API lub profilowania procesora. (obecnie nie można importować nagrań ścieżki systemowej).
Zaimportuj plik z wykresami, klikając Rozpocznij nową sesję profilowania w panelu Sesje w profilu i wybierając Wczytaj z pliku. Następnie możesz sprawdzić dane w profilu CPU w sposób podobny do zwykłego, z tymi wyjątkami:
- Aktywność procesora nie jest reprezentowana na osi czasu procesora.
- Oś czasu aktywności wątku wskazuje tylko, gdzie są dostępne dane śladu dla poszczególnych wątków, a nie ich stanów (np. wykonywania, oczekiwania lub uśpienia).
Rejestrowanie aktywności procesora za pomocą interfejsu Debug API
Możesz teraz rozpocząć i zatrzymać nagrywanie aktywności procesora w profilu CPU, instrumentując aplikację za pomocą interfejsu Debug API. Po wdrożeniu aplikacji na urządzeniu profilator automatycznie zaczyna rejestrować aktywność procesora, gdy aplikacja wywołuje funkcję startMethodTracing(String tracePath)
, a przestaje rejestrować, gdy aplikacja wywołuje funkcję stopMethodTracing()
. Podczas rejestrowania aktywności procesora, która jest wywoływana za pomocą tego interfejsu API, profil procesora pokazuje Debug API jako wybraną konfigurację nagrywania procesora.
Energy Profiler
Narzędzie Energy Profiler 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 aktywacji, alarmy i zadania.
Gdy uruchomisz aplikację na połączonym urządzeniu lub w Emulatorze Androida z Androidem 8.0 (API 26) lub nowszym, profilowanie zużycia energii pojawi się jako nowy wiersz u dołu okna Profilowanie.
Kliknij wiersz Energooszczędność, aby zmaksymalizować widok Profil energooszczędności. Umieść wskaźnik myszy na pasku na osi czasu, aby wyświetlić podział zużycia energii na zasoby procesora, sieci i lokalizacji (GPS), a także odpowiednie zdarzenia systemowe.
Zdarzenia systemowe, które wpływają na zużycie energii, są wskazywane na osi czasu System poniżej osi czasu Energa. Szczegóły zdarzeń systemowych w wybranym zakresie czasu są widoczne na panelu zdarzeń, gdy wybierzesz zakres czasu na osi czasu Energy.
Aby wyświetlić stos wywołań i inne szczegóły zdarzenia systemowego, takiego jak blokada wybudzania, wybierz je w panelu zdarzeń. Aby przejść do kodu odpowiedzialnego za zdarzenie systemowe, kliknij dwukrotnie wpis w zbiorze wywołań.
Sprawdzanie lintowania
Android Studio 3.2 zawiera wiele nowych i ulepszonych funkcji do sprawdzania błędów.
Nowe sprawdzania 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.
Lint sprawdza interoperacyjność Javy i Kotlina
Aby mieć pewność, że kod Java będzie dobrze współpracować z kodem Kotlin, nowe kontrole lint egzekwują sprawdzone metody opisane w przewodniku po interoperacyjności Kotlina. Przykłady takich kontroli to sprawdzanie obecności adnotacji Nullability, używanie twardych słów kluczowych Kotlina i umieszczanie parametrów lambda na końcu.
Aby włączyć te kontrole, kliknij Plik > Ustawienia (Android Studio > Preferencje na Macu), otwórz okno Ustawienia, przejdź do sekcji Edytor > Inspekcja > Android > Lint > Współpraca > Współpraca z Kotlinem i wybierz reguły, które chcesz włączyć.
Aby włączyć te kontrole w przypadku kompilacji w wierszu poleceń, dodaj do pliku
build.gradle
następujące informacje:
android {
lintOptions {
check 'Interoperability'
}
}
Sprawdzanie wycinków przez lint
Nowe kontrole lint dla Slices pomagają zapewnić prawidłowe tworzenie Slices. Na przykład sprawdzanie kodu ostrzega Cię, jeśli nie przypisałeś głównego działania do fragmentu.
Nowy obiekt Gradle
Użyj nowego zadania Gradle lintFix
, aby zastosować wszystkie bezpieczne
poprawki sugerowane przez narzędzie lint bezpośrednio w źródle kodu. Przykład kontroli lint, która sugeruje bezpieczne rozwiązanie problemu: SyntheticAccessor
.
Aktualizacje metadanych
Zaktualizowano różne metadane, np. weryfikację usługi, aby działały one w przypadku kontroli lint na Androidzie 9 (poziom interfejsu API 28).
Ostrzeżenie, jeśli używasz linta na nowej wersji
Lint zapisuje teraz, z którego wariantu i której wersji został zapisany poziom odniesienia, a także ostrzega, jeśli uruchomisz go na innym wariancie niż ten, z którego został utworzony.
Ulepszenia dotychczasowych kontroli lint
Android Studio 3.2 zawiera wiele ulepszeń dotychczasowych kontroli lint. Na przykład sprawdzanie cyklu zasobów dotyczy teraz dodatkowych typów zasobów, a detektor tłumaczeń może w bieżącym czasie znajdować brakujące tłumaczenia w edytorze.
ułatwienie znajdowania identyfikatorów problemów,
Identyfikatory problemów są teraz wyświetlane w większej liczbie miejsc, m.in. w oknie Wyniki inspekcji. Dzięki temu łatwiej znajdziesz informacje potrzebne do włączenia lub wyłączenia konkretnych kontroli za pomocą lintOptions
w sekcji build.gradle
.
Więcej informacji znajdziesz w artykule Konfigurowanie opcji lint za pomocą Gradle.
Wiązanie danych w wersji 2
Powiązanie danych w wersji 2 jest teraz domyślnie włączone i zgodne z wersją 1. Oznacza to, że jeśli masz biblioteki zależne skompilowane za pomocą wersji 1, możesz ich używać w projektach korzystających z powiązań danych w wersji 2. Pamiętaj jednak, że projekty korzystające z wersji 1 nie mogą używać zależności skompilowanych przy użyciu wersji 2.
Odlukrzanie D8
W Android Studio 3.1 zintegrowaliśmy z narzędziem D8 krok desugaringu jako funkcję eksperymentalną, co pozwoliło skrócić ogólny czas kompilacji. W Android Studio 3.2 desugaring za pomocą D8 jest domyślnie włączony.
Nowy kompresor kodu
R8 to nowe narzędzie do kompresowania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji podglądu R8, w pliku gradle.properties
projektu dodaj:
android.enableR8 = true
zmiana domyślnych interfejsów ABI w przypadku zestawów wielu plików APK;
Gdy tworzysz wiele plików APK, z których każdy jest kierowany na inny interfejs ABI, w domyślnym ustawieniu plugin nie generuje już plików APK dla tych interfejsów ABI: mips
, mips64
i armeabi
.
Jeśli chcesz skompilować pliki APK przeznaczone dla tych ABI, musisz użyć NDK r16b lub niższego i w pliku build.gradle
podać te ABI, jak pokazano poniżej:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Uwaga: ta zmiana zachowania jest również uwzględniona w Android Studio 3.1 RC1 i wyższych wersjach.
Ulepszone funkcje edytora w przypadku plików kompilacji CMake
Jeśli używasz CMake do dodawania kodu C i C++ do projektu, Android Studio zawiera teraz ulepszone funkcje edytora, które ułatwiają edytowanie skryptów kompilacji CMake, np.:
- Podświetlanie składni i uzupełnianie kodu: IDE podświetla teraz i podpowiada uzupełnienie kodu dla typowych poleceń CMake. Dodatkowo możesz przejść do pliku, klikając go i naciskając klawisz Control (Command na Macu).
- Formatowanie kodu: możesz teraz użyć opcji formatowania kodu w IntelliJ, aby zastosować style kodu do skryptów kompilacji CMake.
- Bezpieczne refaktoryzacja: wbudowane narzędzia refaktoryzacji w IDE sprawdzają teraz, czy zmieniasz nazwę lub usuwasz pliki, do których odwołujesz się w skryptach kompilacji CMake.
Przechodzenie do zewnętrznych plików nagłówka
W poprzednich wersjach Android Studio w oknie Projekt można było przeglądać i przeglądać tylko pliki nagłówka należące do bibliotek utworzonych na podstawie lokalnego projektu. W tej wersji możesz też wyświetlać i przeglądać pliki nagłówka zawarte w zewnętrznych bibliotekach C/C++, które zaimportujesz do projektu aplikacji.
Jeśli w projekcie masz już uwzględniony kod i biblioteki C/C++, otwórz okno Projekt po lewej stronie środowiska IDE, klikając w menu głównym Widok > Okna narzędzia > Projekt, a potem w menu kliknij Android. W katalogu cpp wszystkie nagłówki, które mieszczą się w zakresie projektu aplikacji, są uporządkowane w węźle include dla każdego z Twoich lokalnych zależności biblioteki C/C++, jak pokazano poniżej.
Domyślnie włączony natywny multideks
W poprzednich wersjach Android Studio natywny multideks był włączany podczas wdrażania wersji debugowania aplikacji na urządzenie z Androidem na poziomie API 21 lub nowszym. Niezależnie od tego, czy wdrażasz aplikację na urządzeniu, czy kompilujesz plik APK na potrzeby wydania, wtyczka Androida do Gradle umożliwia korzystanie z natywnego multideksu we wszystkich modułach, w których ustawiono wartość minSdkVersion=21
lub nowszą.
AAPT2 przeniesione do repozytorium Maven Google
Począwszy od wersji Android Studio 3.2 źródło AAPT2 (Android Asset Packaging Tool 2) to repozytorium Maven Google.
Aby korzystać z AAPT2, sprawdź, czy w pliku build.gradle
masz zależność google()
, jak pokazano tutaj:
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
Z Android Studio usunięto preferencję Konfiguruj na żądanie.
Android Studio nie przekazuje już argumentu --configure-on-demand
do Gradle.
Asystent połączenia ADB
Nowy Asystent połączenia ADB zawiera szczegółowe instrukcje konfigurowania i używania urządzenia za pomocą połączenia Android Debug Bridge (ADB).
Aby uruchomić asystenta, wybierz Narzędzia > Asystent połączenia.
Asystent połączenia ADB zawiera instrukcje, kontekstowe elementy sterujące i listę połączonych urządzeń na serii stron w panelu Asystent.
Ulepszenia emulatora
Teraz w dowolnym momencie możesz zapisywać i wczytywać zrzuty urządzenia AVD (urządzenie wirtualne z Androidem) w emulatorze Androida, dzięki czemu możesz szybko i łatwo przywrócić emulowane urządzenie do znanego stanu na potrzeby testowania. Podczas edytowania urządzenia AVD za pomocą menedżera urządzenia AVD możesz określić, który zrzut urządzenia AVD ma być wczytany po jego uruchomieniu.
Elementy sterujące służące do zapisywania, wczytywania i zarządzania snapshotami AVD znajdują się teraz na karcie Snapshoty w oknie Rozszerzone opcje 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 Android Studio 3.1 zawiera te zmiany i poprawki:
- Dołączony Kotlin ma teraz wersję 1.2.50.
-
Nowe projekty są tworzone za pomocą artefaktów
kotlin-stdlib-jdk* artifacts
, a niekotlin-stdlib-jre*
, które są wycofywane. - Ulepszono analizowanie reguł ProGuard w wersji R8.
- Naprawiono te błędy:
-
Próba uruchomienia klasy głównej Kotlina zakończyła się niepowodzeniem z powodu błędu:
"Error: Could not find or load main class..."
- R8 wchodził w nieskończoną pętlę podczas wykonywania pewnych optymalizacji.
- Użycie polecenia Ponowne uruchomienie nieudanych testów w oknie Uruchom czasami nieprawidłowo zwracało komunikat „Nie znaleziono żadnych testów”.
-
D8 nie obsługiwało poprawnie instancji
invoke-virtual
, co powodowało awarię z błędemVerifyError
:invoke-super/virtual can't be used on private method
-
Kompilator powiązań danych był zależny od starszej wersji
com.android.tools:annotations
. Kompilator korzysta teraz z uwag narzędzi w projekcie bazowym, jeśli są dostępne. - Android Studio ulega awarii podczas przechodzenia między fragmentami podczas korzystania z profilujących.
- Podczas debugowania układu z polem tekstowym wystąpił błąd debugera.
- D8 nie może odczytać niektórych plików ZIP zawierających znaki specjalne.
3.1.3 (czerwiec 2018 r.)
Ta aktualizacja Android Studio 3.1 zawiera poprawki tych błędów:
- Wycieki pamięci powodowały, że Android Studio działało wolno i nie reagowało po użyciu edytora układu. Ta aktualizacja zawiera poprawki dla większości z tych problemów. Wkrótce udostępnimy kolejną aktualizację, która obejmie dodatkowe wycieki pamięci.
- Niektóre aplikacje utworzone za pomocą D8 ulegały awarii na niektórych tabletach Verizon Ellipsis.
-
Instalacja aplikacji skompilowanych 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 skompilowane za pomocą D8, ulegały awarii na urządzeniach z Androidem 4.4 (poziom interfejsu API 19).
-
Czasami nie można było uruchomić Android Studio, ponieważ wystąpił błąd
ProcessCanceledException
podczas inicjowania klasycom.intellij.psi.jsp.JspElementType
.
3.1.2 (kwiecień 2018 r.)
Ta aktualizacja Android Studio 3.1 zawiera poprawki tych błędów:
- W niektórych przypadkach aplikacja Android Studio zawieszała się na czas nieokreślony podczas zamykania.
-
Kompilacje skonfigurowane za pomocą zbiorów źródeł zakończyły się niepowodzeniem z komunikatem o następującej treści, gdy włączona była funkcja Instant Run:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Gdy włączona była funkcja Instant Run, kompilacja nowych projektów w języku Kotlin nie powiodła się, gdy została uruchomiona przez polecenie Uruchom.
-
Podczas edytowania pliku
build.gradle
czasami występowało zauważalne opóźnienie między wpisaniem znaku a jego wyświetleniem na ekranie. -
W niektórych projektach z dużą liczbą modułów lub zewnętrznych zależności wystąpiły błędy kompilacji podczas dekodowania. Wyświetlany był następujący komunikat o błędzie:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- Obliczenie głównej listy DEX w D8 nie uwzględniało niektórych wywołań przez odbicie.
Ta aktualizacja zawiera też zmiany, które w niektórych sytuacjach znacznie przyspieszają sprawdzanie kodu za pomocą Gradle.
3.1.1 (kwiecień 2018 r.)
Ta aktualizacja Android Studio 3.1 zawiera poprawki tych błędów:
-
W niektórych przypadkach, gdy projekt utworzony w Android Studio 3.0 został otwarty po raz pierwszy w Android Studio 3.1, zadanie Make obsługujące Gradle zostało usunięte z obszaru Przed uruchomieniem w sekcji Konfiguracje uruchamiania/debugowania. W efekcie projekty nie były kompilowane po kliknięciu przycisku Uruchom lub Debugowanie, co z kolei powodowało błędy, takie jak wdrażanie nieprawidłowych plików APK i awarie podczas korzystania z Instant Run.
Aby rozwiązać ten problem, w Android Studio 3.1.1 dodano zadanie Make uwzględniające Gradle do konfiguracji uruchomienia w przypadku projektów, w których brakuje tego wpisu. 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 zaawansowane profilowanie.
- Android Studio zawiesiło się po kliknięciu Kompiluj wersje.
- Pliki AAR (archiwum Androida) zostały wyodrębnione dwukrotnie: raz podczas procesu synchronizacji Gradle i raz podczas procesu kompilacji Gradle.
- W niektórych obiektach wektorowych zaimportowanych z plików SVG brakowało elementów.
-
Ostrzeżenie dotyczące wycofania konfiguracji zależności
compile
zostało zaktualizowane i zawiera teraz lepsze wskazówki dotyczące konfiguracjiimplementation
iapi
. Szczegółowe informacje o przechodzeniu z konfiguracjicompile
znajdziesz w dokumentacji dotyczącej nowych konfiguracji zależności.
Kodowanie/IDE
IntelliJ 2017.3.3
Podstawowe środowisko programistyczne Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2017.3.3. Ulepszenia obejmują m.in. 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 wersji JetBrains dotyczących IntelliJ IDEA w wersjach 2017.2 i 2017.3, a także w informacjach o wersji JetBrains dotyczących aktualizacji z poprawkami błędów.
Ulepszenia edytora kodu SQL w pokoju
Korzystając z biblioteki bazy danych Room, możesz korzystać z kilku ulepszeń edytowania kodu SQL:
- Wskazówki kodu w ramach
Query
rozumie tabele SQL (elementy), kolumny, parametry zapytania, aliasy, złączenia, podzapytania i klauzule WITH. - Wyróżnianie składni SQL działa.
- Możesz kliknąć prawym przyciskiem myszy nazwę tabeli w SQL i zmienić jej nazwę, co spowoduje też przepisanie odpowiedniego kodu Java lub Kotlin (w tym m.in. typu zwracanego przez zapytanie). 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życia kodu SQL są wyświetlane po kliknięciu Znajdź użycia (kliknij prawym przyciskiem myszy i w menu kontekstowym wybierz Znajdź użycia).
- Aby przejść do deklaracji elementu SQL w kodzie Java lub Kotlin, możesz przytrzymać klawisz Control (Command na Macu), a następnie kliknąć element.
Informacje o używaniu SQL w Room znajdziesz w artykule Zapisywanie danych w lokalnej bazie danych za pomocą Room.
Zmiany w wiązaniu danych
Ta aktualizacja zawiera kilka ulepszeń dotyczących wiązania danych:
-
W wyrażeniach powiązań danych możesz teraz używać obiektu
LiveData
jako pola obserwowalnego. KlasaViewDataBinding
zawiera teraz nową metodęsetLifecycle()
, której używasz do obserwowania obiektówLiveData
. -
Klasa
ObservableField
może teraz przyjmować inne obiektyObservable
w swoim konstruktorze. -
Możesz wyświetlić podgląd nowego kompilatora przyrostowego dla klas wiązania danych. Szczegółowe informacje o tym nowym kompilatorze oraz 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 wiązania po skompilowaniu aplikacji, zamiast generować je za każdym razem. Może to znacznie poprawić wydajność 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 zapewnia kilka korzyści, w tym:
- Szybsze dekodowanie
- Mniejsze wykorzystanie pamięci
- Ulepszone generowanie kodu (lepsza alokacja rejestrów, inteligentniejsze tabele ciągów znaków)
- ulepszone debugowanie podczas przechodzenia po kodzie,
Aby skorzystać z tych korzyści, nie musisz wprowadzać żadnych zmian w kodzie ani w procesie programowania, chyba że wcześniej ręcznie wyłączysz kompilator D8.
Jeśli w elementach gradle.properties
i android.enableD8
flaga android.enableD8
ma wartość false
, usuń tę flagę lub ustaw ją na true
:
android.enableD8=true
Szczegółowe informacje znajdziesz w artykule Nowy kompilator DEX.
Przyrostowe desugaring
W przypadku projektów, które korzystają z funkcji języka Java 8, domyślnie włączone jest stopniowe usuwanie cukru, co może skrócić czas kompilacji.
Desugaring konwertuje syntaktyczne słodziki do postaci, którą kompilator może przetworzyć wydajniej.
Możesz wyłączyć przyrostowe usuwanie cukru, określając w pliku gradle.properties
projektu te opcje:
android.enableIncrementalDesugaring=false
Uproszczone okno danych wyjściowych
Konsola Gradle została zastąpiona oknem Generowanie, które zawiera karty Synchronizacja i Generowanie.
Szczegółowe informacje o używaniu nowego, uproszczonego okna Generowanie znajdziesz w artykule Monitorowanie procesu generowania.
Aktualizacje zbiorcze i indeksowanie równoległość
Procesy synchronizacji Gradle i indeksowania IDE są teraz znacznie wydajniejsze, co pozwala zaoszczędzić czas tracony na zbędne operacje indeksowania.
C++ i LLDB
Wprowadziliśmy wiele ulepszeń jakości i wydajności na etapach kodowania, synchronizacji, kompilowania i debugowania w ramach rozwoju w C++. Wprowadziliśmy następujące udoskonalenia:
-
Jeśli pracujesz nad dużymi projektami C++, zauważysz znaczne skrócenie czasu potrzebnego na tworzenie symboli. Czas synchronizacji jest też znacznie krótszy w przypadku dużych projektów.
-
Poprawiliśmy wydajność kompilacji i synchronizacji za pomocą CMake dzięki bardziej agresywnemu ponownemu używaniu wyników z pamięci podręcznej.
-
Dodanie formaterów („ładnych drukarek”) dla większej liczby struktur danych C++ ułatwia odczytywanie danych wyjściowych LLDB.
-
LLDB działa teraz tylko na Androidzie 4.1 (poziom interfejsu API 16) i nowszych.
Uwaga: debugowanie natywne w Android Studio 3.0 lub nowszej wersji nie działa w systemie Windows w wersji 32-bitowej. Jeśli używasz 32-bitowej wersji systemu Windows i musisz debugować kod natywny, użyj Android Studio 2.3.
Kotlin
Kotlin został uaktualniony do wersji 1.2.30
Android Studio 3.1 zawiera Kotlin w wersji 1.2.30.
Kod Kotlina jest teraz analizowany za pomocą kontroli lint w wierszu poleceń
Uruchamianie lint z wiersza poleceń analizuje teraz klasy Kotlina.
W przypadku każdego projektu, w którym chcesz uruchomić lint, w pliku build.gradle
najwyższego poziomu musisz uwzględnić repozytorium Maven firmy Google. Repozytorium Maven jest już uwzględnione w przypadku projektów utworzonych w Android Studio 3.0 lub nowszej wersji.
Narzędzia do pomiaru skuteczności
Przykładowe natywne procesy C++ z profilowaniem procesora
Narzędzie Profilowanie procesora zawiera teraz domyślną konfigurację do rejestrowania próbkowanych śladów wątków natywnych aplikacji. Aby użyć tej konfiguracji, wdrożyć aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, a potem w menu rozwijanym konfiguracji nagrywania w Profilu procesora wybrać opcję Z próbkowaniem (natywna). Następnie nagraj i przejrzyj ś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 Javy, wybierz konfigurację Sampled (Java) lub Instrumented (Java).
Filtrowanie śladów procesora, wyników alokacji pamięci i zrzutów sterty
Profilowanie procesora i profilowanie pamięci zawierają funkcję wyszukiwania, która umożliwia filtrowanie wyników z rejestrowania śledzenia metody, alokacji pamięci lub zrzutu stosu.
Aby przeprowadzić wyszukiwanie, w prawym górnym rogu okna kliknij Filtr , wpisz zapytanie i naciśnij klawisz Enter.
Wskazówka: pole wyszukiwania możesz też otworzyć, naciskając Ctrl + F (Command + F na Macu).
Na karcie Wykres słupkowy w profilu CPU stosy wywołań zawierające metody związane z Twoim zapytaniem wyszukiwania są wyróżnione i przesuwane na lewą stronę wykresu.
Więcej informacji o filtrowaniu według nazwy metody, klasy lub pakietu znajdziesz w artykule Rejestrowanie i przeglądanie dzienników metod.
Karta Request (Żądanie) w profilu sieci
Narzędzie Network Profiler zawiera teraz kartę Request (Żądanie), która zawiera szczegółowe informacje o żądaniach sieci w wybranym okresie. W poprzednich wersjach Network Profiler udostępniał tylko informacje o odpowiedziach sieci.
Widok wątku w Profilerze sieci
Po wybraniu fragmentu osi czasu w profilu sieci możesz wybrać jedną z tych kart, aby zobaczyć więcej szczegółów dotyczących aktywności sieci w wybranym przedziale czasowym:
- Widok połączenia: zawiera te same informacje co poprzednie wersje Android Studio. Wyświetla listę plików wysłanych lub odebranych w wybranej części osi czasu na wszystkich wątkach procesora aplikacji. W przypadku każdej prośby możesz sprawdzić rozmiar, typ, stan i czas trwania transmisji.
- Widok wątku: wyświetla aktywność sieci w przypadku każdego wątku procesora aplikacji. Ten widok umożliwia sprawdzenie, które wątki Twojej aplikacji odpowiadają za poszczególne żądania sieci.
Inspektor układu
Inspektor układu zyskał nowe funkcje, w tym niektóre funkcje wcześniej dostępne w wycofanych narzędziach Hierarchy Viewer i Pixel Perfect:
- przyciski powiększania i skróty klawiszowe służące do nawigacji i sprawdzania układów;
- Nakładka siatki referencyjnej
- możliwość załadowania obrazu referencyjnego i używania go jako nakładki (przydatne do porównywania układu z makupem interfejsu);
- Wyrenderuj podgląd poddrzewa, aby wyodrębnić widok w skomplikowanym układzie.
Edytor układu
Paleta w Edytorze układu została znacznie ulepszona:
- Reorganizacja kategorii widoków i układów.
- Nowa kategoria Ogólne z widokami i schematami, 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 dotyczącej konkretnego widoku lub elementu układu.
Aby przekonwertować widok lub układ na inny typ widoku lub układu, możesz użyć nowego polecenia Konwertuj widok w drzewie komponentów lub edytorze projektu.
Teraz możesz łatwo tworzyć ograniczenia dotyczące elementów znajdujących się w pobliżu wybranego widoku za pomocą nowych przycisków Utwórz połączenie w inspektorze widoku u góry okna Atrybuty.
Uruchamianie i uruchamianie błyskawiczne
Zwiększono spójność działania opcji Użyj tego samego wyboru w przyszłych wersjach w oknie Wybieranie celu wdrożenia. Jeśli włączona jest opcja Użyj tych samych opcji, okno Wybierz cel wdrożenia otworzy się tylko przy pierwszym użyciu polecenia Uruchom i będzie się otwierać do momentu odłączenia wybranego urządzenia.
Jeśli kierujesz aplikację na urządzenie z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, Instant Run może wdrażać zmiany w zasobach bez konieczności jej ponownego uruchamiania. Jest to możliwe, ponieważ zasoby znajdują się w podzielonym pliku APK.
Emulator
Informacje o nowościach i zmianach w emulatorze od wersji Android Studio 3.0 znajdziesz w notatkach do wersji 27.0.2 do 27.1.12.
Najważniejsze ulepszenia:
- migawki Szybkiego uruchamiania, które służą do zapisywania stanu emulatora i szybszego uruchamiania, z możliwością użycia polecenia Zapisz teraz do zapisania niestandardowego stanu uruchamiania.
- Ekran emulatora bez okna
- Obrazy systemowe dla Androida 8.0 (poziom interfejsu API 26), Androida 8.1 (poziom interfejsu API 27) i Androida P w wersji dla deweloperów.
Ulepszenia dotyczące interfejsu i wrażeń użytkownika
więcej etykiet, skrótów klawiszowych i przydatnych wiadomości;
Dodaliśmy etykietki narzędzi i przydatne komunikaty w wielu miejscach w Android Studio.
Aby zobaczyć skróty klawiszowe do wielu poleceń, najedź kursorem na przycisk, aż pojawi się podpowiedź.
Usunięcie menu Narzędzia > Android
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 do menu Narzędzia.
- Polecenie Synchronizuj projekt z plikami Gradle zostało przeniesione do menu Plik.
- Polecenie Device Monitor zostało usunięte, jak opisano poniżej.
Monitor urządzenia dostępny z poziomu wiersza poleceń
W Android Studio 3.1 Monitor urządzenia pełni mniejszą rolę niż wcześniej. W wielu przypadkach funkcje dostępne w Monitorze urządzeń są teraz obsługiwane przez nowe i ulepszone narzędzia.
Więcej informacji o uruchamianiu Monitora urządzeń z wiersza poleceń oraz o narzędziach dostępnych w tym narzędziu 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ę Android Studio, może pojawić się okno błędu aktualizacji z komunikatem „Znaleziono pewne konflikty w obszarze instalacji”. Zignoruj ten błąd i kliknij Anuluj, aby wznowić instalację.
3.0.1 (listopad 2017 r.)
To drobna aktualizacja Android Studio 3.0, która zawiera ogólne poprawki błędów i ulepszenia wydajności.
Wtyczka Androida do obsługi Gradle 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 nowego wtyczki w przypadku tych dużych projektów należy pamiętać o tych kwestiach:
- Skrócenie czasu 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 kompilujesz.
- szybsze czasy kompilacji przyrostowej po wprowadzeniu prostych zmian w kodzie lub zasobach;
Uwaga: te ulepszenia wymagały wprowadzenia istotnych zmian, które powodują, że niektóre zachowania wtyczki, DSL i interfejsy API przestają działać. Przejście na wersję 3.0.0 może wymagać wprowadzenia zmian w plikach kompilacji i wtyczkach Gradle.
Ta wersja zawiera też:
- Obsługa Androida 8.0.
- Obsługa tworzenia osobnych plików APK na podstawie zasobów językowych.
- Obsługa bibliotek 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 narzędzi ndk-build i cmake.
- Zwiększona szybkość synchronizacji Gradle.
- AAPT2 jest teraz domyślnie włączony.
- Korzystanie z usługi
ndkCompile
jest teraz bardziej ograniczone. Zamiast tego powinieneś skompilować kod natywny, który chcesz zapakować do pliku APK, za pomocą CMake lub ndk-build. Więcej informacji znajdziesz w artykule Przenoszenie z ndkcompile.
Więcej informacji o zmianach znajdziesz w informacjach o wersji wtyczki Androida do Gradle.
Jeśli chcesz przejść na nową wersję wtyczki, przeczytaj artykuł Przejście na wtyczkę Androida do obsługi Gradle w wersji 3.0.0.
Obsługa Kotlina
Zgodnie z ogłoszeniem z Google I/O 2017 język programowania Kotlin jest teraz oficjalnie obsługiwany na Androidzie. W tej wersji Android Studio obsługuje język Kotlin w ramach tworzenia aplikacji na Androida.
Kotlina możesz włączyć w projekcie, konwertując plik Java na Kotlina (kliknij Kod > Konwertuj plik Java na plik Kotlina) lub tworząc nowy projekt z użyciem Kreatora nowego projektu.
Na początek dowiedz się, jak dodać Kotlina do projektu.
Obsługa funkcji języka Java 8
Możesz teraz używać niektórych funkcji języka Java 8 i korzystać z bibliotek utworzonych w Java 8. Jack nie jest już wymagany. Najpierw musisz wyłączyć Jacka, aby korzystać z ulepszonej obsługi Java 8 wbudowanej w domyślny zestaw narzędzi.
Aby zaktualizować projekt, aby obsługiwał nową platformę językową Java 8, zaktualizuj Zgodność ze źródłem i Zgodność z docelowym językiem do wersji 1.8 w oknie Struktura projektu (kliknij Plik > Struktura projektu). Więcej informacji znajdziesz w artykule Korzystanie z funkcji języka Java 8.
Profilator Androida
Nowy profil Androida zastępuje narzędzie Monitorowanie Androida i zawiera nowy zestaw narzędzi do pomiaru wykorzystania procesora, pamięci i sieci przez aplikację w czasie rzeczywistym. Możesz przeprowadzać śledzenie metody na podstawie próbek, aby mierzyć czas wykonywania kodu, tworzyć zrzuty stosu, wyświetlać alokacje pamięci i sprawdzać szczegóły plików przesyłanych przez sieć.
Aby otworzyć profil, kliknij Widok > okna narzędzia > Profil Androida (lub kliknij Profil Androida na pasku narzędzi).
Czasowa linia zdarzeń u góry okna zawiera zdarzenia dotykowe, wciśnięcia klawiszy i zmiany aktywności, dzięki czemu łatwiej zrozumiesz inne zdarzenia dotyczące skuteczności na osi czasu.
Uwaga: widok Logcat został również przeniesiony do osobnego okna (wcześniej znajdował się w Android Monitor, który został usunięty).
Na osi czasu podglądu w profilu Androida kliknij PROCESOR, PAMIĘĆ lub SIEĆ, aby uzyskać dostęp do odpowiednich narzędzi profilowania.
Profiler CPU
Profilator procesora pomaga analizować wykorzystanie wątku procesora przez aplikację poprzez wywołanie próbki lub zinstrumentowanego śledzenia procesora. Następnie możesz rozwiązywać problemy z wydajnością procesora, korzystając z różnych widoków i filtrów danych.
Więcej informacji znajdziesz w przewodniku po narzędziu CPU Profiler.
Memory Profiler
Narzędzie Memory Profiler pomaga wykrywać przecieki pamięci i zmiany pamięci, które mogą powodować zacinanie, zawieszanie się i nawet awarie aplikacji. Pokazuje on w czasie rzeczywistym wykres wykorzystania pamięci przez aplikację, umożliwia przechwycenie zrzutu stosu, wymuszanie zbiorczego usuwania elementów z pamięci oraz śledzenie przydziału pamięci.
Więcej informacji znajdziesz w przewodniku po narzędziu Profilerator pamięci.
Network Profiler
Profilator sieci umożliwia monitorowanie aktywności sieciowej aplikacji, sprawdzanie ładunku każdego żądania sieciowego i powrót do kodu, który wygenerował żądanie sieciowe.
Więcej informacji znajdziesz w przewodniku po narzędziu Network Profiler.
Profilowanie i debugowanie pliku APK
Android Studio umożliwia teraz profilowanie i debugowanie dowolnego pliku APK bez konieczności kompilowania go z projektu w Android Studio, o ile plik APK został skompilowany w celu włączenia debugowania i masz dostęp do plików źródłowych i symboli debugowania.
Aby rozpocząć, na ekranie powitalnym Android Studio kliknij Profilowanie lub debugowanie pliku APK. Jeśli projekt jest już otwarty, na pasku menu kliknij Plik > Profil lub debugowanie pliku APK. Wyświetla 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 Java 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 na urządzeniu, które jest połączone z komputera, oraz przesyłanie plików między urządzeniem a kompjuterem. Zastępuje to narzędzie do obsługi systemu plików dostępne w DMS.
Aby otworzyć, kliknij Widok > Okna narzędzia > Eksplorator plików urządzenia.
Więcej informacji znajdziesz w przewodniku po Eksploratorze plików urządzenia.
Obsługa aplikacji błyskawicznych
Nowe wsparcie dla aplikacji natychmiastowych na Androida umożliwia tworzenie takich aplikacji 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łów, które ułatwia dodanie obsługi aplikacji błyskawicznych w dotychczasowym projekcie. Jeśli na przykład chcesz przerobić projekt, aby umieścić niektóre klasy w module funkcji aplikacji błyskawicznej, wybierz te klasy w oknie Projekt i kliknij Refactor > Modularize (Refaktoryzacja > Modularyzacja). W wyświetlonym oknie wybierz moduł, do którego mają trafić zajęcia, i kliknij OK.
Gdy będziesz gotowy do przetestowania swojej aplikacji błyskawicznej, możesz utworzyć i uruchomić moduł aplikacji błyskawicznej na połączonym urządzeniu, podając adres URL aplikacji błyskawicznej w opcjach konfiguracji uruchomienia: wybierz Uruchom > Edytuj konfiguracje, wybierz moduł aplikacji błyskawicznej, a następnie podaj adres URL w sekcji Opcje uruchamiania.
Więcej informacji znajdziesz w artykule Aplikacje błyskawiczne na Androida.
Moduły Android Things
nowe szablony Androida Things w kreatorach Nowy projekt i Nowy moduł, które ułatwiają rozpoczęcie tworzenia aplikacji na urządzenia IoT z Androidem;
Więcej informacji znajdziesz w artykule o tworzeniu projektu Android Things.
Kreator ikon adaptacyjnych
Image Asset Studio obsługuje teraz wektory do rysowania i umożliwia tworzenie adaptacyjnych ikon na ekranie startowym dla Androida 8.0, a jednocześnie tradycyjnych ikon („starszych” ikon) na starsze urządzenia.
Aby rozpocząć, kliknij prawym przyciskiem myszy folder res w projekcie, a następnie wybierz Nowy > Zasób obrazkowy. W oknie Asset Studio wybierz Ikony menu (adaptacyjne i stare) jako typ ikony.
Uwaga: aby używać ikon dostosowanych do danego urządzenia, musisz ustawić wartość compileSdkVersion
na co najmniej 26.
Więcej informacji znajdziesz w artykule Adaptacyjne ikony.
Obsługa zasobów czcionek
Aby obsługiwać nowe zasoby czcionek w Androidzie 8.0, Android Studio zawiera selektor zasobów czcionek, który ułatwia grupowanie czcionek w aplikacji lub konfigurowanie projektu w celu pobrania czcionek na urządzenie (jeśli są dostępne). Edytor układu umożliwia też podgląd czcionek w układzie.
Aby wypróbować czcionki do pobrania, sprawdź, czy na urządzeniu lub w 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
W Assistant Firebase udostępniliśmy nowy samouczek, który pozwala przetestować indeksowanie aplikacji. Aby otworzyć Asystenta, kliknij Narzędzia > Firebase. Następnie kliknij Indeksowanie aplikacji > Test indeksowania aplikacji.
Samouczek zawiera nowe przyciski do testowania indeksowania treści publicznych i osobistych:
- W kroku 2 kliknij Podgląd wyników wyszukiwania, aby sprawdzić, czy adresy URL wyświetlają się w wynikach wyszukiwania Google.
- Na kroku 3 kliknij Sprawdź błędy, aby sprawdzić, czy indeksowalne obiekty w aplikacji zostały dodane do indeksu treści osobistych.
Asystent linków aplikacji na Androida
Asystent linków aplikacji został zaktualizowany i posiada teraz te nowe funkcje:
-
Dodaj testy adresów URL dla każdego mapowania adresów URL, aby mieć pewność, że filtry intencji będą działać prawidłowo w przypadku rzeczywistych adresów URL.
Możesz też zdefiniować te testy adresów URL ręcznie, używając tagu
<tools:validation>
, który opisujemy poniżej. -
Utwórz plik Digital Asset Links z odpowiednim wpisem obiektu, aby obsługiwać Google Smart Lock, a następnie 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 filtra intencji. Są to te same tagi, które asystent może utworzyć dla Ciebie w ramach usługi Linki aplikacji.
Aby zadeklarować testowy adres URL filtra intencji, dodaj element <tools:validation>
obok odpowiadającego mu elementu <intent-filter>
. Może to obejmować np. te funkcje:
<activity ...>
<intent-filter>
...
</intent-filter>
<tools:validation testUrl="https://www.example.com/recipe/1138" />
</activity>
Pamiętaj, aby w tagu <manifest>
umieścić też wartość xmlns:tools="http://schemas.android.com/tools"
.
Jeśli którykolwiek z testowych adresów URL nie spełnia definicji filtra intencji, pojawi się błąd lint. Taki błąd nadal umożliwia tworzenie wersji debugowania, ale spowoduje problemy z wersjami publikowanymi.
Edytor układu
W Edytorze układu wprowadzono kilka ulepszeń, m.in.:
- Nowy układ i ikony paska narzędzi.
- Zaktualizowano układ w drzewie komponentów.
- Ulepszone wstawianie widoków przez przeciąganie i upuszczanie.
- Nowy panel błędów pod edytorem, który zawiera wszystkie problemy ze sugestiami dotyczącymi ich rozwiązania (jeśli są dostępne).
- Różne ulepszenia interfejsu użytkownika dotyczące tworzenia za pomocą
ConstraintLayout
, w tym:- Nowa pomoc w tworzeniu barier.
- Nowa obsługa tworzenia grup: na pasku narzędzi wybierz Wytyczne > Dodaj grupę (wymaga ConstraintLayout 1.1.0 beta 2 lub nowszej wersji).
- Nowe UI do tworzenia łańcuchów: zaznacz kilka widoków, a potem kliknij prawym przyciskiem myszy i wybierz Łańcuch.
Inspektor układu
Inspektor układu zawiera ulepszenia, które ułatwiają debugowanie problemów z układem aplikacji, m.in. grupowanie właściwości w kategorie wspólne i nowe funkcje wyszukiwania w panelach Drzewo widoku i Właściwości.
APK Analyzer
Teraz możesz używać narzędzia APK Analyzer 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 wczytywać pliki mapowania ProGuard, które dodają funkcje do przeglądarki DEX, takie jak:
- Pogrubione węzły wskazują, że nie należy ich usuwać podczas kompresji kodu.
- Przycisk wyświetlania węzłów, które zostały usunięte podczas procesu kurczenia.
- przycisk, który przywraca pierwotne nazwy węzłów w widoku drzewa, które zostały zaciemnione przez ProGuard;
- Narzędzie DEX Viewer wyświetla teraz szacowany wpływ rozmiaru każdego pakietu, klasy i metody.
- Nowe opcje filtrowania u góry służące do wyświetlania i ukrywania pól oraz metod.
- W widoku drzewa węzły, które są odwołaniami nie zdefiniowanymi w pliku DEX, są wyświetlane kursywą.
Więcej informacji znajdziesz w artykule Analizowanie kompilacji za pomocą APK Analyzer.
Podgląd kompilatora D8 DEX
Android Studio 3.0 zawiera opcjonalny nowy kompilator DEX o nazwie D8. Ostatecznie zastąpi on kompilator DX, ale już teraz możesz zacząć używać nowego kompilatora 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 kompilator D8 działa szybciej i generuje mniejsze pliki .dex
, a jego wydajność w czasie działania aplikacji jest taka sama lub lepsza.
Aby to wypróbować, w pliku gradle.properties
projektu ustaw:
android.enableD8=true
Więcej informacji znajdziesz w poście na blogu na temat kompilatora D8.
Repozytorium Maven Google
Android Studio domyślnie używa teraz repozytorium Maven Google, a nie menedżera pakietu SDK Androida, aby pobierać aktualizacje biblioteki Android Support Library, Usług Google Play, Firebase i innych zależności. Ułatwia to aktualizowanie bibliotek, zwłaszcza w przypadku korzystania z systemu ciągłej integracji (CI).
Wszystkie nowe projekty zawierają teraz domyślnie repozytorium Google Maven. Aby zaktualizować istniejący projekt, dodaj google()
w bloku repositories
w 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. Zdecydowaliśmy się skupić na innych platformach, ponieważ bardzo niewielu deweloperów korzysta z tej platformy. Jeśli używasz 32-bitowej wersji systemu Windows i planujesz debugowanie kodu natywnego, nadal używaj Android Studio 2.3.
- Uaktualniliśmy podstawowe środowisko 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 parametrów, podświetlenie semantyczne, przeciągane punkty przerwania, natychmiastowe wyniki wyszukiwania i wiele innych.
- Dodano wiele nowych kontroli lint.
- Sprawdź 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 zwiększoną stabilnością, ale zawiera też kilka nowych funkcji.
2.3.3 (czerwiec 2017 r.)
To drobna aktualizacja, która dodaje obsługę Androida O (poziom API 26).
2.3.2 (kwiecień 2017 r.)
To drobna aktualizacja Android Studio 2.3, która zawiera te zmiany:
- Aktualizacje Menedżera AVD, które umożliwiają korzystanie z Google Play w obrazach systemowych.
- poprawki błędów w kompilacji NDK przy użyciu NDK w wersji R14 lub nowszej;
Sprawdź też odpowiednie aktualizacje dla Android Emulator 26.0.3.
2.3.1 (kwiecień 2017 r.)
To drobna aktualizacja Android Studio 2.3, która rozwiązuje problem z nieprawidłowym działaniem Instant Run na niektórych fizycznych urządzeniach z Androidem (patrz problem #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 dostosowanymi 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 kod źródłowy IDE z IntelliJ 15 na IntelliJ 2016.1
- Instant Run wymaga teraz zainstalowania pakietu SDK platformy odpowiadającego docelowym poziomom API urządzeń.
- Funkcja Szybkie uruchamianie zostanie automatycznie wyłączona, jeśli użytkownik uruchamia aplikację w profilu służbowym lub jako użytkownik dodatkowy.
- Rozwiązaliśmy wiele problemów z niezawodnością Instant Run, w których zmiany nie były wdrażane lub aplikacja się zawieszała:
- Niektóre zasoby aplikacji nie zostały wdrożone do uruchomionej aplikacji (błąd: #213454).
- Aplikacja ulega awarii, gdy użytkownik przechodzi między sesjami Instant Run a sesjami, w których nie jest używana technologia Instant Run, a klasa Serializable nie ma zdefiniowanej wartości serialVersionUID. (Błąd: #209006)
- Zmiany stylu nie są uwzględniane w ramach Instant Run. (Błąd: #210851)
- Sesja Instant Run jest niestabilna i powoduje błąd FileNotFoundException. (Błąd: #213083)
- Zmiany w plikach drawable nie są odzwierciedlane, dopóki nie zostanie przeprowadzone pełne przebudowanie w przypadku KitKat. (Błąd: #21530)
- Zmiany zasobów nie są odzwierciedlane w Instant Run, gdy niestandardowe zestawy źródeł zawierają zagnieżdżone ścieżki. (Błąd: #219145)
- Wymiana na gorąco i na zimno nie działa, jeśli zmieniona klasa zawiera adnotację z wartością z enumeracji. (Błąd: #209047)
- Zmiany w danych adnotacji nie są uwzględniane w ramach funkcji Instant Run. (Błąd: #210089)
- Jeśli wprowadzasz zmiany poza IDE, Instant Run ich nie uwzględnia. (Błąd: #213205)
- Sesja Instant Run jest niewiarygodna z powodu niezgodności tokena bezpieczeństwa. (Błąd: #211989
- Wymiana na zimno nie działa na urządzeniach, które nie obsługują prawidłowo funkcji run-as. (Błąd: #210875)
- Aplikacja ulega awarii po ponownym uruchomieniu Instant Run. (Błąd: #219744)
- Wyjątek ClassNotFoundException podczas przechodzenia z Instant Run do 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 dotyczą obsługi tworzenia aplikacji w ramach Androida N w wersji zapoznawczej.
2.1.3 (sierpień 2016 r.)
Ta aktualizacja dodaje zgodność z Gradle 2.14.1, która obejmuje ulepszenia wydajności, nowe funkcje i ważne poprawki 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 dotychczasowych projektów IDE wyświetli prompt z prośbą o uaktualnienie do Gradle 2.14.1 i wtyczki Androida do obsługi Gradle 2.1.3, która jest wymagana w przypadku Gradle 2.14.1 lub nowszej.
2.1.2 (czerwiec 2016 r.)
Ta aktualizacja zawiera kilka drobnych zmian i poprawek błędów:
- Aktualizacje Instant Run i poprawki błędów.
- Ulepszenia wydajności LLDB i powiadomień o awariach.
- Rozwiązaliśmy problem z regresją w aktualizacji zabezpieczeń Android Studio 2.1.1, która powodowała niepowodzenie
git rebase
.
2.1.1 (maj 2016 r.)
Aktualizacja dotycząca zabezpieczeń.
Platforma Android N obsługuje funkcje języka Java 8, które wymagają nowego eksperymentalnego kompilatora o nazwie Jack. Najnowsza wersja Jack jest obecnie obsługiwana tylko w Android Studio 2.1. Jeśli chcesz korzystać z funkcji języka Java 8, musisz skompilować aplikację w Android Studio 2.1.
Uwaga: funkcja Szybkie uruchamianie jest wyłączona, gdy włączysz kompilator Jack, ponieważ obecnie nie są one kompatybilne.
Chociaż Android Studio 2.1 jest już stabilne, kompilator Jack jest nadal w fazie eksperymentalnej i musisz go włączyć za pomocą właściwości jackOptions
w pliku build.gradle
.
Oprócz zmian umożliwiających obsługę Androida N w wersji zapoznawczej 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 N lub emulatora i wybierasz tryb debugowania Natywny (na karcie Debuger w konfiguracji uruchamiania/debugowania).
Aby skorzystać z innych ulepszeń kompilacji, w tym z kompilacji przyrostowej Javy i de-eXingu w ramach procesu,zaktualizuj wtyckę Androida do obsługi Gradle do wersji 2.1.0.
2.0 (kwiecień 2016 r.)
Uwaga: jeśli tworzysz aplikację na Androida N w wersji dla deweloperów, powinieneś użyć wersji Android Studio 2.1 w wersji podglądowej. Android Studio 2.0 nie obsługuje wszystkich funkcji wymaganych do kierowania na wersję N w wersji testowej.
Natychmiastowe uruchamianie:
- Android Studio wdraża teraz czyste wersje szybciej niż kiedykolwiek wcześniej. Dodatkowo przesyłanie stopniowych zmian kodu do emulatora lub na fizyczne urządzenie odbywa się teraz niemal natychmiast. Sprawdzać zmiany bez ponownego wdrażania nowej wersji debugowania lub, w wielu przypadkach, bez restartowania aplikacji.
- Tryb błyskawicznego uruchamiania obsługuje przesyłanie do uruchomionej aplikacji tych zmian:
- Zmiany w implementacji istniejącej metody instancji lub metody statycznej
- Zmiany w dotychczasowym zasobie aplikacji
- zmiany w kodzie strukturalnym, np. w sygnaturach metod lub statycznych polach (wymagają urządzenia docelowego z interfejsem API na poziomie 21 lub wyższym);
- Aby dowiedzieć się więcej o Cloud Run, zapoznaj się z dokumentacją.
Uwaga: usługa Instant Run jest obsługiwana tylko wtedy, gdy wdrażasz wariant kompilacji debugowania, używasz wtyczki Androida dla Gradle w wersji 2.0.0 lub nowszej i konfigurujesz plik
build.gradle
na poziomie modułu dla wersjiminSdkVersion 15
lub nowszej. Aby uzyskać najlepszą skuteczność, skonfiguruj aplikację na poziomieminSdkVersion 21
lub wyższym.
Nowe funkcje w Lint:
- Sprawdzanie instrukcji
switch
za pomocą liczb całkowitych z atrybutem@IntDef
, aby upewnić się, że wszystkie stałe są obsługiwane. Aby szybko dodać brakujące instrukcje, użyj menu akcji intencji i wybierz Dodaj brakujące stałe @IntDef. - Flagi dla nieudanych prób użycia interpolacji ciągu znaków w celu wstawienia numerów wersji w pliku
build.gradle
. - Flagi dla anonimowych klas, które rozszerzają klasę
Fragment
. - Flagi dla kodu natywnego w niebezpiecznych lokalizacjach, takich jak foldery
res/
iasset/
. Ten parametr zachęca do przechowywania kodu natywnego w folderzelibs/
, który jest następnie bezpiecznie pakowany do folderudata/app-lib/
aplikacji w momencie instalacji. AOSP: #169950 - Flagi dla niebezpiecznych połączeń do
Runtime.load()
iSystem.load()
. AOSP: #179980 - Aby znaleźć i usunąć nieużywane zasoby, na pasku menu kliknij Refactor > 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 nieprzetworzonych, takie jak odwołania do obrazów
.html
, oraz atrybutytools:keep
itools:discard
używane przez narzędzie do kompresji zasobów Gradle, uwzględniając nieaktywne zestawy źródeł (takie jak zasoby używane w innych wersjach kompilacji) i odpowiednio obsługując importowanie pól statycznych. - Sprawdza, czy domyślne odwołania do interfejsu API są obsługiwane na wszystkich platformach docelowych usługi
minSdkVersion
. - Oznacza nieprawidłowe użycie tagów
RecyclerView
iParcelable
. - Inspekcje
@IntDef
,@IntRange
i@Size
są teraz również sprawdzane pod kątem tablicint
i argumentów zmiennych.
Dodatkowe ulepszenia:
- Optymalizacja 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 ulepszone UI. Więcej informacji o nowym emulatorze znajdziesz w informacjach o wersji narzędzi SDK.
- Ulepszenia w Menedżerze urządzeń wirtualnych z Androidem:
- Obrazy systemowe 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, których może używać emulator.
- W ustawieniach zaawansowanych możesz określić, jak mają być renderowane grafiki na emulatorze. Wybierz jedną z tych opcji:
- Sprzęt: użyj karty graficznej komputera, aby przyspieszyć renderowanie.
- Oprogramowanie: użyj renderowania opartego na oprogramowaniu.
- Automatycznie:pozwala emulatorowi wybrać najlepszą opcję. Jest to ustawienie domyślne.
- Skrócenie czasu pakowania AAPT dzięki określeniu celu wdrożenia przed utworzeniem aplikacji. Dzięki temu Android Studio może efektywnie spakować 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ług w chmurze. Dowiedz się więcej o tym, jak korzystać z Cloud Test Lab w Android Studio.
- Dodano podgląd nowego debugera GPU. W przypadku aplikacji o wysokich wymaganiach graficznych możesz teraz wizualnie przejrzeć kod OpenGL ES, aby zoptymalizować aplikację lub grę.
- Dodano test indeksowania aplikacji Google. Dodaj do aplikacji obsługę adresów URL, indeksowania aplikacji i funkcji wyszukiwania, aby zwiększyć ruch w niej, dowiedzieć się, które treści aplikacji są najczęściej używane, oraz przyciągnąć nowych użytkowników. Testuj i weryfikuj adresy URL w aplikacji w Android Studio. Zapoznaj się z artykułem Wsparcie dla adresów URL i indeksowanie aplikacji w Android Studio.
- Ulepszenia w 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.
- Edytor XML automatycznie dodaje cudzysłowe podczas uzupełniania atrybutów. Aby sprawdzić, czy ta opcja jest włączona, otwórz okno Ustawienia lub Ustawienia, przejdź do Edytor > Ogólne > Klucze inteligentne i zaznacz pole Dodaj cudzysłowe dla wartości atrybutu po wypełnieniu atrybutu. Problem: 195113
- Edytor XML obsługuje teraz uzupełnianie kodu w przypadku wyrażeń wią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ść zmiany atrybutów pliku manifestu
description
w zależności od konfiguracji. Problem: 194705 - Zwiększyliśmy kontrast motywu Darcula w Android Studio w Vector Asset Studio. Problem: 191819
- Dodaliśmy obsługę przycisku Pomoc w Vector Asset Studio.
- Dodano obsługę operatora
%
w przypadku wiązania danych. Problem: 194045 - Naprawiliśmy błąd, który powodował, że uruchomienie aplikacji w celu debugowania skutkowało połączeniem z niewłaściwym urządzeniem. Problem: 195167
- Naprawiono wyjątek null pointer, który mógł wystąpić podczas próby uruchomienia aplikacji w pewnych sytuacjach.
Android Studio w wersji 1.5.0 (listopad 2015 r.)
Poprawki i ulepszenia:
- Dodano do Monitora Androida nowe funkcje analizy monitora pamięci. Podczas wyświetlania pliku HPROF zarejestrowanego przez ten monitor wyświetlacz jest teraz bardziej przydatny, dzięki czemu szybciej można znaleźć problemy, takie jak wycieki pamięci. Aby korzystać z tego monitora, u dołu okna głównego kliknij Monitor Androida. W Monitorze Androida kliknij kartę Pamięć. Podczas działania monitora kliknij ikonę Dump Java Heap, a następnie w oknie głównym kliknij Captures (Zrzuty) i kliknij dwukrotnie plik, aby go wyświetlić. Po prawej stronie kliknij Analiza przechwycenia. (Monitor urządzeń z Androidem nie może działać jednocześnie z Monitorem Androida).
- Dodano obsługę nowych precyzyjnych linków i linków do aplikacji. Edytor kodu może automatycznie utworzyć filtr intencji do tworzenia linków głębokich w pliku
AndroidManifest.xml
. Może też generować kod, który ułatwi Ci integrację z interfejsem App Indexing API w aktywności w pliku Java. Funkcja testowania precyzyjnych linków pomaga sprawdzić, czy określony precyzyjny link może uruchomić aplikację. Na karcie Ogólne w oknie Konfiguracje uruchamiania/debugowania możesz określić opcje uruchamiania precyzyjnych linków. Możesz też testować wywołania interfejsu App Indexing API w aktywności, korzystając z wyświetlania logcat w Monitorze Androida. Narzędzielint
na Androida zawiera teraz ostrzeżenia dotyczące niektórych problemów z precyzyjnymi linkami i interfejsem App Indexing API. - Dodano możliwość używania krótkich nazw podczas wypełniania widoków niestandardowych za pomocą kodu w Edytorze kodu.
- Dodaliśmy obsługę większej liczby elementów
VectorDrawable
w Vector Asset Studio w celu zapewnienia zgodności wstecznej. Vector Asset Studio może używać tych elementów do konwertowania obiektów rysowalnych wektorowych na obrazy rastrowe PNG, które można używać na urządzeniach z Androidem 4.4 (poziom interfejsu API 20) i starszych. - Dodaliśmy nowe
lint
kontrole dla Androida TV i Androida Auto, aby zapewnić Ci natychmiastowy i przydatny feedback w Android Studio, a także kilka szybkich poprawek. Na przykład w przypadku Androida TV może on zgłaszać i szybko rozwiązywać problemy z uprawnieniami, nieobsługiwanym sprzętem, elementemuses-feature
i brakiem banera. W przypadku Androida Auto może ona sprawdzać prawidłowe użycie w pliku deskryptora odwołującego się do plikuAndroidManifest.xml
, zgłaszać brak filtra intencji dla klasyMediaBrowserService
oraz identyfikować niektóre problemy z działaniami głosowymi. - Dodano nowe kontrole
lint
dotyczące niezabezpieczonych odbiorników transmisji,SSLCertificateSocketFactory
iHostnameVerifier
, a także wywołańFile.setReadable()
iFile.setWritable()
. Wykrywanie nieprawidłowych wyszukiwań zasobów w pliku manifestu, zwłaszcza w przypadku zasobów, które różnią się w zależności od konfiguracji. - Naprawiono 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 zablokowaniem natywnych narzędzi debugujących.
- Rozwiązaliśmy problem, który blokował użytkowników systemu kontroli wersji Subversion 1.9.
- Rozwiązaliśmy problem z oknem Wybór urządzenia, w którym po podłączeniu urządzenia, które nie było autoryzowane, nie można było już wybrać emulatora. Problem: 189658
- Naprawiono zgłaszanie błędów nieprawidłowego tłumaczenia w przypadku języków, które mają specyfikator regionu i tłumaczenie w regionie (ale nie w języku podstawowym). Problem: 188577
- Rozwiązaliśmy problem z zablokowaniem w Edytorze motywów związany z jego interakcją z Edytorem układów. Problem: 188070
- Rozwiązaliśmy problem z konfliktem podczas ponownego wczytywania i edytowania Edytora motywów, który powodował nieprawidłową aktualizację atrybutów. Problem: 187726
- Ulepszona 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:
- Dodano narzędzie Vector Asset Studio do importowania grafik wektorowych, takich jak ikony w materiale i pliki SVG. Aby użyć tego narzędzia, w widoku Android w oknie projektu kliknij prawym przyciskiem folder res i wybierz Nowy > Wektorowy zasób.
- Dodano nowe funkcje Monitora Androida: GPU i Sieć. Aby korzystać z tych monitorów, w dolnej części okna głównego kliknij Monitor Androida. Monitor urządzeń z Androidem nie może działać jednocześnie z Monitorem Androida.
- Dodaliśmy wstępną wersję podglądu nowego edytora motywów. Aby użyć tej funkcji, kliknij Narzędzia > Android > Edytor motywu.
- Zaktualizowano szablony Androida dla biblioteki Design Support Library. Szablony obsługują teraz specyfikację Material Design oraz bibliotekę pomocy
appcompat
, aby zapewnić 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. Dodano obsługę tworzenia urządzeń z nowymi gęstościami ekranu.
- Rozwiązaliśmy problem z wyjątkiem, który występował podczas sprawdzania aktualizacji. Problem: 183068
- Rozwiązaliśmy problem, który powodował, że nierozwiązane współrzędne widoku mogły spowodować awarię edytora układu. Problem: 178690
- Rozwiązanie problemu z nieprawidłowymi ostrzeżeniami dotyczącymi typu zasobu. Problem: 182433
- Naprawiono sprawdzanie lint, które nieprawidłowo oznaczało 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 w Windows.
- Zaktualizowano Kreator projektu, aby używał podanej nazwy projektu.
- Dodaliśmy obsługę, która umożliwia przechowywanie pakietu Android SDK 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 Javy, aby wyświetlał prawidłową nazwę pakietu.
Android Studio w wersji 1.3.0 (lipiec 2015 r.)
Poprawki i ulepszenia:
- Dodano opcje umożliwiające włączanie usług dla deweloperów, takich jak Google AdMob i Analytics, w aplikacji z Android Studio.
- Dodano dodatkowe adnotacje, takie jak
@RequiresPermission
,@CheckResults
i@MainThread
. - Dodano możliwość generowania zrzutów stosu pamięci Java i analizowania przydziałów wątków z monitora pamięci. W Android Studio możesz też konwertować pliki w formacie binarnym HPROF na Androida na pliki w standardowym formacie HPROF.
- Zintegrowaliśmy Menedżera pakietu 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 pakietu SDK jest nadal dostępny z poziomu wiersza poleceń, ale zalecamy jego używanie tylko w przypadku samodzielnych instalacji pakietu SDK.
- Dodano polecenie
finger
w konsoli emulatora, aby symulować uwierzytelnianie odciskiem palca. - Dodano deklarację zasobu
<public>
, aby oznaczyć zasoby biblioteki jako zasoby publiczne i prywatne.Uwaga: wymagana jest wtyczka Androida do obsługi Gradle w wersji 1.3 lub nowszej.
- Dodano obsługę wiązania 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 pakietów APK w Android Studio.
- Zaktualizowaliśmy menedżera AVD, dodając optymalizacje HAXM i ulepszone powiadomienia.
- Dodano obsługę 64-bitowego procesora ARM i procesora MIPS dla QEMU 2.1.
- Uprościliśmy rozwiązywanie ostrzeżeń Lint, dodając szybkie poprawki, takie jak automatyczne generowanie implementacji Parcelable.
- Dodaliśmy obsługę szablonów na żywo do szybkiego wstawiania 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:
- Zaktualizowano okno środowiska uruchomieniowego Androida, aby zawierało narzędzie Monitor pamięci, oraz dodano kartę do monitorowania wydajności procesora.
- Dodano kartę Zapisy na lewym marginesie, aby wyświetlać pliki danych o wydajności procesora i pamięci, takie jak śledzenie metody procesora oraz migawki stosu pamięci.
- Rozszerzona obsługa adnotacji z dodatkowymi adnotacjami metadanych i wnioskowaną możliwością wartości null.
- W Edytorze tłumaczeń dodano dodatkową obsługę normy 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 wyświetla wartości w tekście w przypadku zmiennych i odwołujących się do nich obiektów, a także wykonuje wstawianą ocenę wyrażeń lambda i wyrażeń operatora.
- Dodaliśmy wykrywanie stylu kodu dla rozmiarów tabulacji i wcięć.
- Dodaliśmy pliki robocze do eksperymentowania z kodem i tworzenia prototypów bez plików projektu.
- Dodano jednoczesne wstawianie otwierających i zamykających tagów w plikach HTML i XML.
- Dodano wbudowany dekompilator klasy Java, dzięki któremu możesz sprawdzić, co znajduje się w bibliotece, dla której kod źródłowy jest niedostępny.
Pełny opis nowych funkcji i ulepszeń znajdziesz w artykule Co nowego w IntelliJ.
- Dodano dodatkowe widoki projektu dotyczące szkicowania, plików projektu, problemów, produkcji i testów, aby ulepszyć zarządzanie projektami i dostęp do nich.
- Ulepszyliśmy menu Plik > Ustawienia oraz okna dialogowe, aby ułatwić dostęp do ustawień i zarządzanie nimi.
- Dodaliśmy obsługę wyświetlaczy o dużej 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:
- Dodano obsługę szablonu zegarka Android Wear.
- Zmieniono tworzenie nowych projektów i modułów, aby uwzględnić foldery
res/mipmap
dla ikon w widżecie dla różnych gęstości. Foldery teres/mipmap
zastępują folderyres/drawable
z ikonami w programie uruchamiającym. - Zaktualizowaliśmy ikony programu uruchamiającego, aby nadać im wygląd zgodny z Material Design, i dodaliśmy ikonę
xxxhdpi
. - Dodano i ulepszono mechanizmy kontroli Lint dotyczące kombinacji regionów i języków, ikon uruchamiania, nazw zasobów i innych typowych problemów z kodem.
- Dodano obsługę tagu języka 47 zgodnego ze sprawdzonymi metodami.
Android Studio w wersji 1.0.1 (grudzień 2014 r.)
Różne poprawki i ulepszenia:
- Rozwiązaliśmy problem z blokowaniem pliku device.xml przez Menedżera AVD.
- Naprawiono dziennik emulatora w systemach Windows.
- Rozwiązaliśmy problem z tworzeniem urządzeń wirtualnych z Android Studio i Android SDK zainstalowanymi na różnych dyskach w systemach Windows.
- Domyślny kanał aktualizacji dla nowych plików do pobrania ustawiono na Stabilny. Jeśli masz zainstalowaną wersję 1.0.0 Android Studio i chcesz otrzymywać aktualizacje stabilnej wersji gotowej do wdrożenia, wybierz Plik > Ustawienia > Aktualizacje, aby przejść na kanał aktualizacji Stabilny.
Android Studio w wersji 1.0 (grudzień 2014 r.)
Pierwsza wersja Android 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.)
- Zastosowano najnowsze zmiany w kodzie źródłowym IntelliJ. Zawiera poprawki problemów zgłoszonych przez użytkowników Studio, takich jak zmiany rozmiarów czcionek i renderowania czcionek w Linuxie.
- Wtyczka Androida do obsługi Gradle została zaktualizowana do wersji 0.5.0.
Uwaga: nowa wersja nie jest zgodna wstecznie. Podczas otwierania projektu, który używa starszej wersji wtyczki, Studio wyświetli błąd Nie udało się odświeżyć projektu Gradle <nazwa_projektu>.
Zaktualizowany wtyczka Gradle zawiera te zmiany:
- Naprawiono model IDE, aby zawierał plik wyjściowy, nawet jeśli został dostosowany za pomocą DSL. Ponadto poprawiono DSL w celu pobierania/ustawiania pliku wyjściowego w obiekcie wariantu, aby nie trzeba było używać funkcji
variant.packageApplication or variant.zipAlign
- Naprawiono rozwiązywanie zależności, aby rozwiązać kombinację (domyślna konfiguracja, typy kompilacji, wersje) razem zamiast osobno.
- Naprawiono zależność testów projektu biblioteki, aby prawidłowo uwzględnić wszystkie zależności samej biblioteki.
- Rozwiązano problem, gdy 2 zależności mają tę samą nazwę elementu końcowego.
- Rozwiązanie problemu polegającego na tym, że pliku reguł Proguard nie można było zastosować do wersji.
Wszystkie informacje o wersjach wtyczki Gradle znajdziesz tutaj: http://tools.android.com/tech-docs/new-build-system.
- Naprawiono model IDE, aby zawierał plik wyjściowy, nawet jeśli został dostosowany za pomocą DSL. Ponadto poprawiono DSL w celu pobierania/ustawiania pliku wyjściowego w obiekcie wariantu, aby nie trzeba było używać funkcji
- Błędy Gradle z aapt nie wskazują już scalonych plików wyjściowych w folderze build/, lecz wskazują na prawdziwe lokalizacje źródłowe.
- równoległe kompilacje, Teraz można 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 go włączyć, kliknij Ustawienia > Kompilator i zaznacz pole Kompiluj niezależne moduły równolegle.
- Dalsze prace nad nowym repozytorium zasobów służącym do renderowania układu, zwijania zasobów w edytorze i innymi funkcjami:
- Podstawowe obsługiwanie zależności biblioteki .aar (np. używanie biblioteki bez lokalnej kopii źródeł). Sprawdzanie i nawigacja XML zasobów nadal nie działają w edytorach źródeł.
- wykrywanie cykli w odniesieniach 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 i typów kompilacji Gradle, a także bibliotek. Są one wymienione w odwrotnej kolejności nakładania zasobów, a wersje ciągu, które są zamaskowane, są przekreślone.
- Poprawki umożliwiające aktualizowanie scalonych zasobów po zmianie zestawu zależności modułów.
- Poprawki dotyczące renderowania XML, które umożliwiają prawidłowe obsługiwanie deklaracji encji znaków 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 w lint.
- Różne poprawki dotyczące raportów o awariach. Dziękujemy i zapraszamy 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 dla typowego problemu z instalacją systemu Windows;
Starsze wersje wtyczki Androida do obsługi Gradle
3.6.0 (luty 2020 r.)
Ta wersja wtyczki na Androida wymaga:
-
Gradle 5.6.4. Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
-
SDK Build Tools 28.0.3 lub nowszy.
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami dotyczącymi widoczności pakietów w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
Nowe funkcje
Ta wersja wtyczki Gradle na Androida zawiera te nowe funkcje:
Wyświetlanie powiązania
Wiązanie widoku zapewnia bezpieczeństwo w czasie kompilacji podczas odwoływania się do widoków w kodzie. Możesz teraz zastąpić findViewById()
automatycznie wygenerowanym odwołaniem do klasy wiążącej. Aby zacząć używać łączenia widoku,
dodaj do pliku build.gradle
każdego modułu:
android { viewBinding.enabled = true }
android { viewBinding.enabled = true }
Aby dowiedzieć się więcej, zapoznaj się z dokumentacją.
Obsługa wtyczki Maven Publish
Wtyczka Androida do obsługi Gradle obsługuje wtyczkę Maven Publish Gradle, która umożliwia publikowanie artefaktów kompilacji w repozytorium Apache Maven. Wtyczka Gradle na Androida 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 kompilowania wersji debugowej 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 korzystania ze starego narzędzia do pakowania, dodając do pliku gradle.properties
:
android.useNewApkCreator=false
Atrybucja natywnych wersji aplikacji
Możesz teraz określić, ile czasu zajmie Clangowi kompilowanie i linkowanie każdego pliku C/C++ w Twoim projekcie. Gradle może wygenerować ślad Chrome zawierający sygnatury czasowe tych zdarzeń kompilatora, aby umożliwić Ci lepsze zrozumienie czasu potrzebnego na kompilację projektu. Aby wygenerować ten plik atrybucji kompilacji:
-
Dodaj flagę
-Pandroid.enableProfileJson=true
podczas uruchamiania kompilacji Gradle. Może to obejmować np. te funkcje:gradlew assembleDebug -Pandroid.enableProfileJson=true
-
Otwórz przeglądarkę Chrome i na pasku wyszukiwania wpisz
chrome://tracing
. -
Kliknij przycisk Wczytaj i znajdź plik w folderze
<var>project-root</var>/build/android-profile
. Plik ma nazwęprofile-<var>timestamp</var>.json.gz
.
Dane atrybucji w przypadku natywnych aplikacji mobilnych znajdziesz u góry widoku:
Zmiany w zachowaniu
Podczas korzystania z tej wersji wtyczki możesz zauważyć te zmiany w zachowaniu.
Biblioteki natywne pakowane bez kompresji domyślnie
Podczas kompilowania aplikacji wtyczka ustawia teraz parametr extractNativeLibs
na "false"
. Oznacza to, że biblioteki natywne są wyrównane do strony i zapakowane w nieskompresowany sposób. Wprawdzie zwiększa to rozmiar przesyłanych danych, ale użytkownicy zyskują:
- Mniejszy rozmiar instalowanej aplikacji, ponieważ platforma może uzyskać dostęp do natywnych bibliotek bezpośrednio z zainstalowanego pliku APK bez tworzenia kopii tych bibliotek.
- Mniejszy rozmiar pliku do pobrania, ponieważ kompresja w Google Play jest zazwyczaj lepsza, gdy w pliku APK lub pakiecie Android App Bundle są nieskompresowane biblioteki natywne.
Jeśli chcesz, aby wtyczka Androida do obsługi Gradle skompresowała biblioteki natywne, dodaj do pliku manifestu aplikacji te informacje:
<application
android:extractNativeLibs="true"
... >
</application>
Uwaga: atrybut manifestu extractNativeLibs
został zastąpiony opcją DSL useLegacyPackaging
. 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 Gradle dla Androida wybierze teraz domyślną wersję do użycia podczas kompilowania plików kodu źródłowego.
Wcześniej wtyczka wybierała najnowszą pobraną wersję NDK.
Aby zastąpić domyślne ustawienie wybrane przez wtyczkę, użyj właściwości android.ndkVersion
w pliku build.gradle
modułu.
Uproszczona generacja klasy R
Wtyczka Gradle dla Androida 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żnym modułom. Ta optymalizacja powinna skutkować szybszym tworzeniem, ale wymaga uwzględnienia tych kwestii:
- Kompilator udostępnia klasy R z zależnościami modułów źródłowych, 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ędnienia 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. Inne biblioteki mogą jednak nie mieć dostępu do klasy R biblioteki B. Jeśli biblioteka A używa konfiguracji zależności
implementation
. Aby dowiedzieć się więcej, przeczytaj artykuł o konfiguracjach zależności.
Usuwanie zasobów, których brakuje w domyślnej konfiguracji
W przypadku modułów bibliotek, jeśli uwzględnisz zasób dla języka, którego nie uwzględniasz w domyślnym zestawie zasobów (np. uwzględnisz zasób hello_world
jako zasób ciągu tekstowego w pliku /values-es/strings.xml
, ale nie zdefiniujesz go w pliku /values/strings.xml
), wtyczka Android Gradle nie uwzględnia już tego zasobu podczas kompilowania projektu. Ta zmiana zachowania powinna skutkować mniejszą liczbą wyjątków Resource Not Found
w czasie wykonywania oraz większą szybkością kompilacji.
D8 przestrzega teraz zasad dotyczących przechowywania CLASS w przypadku adnotacji
Podczas kompilowania aplikacji D8 uwzględnia teraz, kiedy adnotacje stosują zasadę CLASS dotyczącą przechowywania, i te adnotacje nie są już dostępne w czasie wykonywania. To zachowanie występuje również wtedy, gdy ustawisz docelowy pakiet SDK aplikacji na poziom API 23, który wcześniej umożliwiał dostęp do tych adnotacji w czasie działania podczas kompilowania aplikacji za pomocą starszych wersji wtyczki Android Gradle i D8.
Inne zmiany w działaniu
-
aaptOptions.noCompress
nie jest już zależne od wielkości liter na wszystkich platformach (zarówno w przypadku plików APK, jak i pakietów) i uwzględnia ścieżki z użyciem wielkich liter. -
Połączenie danych jest teraz domyślnie stosowane stopniowo. Więcej informacji znajdziesz w problemie #110061530.
-
Wszystkie testy jednostkowe, w tym testy jednostkowe Roboelectric, są teraz w pełni dostępne w pamięci podręcznej. Więcej informacji znajdziesz w problemie 115873047.
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 126775542.
- Gdy włączony jest tryb wykonywania zadań równolegle w Gradle, możesz teraz wykonywać zadania
connectedAndroidTest
w wielu modułach.
Znane problemy
W tej sekcji opisano znane problemy występujące w wersji 3.6.0 wtyczki Androida do obsługi Gradle.
Powolny proces sprawdzania Androida Lint
W przypadku niektórych projektów wykonanie Android Lint może potrwać znacznie dłużej z powodu regresji w infrastrukturze analizowania, co powoduje wolniejsze obliczanie typów inferowanych dla funkcji lambda w niektórych konstrukcjach kodu.
Problem został zgłoszony jako błąd w IDE i zostanie rozwiązany w wersji 4.0 wtyczki Androida do obsługi Gradle.
Brak klasy manifestu {:#agp-missing-manifest}
Jeśli aplikacja definiuje niestandardowe uprawnienia w manifeście, wtyczka Gradle dla Androida zwykle generuje klasę Manifest.java
, która zawiera niestandardowe uprawnienia jako stałe ciągi znaków. Wtyczka pakuje tę klasę w aplikacji, aby ułatwić Ci odwoływanie się do tych uprawnień w czasie działania.
Generowanie klasy manifestu jest uszkodzone w wersji 3.6.0 wtyczki Androida do obsługi Gradle.
Jeśli skompilujesz aplikację z tą wersją wtyczki i odwołuje się ona do klasy manifestu, możesz zobaczyć wyjątek ClassNotFoundException
. Aby rozwiązać ten problem, wykonaj jedną z tych czynności:
-
Odwołuj się do uprawnień niestandardowych według 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 3.5.0 wraz z Android Studio 3.5 to ważna wersja, która jest wynikiem projektu Marble. Projekt ten koncentruje się na ulepszaniu trzech głównych obszarów narzędzi dla deweloperów Androida: stanu systemu, funkcji i usuwania błędów. W ramach tej aktualizacji skupiliśmy się przede wszystkim na przyspieszeniu procesu kompilacji projektu.
Informacje 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 na Androida wymaga:
-
Gradle 5.4.1. Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
-
narzędzia do kompilowania pakietu SDK w wersji 28.0.3 lub nowszej;
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami dotyczącymi widoczności pakietów w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
3.5.3 (grudzień 2019 r.)
Ta drobna aktualizacja obsługuje Android Studio 3.5.3 i zawiera różne poprawki błędów oraz ulepszenia działania aplikacji.
3.5.2 (listopad 2019 r.)
Ta niewielka aktualizacja obsługuje Android Studio 3.5.2 i zawiera różne poprawki błędów oraz ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualnościami dotyczącymi wersji.
3.5.1 (październik 2019 r.)
Ta niewielka aktualizacja obsługuje Android Studio 3.5.1 i zawiera różne poprawki błędów oraz ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualnościami dotyczącymi wersji.
Przyrostowe przetwarzanie adnotacji
Przetwarzacz adnotacji Data Binding obsługuje przyrostowe przetwarzanie adnotacji, jeśli w pliku gradle.properties
ustawisz wartość android.databinding.incremental=true
. Ta optymalizacja powoduje poprawę wydajności przyrostowej kompilacji. Pełną listę procesorów zoptymalizowanych adnotacji znajdziesz w tabeli procesorów addytywnych adnotacji.
Dodatkowo KAPT 1.3.30 i nowsze wersje obsługują procesory adnotacji przyrostowych, które możesz włączyć, dodając kapt.incremental.apt=true
do pliku gradle.properties
.
testy jednostkowe, które można przechowywać w pamięci podręcznej;
Gdy włączysz korzystanie z zasobów, zasobów multimedialnych i pliku manifestu Androida przez ustawienie parametru 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 przeniesienia do pamięci podręcznej. Możesz zlecić wtyczce wygenerowanie konfiguracji testu za pomocą ścieżek względnych, co pozwoli zadaniu AndroidUnitTest
w pełni wykorzystać pamięć podręczną. Aby to zrobić, dodaj do pliku gradle.properties
następujące informacje:
android.testConfig.useRelativePath = true
Znane problemy
-
Jeśli używasz wtyczki Kotlin Gradle 1.3.31 lub starszej, podczas kompilowania lub synchronizowania projektu możesz zobaczyć to ostrzeżenie:
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 na Androida wymaga:
-
Gradle 5.1.1 lub nowsza wersja. Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
Uwaga: w przypadku Gradle 5.0 i wyższych domyślny rozmiar stosu pamięci demona Gradle zmniejsza się z 1 GB do 512 MB. Może to spowodować regresję wydajności kompilacji. Aby zastąpić to ustawienie domyślne, określ rozmiar stosu demona Gradle w pliku
gradle.properties
projektu. -
narzędzia do kompilowania pakietu SDK w wersji 28.0.3 lub nowszej;
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami dotyczącymi widoczności pakietów w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
3.4.2 (lipiec 2019 r.)
Ta drobna aktualizacja obsługuje Android Studio 3.4.2 i zawiera różne poprawki błędów oraz ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualnościami dotyczącymi wersji.
3.4.1 (maj 2019 r.)
Ta niewielka aktualizacja obsługuje Android Studio 3.4.1 i zawiera różne poprawki błędów oraz ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualnościami dotyczącymi wersji.
Nowe funkcje
-
Nowe konfiguracje zależności sprawdzania błędów: zmieniliśmy działanie narzędzia
lintChecks
i wprowadziliśmy nową konfigurację zależnościlintPublish
, aby zapewnić Ci większą kontrolę nad tym, które sprawdzania błędów są pakowane w bibliotekach Androida.-
lintChecks
: to istniejąca konfiguracja, której należy używać do sprawdzania błędów lint, które chcesz uruchamiać tylko podczas kompilowania projektu lokalnie. Jeśli wcześniej używałeś/używałaś konfiguracji zależnościlintChecks
, aby uwzględnić sprawdzanie błędów w publikowanym pliku AAR, 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 w przypadku kontroli błędów, które chcesz uwzględnić w opublikowanym pliku AAR, jak pokazano poniżej. Oznacza to, że projekty, które korzystają z Twojej biblioteki, stosują te kontrole lint.
Poniższy przykładowy kod używa 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 pakowania i podpisywania powinny być wykonywane szybciej. Jeśli zauważysz regresję wydajności związaną z tymi zadaniami, zgłoś błąd.
-
Zmiany w zachowaniu
-
Ostrzeżenie dotyczące wycofywania wtyczki funkcji aplikacji błyskawicznych na Androida: jeśli nadal używasz wtyczki
com.android.feature
do kompilowania aplikacji błyskawicznej, wtyczka Androida do obsługi Gradle w wersji 3.4.0 wyświetli ostrzeżenie o wycofaniu. Aby mieć pewność, że nadal będziesz mieć możliwość tworzenia aplikacji błyskawicznych w przyszłych wersjach tego wtyczka, zmień aplikację błyskawiczną na korzystającą z wtyczka dynamicznych funkcji, który umożliwia publikowanie zarówno wersji instalowanych, jak i błyskawicznych aplikacji z jednego pakietu Android App Bundle. -
R8 jest domyślnie włączone: R8 łączy desugaring, kompresowanie, zaciemnianie, optymalizację i dekompilację w jednym kroku, co skutkuje znaczną poprawą wydajności kompilacji. R8 zostało wprowadzone w komponencie Android Gradle w wersji 3.3.0 i jest teraz domyślnie włączone w przypadku projektów aplikacji i bibliotek Androida korzystających z komponentu w wersji 3.4.0 lub nowszej.
Na ilustracji poniżej znajdziesz ogólny opis procesu kompilacji przed wprowadzeniem R8.
Obecnie w wersji R8 desugaring, shrinking, obfuscating, optymalizacja i dexing (D8) są wykonywane w jednym kroku, jak pokazano poniżej.
Pamiętaj, że R8 jest przeznaczony do współpracy z dotychczasowymi regułami ProGuard, więc prawdopodobnie nie będziesz musiał podejmować żadnych działań, aby korzystać z R8. Jednak ze względu na to, że jest to inna technologia niż ProGuard i jest przeznaczona specjalnie do projektów na Androida, kompresowanie i optymalizowanie może spowodować usunięcie kodu, którego ProGuard nie usuwa. W tej nietypowej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w wyniku kompilacji.
Jeśli wystąpią problemy z użyciem R8, przeczytaj najczęstsze pytania dotyczące zgodności R8, aby sprawdzić, czy istnieje rozwiązanie Twojego problemu. Jeśli rozwiązanie nie zostało udokumentowane, zgłoś błąd.
Możesz wyłączyć R8, dodając 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 danym typie kompilacji w pliku build.gradle
modułu aplikacji ustawisz wartość useProguard
na false
, wtyczka Androida do obsługi Gradle użyje R8 do kompresji kodu aplikacji w tym typie kompilacji, niezależnie od tego, czy wyłączysz R8 w pliku gradle.properties
projektu.
-
Narzędzia
ndkCompile
są wycofywane: jeśli spróbujesz użyć narzędziandkBuild
do skompilowania bibliotek natywnych, pojawi się błąd kompilacji. Zamiast tego użyj CMake lub ndk-build, aby dodać kod C i C++ do projektu.
Znane problemy
-
Obecnie nie jest wymagane prawidłowe używanie unikalnych nazw pakietów, ale w późniejszych wersjach wtyczki wymagania te będą bardziej rygorystyczne. W pliku plugina Gradle na Androida w wersji 3.4.0 możesz sprawdzić, czy Twój projekt deklaruje dopuszczalne nazwy pakietów. Aby to zrobić, dodaj do pliku
gradle.properties
poniższy wiersz.android.uniquePackageNames = true
Więcej informacji o ustawianiu nazwy pakietu za pomocą wtyczki Gradle dla Androida znajdziesz w artykule Ustawianie identyfikatora aplikacji.
3.3.0 (styczeń 2019 r.)
Ta wersja wtyczki na Androida wymaga:
-
Gradle 4.10.1 lub nowsza wersja. Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
Uwaga: w wersji Gradle 5.0 i wyższych domyślny rozmiar stosu pamięci demona Gradle zmniejsza się z 1 GB do 512 MB. Może to spowodować spadek wydajności kompilacji. Aby zastąpić to domyślne ustawienie, określ rozmiar stosu demona Gradle w pliku
gradle.properties
projektu. -
SDK Build Tools 28.0.3 lub nowszy.
Ta niewielka aktualizacja zapewnia zgodność z nowymi ustawieniami domyślnymi i funkcjami dotyczącymi widoczności pakietów w Androidzie 11.
Szczegółowe informacje znajdziesz w informacjach o wersji 4.0.1.
3.3.2 (marzec 2019 r.)
Ta drobna aktualizacja obsługuje Android Studio 3.3.2 i zawiera różne poprawki błędów oraz ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualnościami dotyczącymi wersji.
3.3.1 (luty 2019 r.)
Ta drobna aktualizacja obsługuje Android Studio 3.3.1 i zawiera różne poprawki błędów oraz ulepszenia działania aplikacji.
Nowe funkcje
-
Ulepszona synchronizacja ścieżki klas: podczas rozwiązywania zależności w czasie wykonywania i kompilowania ścieżki klas, wtyczka Gradle dla Androida próbuje naprawić niektóre konflikty wersji w dół łańcucha dostawy dla zależności, które występują w wielu ścieżkach klas.
Jeśli na przykład classpath w czasie wykonywania zawiera bibliotekę A w wersji 2.0, a classpath kompilacji zawiera bibliotekę A w wersji 1.0, w celu uniknięcia błędów wtyczka automatycznie aktualizuje zależność w classpath kompilacji do biblioteki A w wersji 2.0.
Jeśli jednak classpath środowiska wykonawczego zawiera bibliotekę A w wersji 1.0, a kompilacja zawiera bibliotekę A w wersji 2.0, wtyczka nie obniża zależności w classpath kompilacji do biblioteki A w wersji 1.0, co spowoduje błąd. Więcej informacji znajdziesz w artykule Rozwiązywanie konfliktów między ścieżkami klas.
-
Ulepszona przyrostowa kompilacja Javy przy użyciu procesorów adnotacji: ta aktualizacja skraca czas kompilacji dzięki ulepszaniu obsługi przyrostowej kompilacji Javy przy użyciu procesorów adnotacji.
Uwaga: ta funkcja jest zgodna z Gradle 4.10.1 i nowszymi wersjami, z wyjątkiem Gradle 5.1 z powodu problemu Gradle 8194.
-
W przypadku projektów korzystających z Kapt (większość projektów tylko w Kotlinie i hybrydowych projektów w Kotlinie i Java): skompilowanie Java jest włączone, 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 używane przez Ciebie procesory adnotacji obsługują kompilację adnotacji stopniowej, kompilacja stopniowa w języku Java jest domyślnie włączona. Aby śledzić stosowanie procesora adnotacji, sprawdź problem Gradle 5277.
Jeśli jednak co najmniej 1 procesor adnotacji nie obsługuje kompilacji przyrostowych, kompilacja przyrostowa Javy nie jest włączona. Zamiast tego możesz umieścić w pliku
gradle.properties
ten parametr:android.enableSeparateAnnotationProcessing=true
Gdy dodasz ten parametr, wtyczka Gradle dla Androida wykona procesory adnotacji w ramach osobnego zadania i umożliwi stopniowe wykonywanie zadania kompilacji kodu Java.
-
-
Bardziej szczegółowe informacje o debugowaniu podczas korzystania z przestarzałego interfejsu API: gdy wtyczka wykryje, że używasz interfejsu API, który nie jest już obsługiwany, może wyświetlić bardziej szczegółowe informacje, które pomogą Ci określić, gdzie jest on używany. Aby wyświetlić dodatkowe informacje, musisz uwzględnić w pliku
gradle.properties
projektu:android.debug.obsoleteApi=true
Możesz też włączyć tę flagę, podając parametr
-Pandroid.debug.obsoleteApi=true
w wierszu poleceń. -
Testy instrumentacji możesz przeprowadzać na modułach funkcji z poziomu wiersza poleceń.
Zmiany w zachowaniu
-
Konfiguracja leniwych zadań: wtyczka używa teraz nowego interfejsu API do tworzenia zadań Gradle, 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 diagramie zadań wykonania). Jeśli na przykład masz kilka wariantów kompilacji, np. „wersja produkcyjna” i „wersja debugująca”, a kompilujesz wersję „debugującą” aplikacji, wtyczka nie inicjuje ani nie konfiguruje zadań dotyczących wersji „produkcyjnej” aplikacji.
Wywoływanie niektórych starszych metod w interfejsie Variants API, takich jak
variant.getJavaCompile()
, może nadal wymuszać konfigurację zadania. Aby mieć pewność, że kompilacja jest zoptymalizowana pod kątem konfiguracji leniwych zadań, wywołaj nowe metody, które zamiast tego zwracają obiekt TaskProvider, taki jakvariant.getJavaCompileProvider()
.Jeśli wykonujesz niestandardowe zadania kompilacji, dowiedz się, jak dostosować się do nowego interfejsu API do tworzenia zadań Gradle.
-
W przypadku danego typu kompilacji, gdy ustawisz
useProguard false
, wtyczka będzie teraz używać R8 zamiast ProGuarda do kompresji i zaciemnienia 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 przypadku projektów bibliotek: wcześniej wtyczka Gradle dla Androida generowała plik
R.java
dla każdej zależności projektu, a następnie kompilowała te klasy R wraz z innymi klasami aplikacji. Wtyczka generuje teraz plik JAR zawierający bezpośrednio skompilowaną klasę R aplikacji, bez wcześniejszego tworzenia klas pośrednichR.java
. Ta optymalizacja może znacznie poprawić 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 kompilowania pakietu aplikacji na Androida pliki APK wygenerowane na podstawie tego pakietu aplikacji, które są kierowane na Androida 6.0 (poziom interfejsu API 23) lub nowszego, zawierają teraz domyślnie nieskompresowane wersje bibliotek natywnych. Dzięki tej optymalizacji urządzenie nie musi tworzyć kopii biblioteki, co zmniejsza rozmiar aplikacji na dysku. Jeśli chcesz wyłączyć tę optymalizację, dodaj do pliku
gradle.properties
następujący kod:android.bundle.enableUncompressedNativeLibs = false
-
Wtyczka narzuca minimalne wersje niektórych wtyczek innych firm.
-
Synchronizacja projektu z jednym wariantem: synchronizowanie projektu z konfiguracją kompilacji to ważny krok, który pozwala Android Studio zrozumieć strukturę projektu. W przypadku dużych projektów może to jednak zająć dużo czasu. Jeśli projekt używa wielu wersji kompilacji, możesz zoptymalizować synchronizację projektu, ograniczając ją tylko do wariantu, który jest obecnie wybrany.
Aby włączyć tę optymalizację, musisz używać Android Studio 3.3 lub nowszej wersji z wtyczką Android Gradle 3.3.0 lub nowszą. Jeśli spełniasz te wymagania, IDE poprosi Cię o włączenie tej optymalizacji podczas synchronizowania projektu. Optymalizacja jest też domyślnie włączona w przypadku nowych projektów.
Aby włączyć tę optymalizację ręcznie, kliknij Plik > Ustawienia > Eksperymentalne > Gradle (na Macu Android Studio > Ustawienia > Eksperymentalne > Gradle) i zaznacz pole wyboru Tylko synchronizacja aktywnej wersji.
Uwaga: ta optymalizacja w pełni obsługuje projekty, które obejmują języki Java i C++, oraz częściowo obsługuje Kotlin. Po włączeniu optymalizacji w przypadku projektów z treściami w Kotlinie synchronizacja Gradle automatycznie używa pełnych wersji wewnętrznych.
-
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 włączenia Jetifiera; - Konflikty spowodowane przez
androidx-rs.jar
, w tym statycznie połączoneannotation.AnyRes
- Gdy używasz RenderScript, nie musisz już ręcznie ustawiać wersji narzędzi do kompilacji w plikach
build.gradle
.
- proces kompilacji wywołuje
3.2.0 (wrzesień 2018 r.)
Ta wersja wtyczki na Androida wymaga:
- Gradle 4.6 lub nowsza. Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
- narzędzia do kompilowania pakietu SDK w wersji 28.0.3 lub nowszej.
3.2.1 (październik 2018 r.)
Dzięki tej aktualizacji nie musisz już określać wersji narzędzi do kompilowania pakietu SDK. Wtyczka Androida do obsługi Gradle używa teraz domyślnie wersji 28.0.3.
Nowe funkcje
-
Obsługa tworzenia pakietów aplikacji na Androida: pakiet aplikacji to nowy format przesyłania, który obejmuje cały skompilowany kod i zasoby aplikacji, a generowanie i podpisywanie pliku APK jest odkładane na czas przesyłania do Sklepu Google Play. Nie musisz już tworzyć, podpisywać ani zarządzać wieloma plikami APK, a użytkownicy otrzymują mniejsze pliki do pobrania zoptymalizowane pod kątem ich urządzenia. Więcej informacji znajdziesz w artykule Informacje o pakietach Android App Bundle.
-
Obsługa ulepszonych szybkości kompilacji przyrostowych podczas korzystania z procesorów adnotacji:
AnnotationProcessorOptions
DSL rozszerza terazCommandLineArgumentProvider
, co umożliwia Tobie lub autorowi procesora adnotacji adnotowanie argumentów procesora za pomocą adnotacji typu właściwości kompilacji przyrostowej. Zastosowanie tych adnotacji poprawia poprawność i wydajność przyrostowych i oczyszczonych kompilacji w pamięci podręcznej. Więcej informacji znajdziesz w artykule Przesyłanie argumentów do procesorów adnotacji. -
Narzędzie do migracji do AndroidX: jeśli używasz wtyczki Android Gradle 3.2.0 na Androidzie 3.2 lub nowszym, możesz przeprowadzić migrację zależności lokalnych i Mavena w projekcie, aby używać nowych bibliotek AndroidX. W tym celu na pasku menu wybierz Refactor > Migrate to AndroidX (Refaktoryzacja > Przeprowadź migrację do AndroidX). Korzystanie z tego narzędzia do migracji powoduje też ustawienie tych flag na
true
w plikugradle.properties
:-
android.useAndroidX
: gdy ta opcja jest ustawiona natrue
, wtyczka Androida używa odpowiedniej biblioteki AndroidX zamiast biblioteki Support Library. Jeśli ta flaga nie jest określona, wtyczka domyślnie ustawia ją nafalse
. -
android.enableJetifier
: gdy ta opcja jest ustawiona natrue
, wtyczka Androida automatycznie migruje istniejące biblioteki innych firm do korzystania z AndroidX, przepisując ich pliki binarne. Jeśli ta flaga nie jest określona, wtyczka domyślnie ustawia ją nafalse
. Flagę tę możesz ustawić jakotrue
tylko wtedy, gdy flagaandroid.useAndroidX
ma wartośćtrue
. W przeciwnym razie wystąpi błąd kompilacji.Więcej informacji znajdziesz w artykule Omówienie Androida X.
-
-
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ądu R8, w pliku
gradle.properties
projektu dodaj:android.enableR8 = true
android.enableR8 = true
Zmiany w zachowaniu
-
Desugaring za pomocą D8 jest teraz domyślnie włączony.
-
AAPT2 jest teraz dostępny w repozytorium Maven Google. Aby korzystać z AAPT2, sprawdź, czy 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() }
-
Natywne multidex jest teraz domyślnie włączone. W poprzednich wersjach Android Studio włączano natywny multideks podczas wdrażania wersji debugowej aplikacji na urządzenie z Androidem API na poziomie 21 lub nowszym. Niezależnie od tego, czy wdrażasz aplikację na urządzenie, czy kompilujesz plik APK na potrzeby wydania, wtyczka Gradle dla Androida włącza natywny multidex dla wszystkich modułów z ustawieniem
minSdkVersion=21
lub nowszym. -
W pluginie jest teraz wymagana minimalna wersja pluginu protobuf (0.8.6), pluginu Kotlin (1.2.50) i pluginu Crashlytics (1.25.4).
-
W pluginie modułu funkcji
com.android.feature
podczas określania nazwy modułu musisz używać tylko liter, cyfr i znaków podkreślenia. Jeśli na przykład nazwa modułu funkcji zawiera myślniki, pojawi się błąd kompilacji. Takie działanie jest zgodne z działaniem wtyczki funkcji dynamicznych.
Poprawki błędów
- JavaCompile można teraz przechowywać w pamięci podręcznej w projektach z wiązaniem danych. (problem 69243050)
- Lepsze unikanie kompilacji w przypadku modułów biblioteki z wiązaniem danych. (problem 77539932)
- Możesz teraz ponownie włączyć funkcję konfigurowania na żądanie, jeśli została ona wyłączona w poprzednich wersjach z powodu nieprzewidzianych błędów kompilacji. (problem 77910727)
3.1.0 (marzec 2018 r.)
Ta wersja wtyczki na Androida wymaga:
-
Gradle 4.4 lub nowsza wersja.
Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
-
Narzędzia do kompilacji 27.0.3 lub nowsze.
Pamiętaj, że nie musisz już określać wersji narzędzi 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
dla środowiska wykonawczego Androida (lub Dalvik w przypadku starszych wersji Androida). W porównaniu z poprzednim kompilatorem o nazwie DX kompilator D8 kompiluje 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żyć DX, dodając do pliku gradle.properties
w projekcie te informacje:
android.enableD8=false
W przypadku projektów, które korzystają z funkcji języka Java 8, stopniowe usuwanie cukru jest domyślnie włączone. Możesz go wyłączyć, określając w pliku gradle.properties
projektu te opcje:
android.enableIncrementalDesugaring=false.
Użytkownicy wersji podglądowej: jeśli korzystasz już z wersji podglądowej D8, pamiętaj, że kompiluje ona teraz biblioteki zawarte w narzędziach do kompilowania pakietu SDK, a nie w JDK. Jeśli więc uzyskujesz dostęp do interfejsów API, które są dostępne w JDK, ale nie w bibliotekach narzędzi pakietu SDK, pojawia się błąd kompilacji.
Zmiany w zachowaniu
-
Podczas kompilowania wielu plików APK kierowanych na różne interfejsy ABI kompilator nie generuje już domyślnie plików APK dla tych interfejsów ABI:
mips
,mips64
iarmeabi
.Jeśli chcesz skompilować pliki APK przeznaczone na te ABI, musisz użyć NDK r16b lub niższego i wyznaczyć ABI w pliku
build.gradle
, jak pokazano poniżej:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Pamięć podręczna kompilacji w pliku dodatku Androida usuwa teraz wpisy w pamięci podręcznej, które mają więcej niż 30 dni.
-
Przekazywanie wartości
"auto"
do funkcjiresConfig
nie powoduje już automatycznego wybierania zasobów ciągu znaków do spakowania do pliku APK. Jeśli nadal używasz"auto"
, wtyczka skompiluje wszystkie zasoby ciągów znaków, które zapewniają aplikacja i jej zależności. Zamiast tego należy określić każdą lokalizację, którą wtyczka ma zapakować do pliku APK. -
Ponieważ moduły lokalne nie mogą zależeć od pliku APK testów aplikacji, dodanie zależności do testów z użyciem konfiguracji
androidTestApi
zamiastandroidTestImplementation
powoduje 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ązanie problemu polegającego na tym, że Android Studio nie rozpoznaje zależności w kompletanch kompilacjach.
- Rozwiązanie problemu polegające na tym, że podczas wczytywania w ramach jednej kompilacji kilkukrotnie pojawia się błąd synchronizacji projektu. Może to mieć miejsce na przykład wtedy, gdy każdy z podprojektów zawiera w swoim buildscript classpath wtyczkę Androida.
3.0.0 (październik 2017 r.)
Wtyczka Androida do obsługi Gradle w wersji 3.0.0 zawiera wiele zmian, które mają na celu rozwiązanie problemów z wydajnością dużych projektów.
Na przykład w szkielecie przykładowego projektu z około 130 modułami i dużą liczbą zewnętrznych zależności (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 2.3.0 + Gradle 3.3 | Wtyczka Androida 3.0.0 + Gradle 4.1 |
---|---|---|---|
Konfiguracja (np. uruchamianie ./gradlew --help ) |
~2 min | ~9 s | około 2,5 s |
Zmiana w Javie (1 wiersz kodu) | ok. 2 min 15 s | około 29 s | ~6,4 s |
Niektóre z tych zmian powodują nieprawidłowe działanie dotychczasowych wersji. Zanim zaczniesz używać nowego wtyczki, zastanów się nad nakładem pracy potrzebnym do przeniesienia projektu.
Jeśli nie zauważysz opisanych powyżej ulepszeń wydajności, zgłoś błąd, dołączając ślad kompilacji utworzony za pomocą Profilera Gradle.
Ta wersja wtyczki na Androida wymaga:
- Gradle 4.1 lub nowsza. Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
-
Narzędzie do kompilacji w wersji 26.0.2 lub nowszej. Dzięki 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.)
To drobna aktualizacja, która zapewnia obsługę Android Studio 3.0.1. Zawiera ona ogólne poprawki błędów i ulepszenia wydajności.
Optymalizacje
- Lepsza równoległość w przypadku projektów wielomodułowych dzięki szczegółowemu grafowi zadań.
- Gdy wprowadzasz zmiany w zależności, Gradle wykonuje kompilację szybciej, ponieważ nie kompiluje ponownie modułów, które nie mają dostępu do interfejsu API tej zależności.
Należy ograniczyć, które zależności mogą udostępniać interfejsy API innym modułom, korzystając z nowych konfiguracji zależności Gradle:
implementation
,api
,compileOnly
iruntimeOnly
. - Szybsze kompilowanie przyrostowe dzięki dekodowaniu na poziomie klasy. Każda klasa jest teraz kompilowana w osobne pliki DEX, a tylko zmodyfikowane klasy są ponownie deksonowywane. Szybkość kompilacji powinna się też zwiększyć w przypadku aplikacji, w których parametr
minSdkVersion
ma wartość 20 lub niższą i które korzystają z starszego wieloprocesorowego dekodera. - Zwiększona szybkość kompilacji dzięki optymalizacji niektórych zadań pod kątem używania wyjściowych danych w pamięci podręcznej. Aby skorzystać z tej optymalizacji, musisz najpierw włączyć pamięć podręczną kompilacji Gradle.
- Ulepszone stopniowe przetwarzanie zasobów za pomocą AAPT2, które jest teraz domyślnie włączone. Jeśli podczas korzystania z AAPT2 wystąpią problemy, zgłoś błąd. Możesz też wyłączyć AAPT2, ustawiając wartość
android.enableAapt2=false
w plikugradle.properties
i ponownie uruchamiając demona Gradle, uruchamiając./gradlew --stop
z poziomu wiersza poleceń.
Nowe funkcje
- Zarządzanie zależnościami z uwzględnieniem wariantów. Podczas tworzenia określonej wersji modułu wtyczka automatycznie dopasowuje warianty zależności modułu biblioteki lokalnej do wersji modułu, który tworzysz.
- Zawiera nowy wtyczkę modułu funkcji, która obsługuje aplikacje błyskawiczne na Androida i pakiet SDK aplikacji błyskawicznych na Androida (który można pobrać za pomocą menedżera pakietu SDK). Więcej informacji o tworzeniu modułów funkcji za pomocą nowego wtyczka znajdziesz w artykule Struktura aplikacji błyskawicznej z większą liczbą funkcji.
- Wbudowane wsparcie dla niektórych funkcji języka Java 8 i bibliotek Java 8. Jack jest teraz wycofany i nie jest już wymagany. Najpierw wyłącz Jacka, aby korzystać z ulepszonej obsługi Javy 8 wbudowanej w domyślny zestaw narzędzi. Więcej informacji znajdziesz w artykule Korzystanie z funkcji językowych Java 8.
-
Dodano obsługę uruchamiania testów za pomocą Android Test Orchestrator, która umożliwia uruchamianie każdego testu aplikacji w ramach jego własnego wywołania narzędzia Instrumentation. Każdy test jest uruchamiany w ramach własnego wystąpienia narzędzia do pomiaru wydajności, więc stan wspólny dla testów nie gromadzi się w pamięci ani na procesorze urządzenia. Nawet jeśli jeden test ulegnie awarii, spowoduje to wyłączenie tylko jego instancji narzędzia Instrumentation, więc pozostałe testy będą nadal działać.
- Dodano parametr
testOptions.execution
, aby określić, czy ma być używana koordynacja testów na urządzeniu. Jeśli chcesz korzystać z Android Test Orchestrator, musisz podaćANDROID_TEST_ORCHESTRATOR
, jak pokazano poniżej. Domyślnie ta właściwość ma wartośćHOST
, która wyłącza aranżowanie na urządzeniu i jest standardową metodą uruchamiania testów.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Dodano parametr
-
Nowa konfiguracja zależności
androidTestUtil
umożliwia zainstalowanie innego pomocniczego pakietu APK do testów, takiego jak Android Test Orchestrator, przed uruchomieniem testów pomiarowych: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 umożliwić testy jednostkowe, które wymagają zasobów Androida, takich jak Roboelectric. Gdy ustawisz tę właściwość natrue
, wtyczka złączy zasoby, komponenty i manifest przed uruchomieniem testów jednostkowych. Testy mogą następnie sprawdzać wartośćcom/android/tools/test_config.properties
w ścieżce klasyfikacji w celu uzyskania tych kluczy:-
android_merged_assets
: bezwzględna ścieżka do katalogu scalonych komponentów.Uwaga: w przypadku modułów bibliotek scalone zasoby nie zawierają zasobów zależności (patrz problem #65550419).
-
android_merged_manifest
: bezwzględna ścieżka do scalonego pliku manifestu. -
android_merged_resources
: bezwzględna ścieżka do katalogu scalonych zasobów, który zawiera wszystkie zasoby z modułu i wszystkie jego zależności. -
android_custom_package
: nazwa pakietu ostatniej klasy R. Jeśli dynamicznie modyfikujesz identyfikator aplikacji, nazwa pakietu może nie odpowiadać atrybuciepackage
w pliku manifestu aplikacji.
-
- Obsługa czcionek jako zasobów (jest to nowa funkcja wprowadzona w Androidzie 8.0 (poziom API 26)).
- Obsługa plików APK w różnych językach w pakiecie SDK aplikacji błyskawicznych na Androida w wersji 1.1 lub nowszej.
-
Możesz teraz zmienić katalog wyjściowy dla projektu kompilacji natywnych aplikacji zewnętrznych, 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 kompilowania projektów natywnych w Android Studio możesz teraz używać CMake 3.7 lub nowszej wersji.
-
Nowa konfiguracja zależności
lintChecks
umożliwia tworzenie pliku JAR z definicją niestandardowych reguł lint i pakowanie go w projektach AAR i APK.Niestandardowe reguły lint muszą należeć do osobnego projektu, który generuje jeden plik JAR i zawiera tylko zależności
compileOnly
. Inne moduły aplikacji i biblioteki mogą zależeć od projektu linta korzystającego z 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 zachowaniu
- Wtyczka Androida 3.0.0 usuwa niektóre interfejsy API, a jeśli ich używasz, kompilacja nie będzie działać prawidłowo. Nie możesz na przykład używać interfejsu Variants API do uzyskiwania dostępu do obiektów
outputFile()
ani do pobierania pliku manifestu dla każdej wersji za pomocą atrybutuprocessManifest.manifestOutputFile()
. Aby dowiedzieć się więcej, przeczytaj artykuł Zmiany w interfejsie API. - Nie musisz już określać wersji dla narzędzi do kompilacji (możesz teraz usunąć właściwość
android.buildToolsVersion
). Domyślnie wtyczka automatycznie używa minimalnej wymaganej wersji narzędzi do kompilowania dla wersji używanej przez Ciebie wtyczki Android. - Teraz możesz włączyć lub wyłączyć kompresję PNG w bloku
buildTypes
, jak pokazano poniżej. Kompresowanie PNG jest domyślnie włączone we wszystkich wersjach, z wyjątkiem wersji debugowych, ponieważ wydłuża czas kompilacji projektów zawierających wiele plików PNG. Aby skrócić czas kompilacji w przypadku innych typów kompilacji, wyłącz kompresję PNG lub konwertuj 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 docelowe pliki wykonywalne skonfigurowane w zewnętrznych projektach CMake.
- Teraz musisz dodać procesory adnotacji do ścieżki klas procesora za pomocą konfiguracji zależności
annotationProcessor
. - Korzystanie z wycofanej właściwości
ndkCompile
jest teraz bardziej ograniczone. Zamiast tego użyj CMake lub ndk-build do skompilowania kodu natywnego, który chcesz zapakować do pliku APK. Więcej informacji znajdziesz w artykule Przejście z ndkcompile.
3.0.0 (październik 2017 r.)
Wtyczka Androida do obsługi Gradle w wersji 3.0.0 zawiera wiele zmian, które mają na celu rozwiązanie problemów z wydajnością dużych projektów.
Na przykład w szkielecie przykładowego projektu z około 130 modułami i dużą liczbą zewnętrznych zależności (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 2.3.0 + Gradle 3.3 | Wtyczka Androida 3.0.0 + Gradle 4.1 |
---|---|---|---|
Konfiguracja (np. uruchamianie ./gradlew --help ) |
~2 min | ~9 s | około 2,5 s |
Zmiana w Javie (1 wiersz kodu) | ok. 2 min 15 s | około 29 s | ~6,4 s |
Niektóre z tych zmian powodują nieprawidłowe działanie dotychczasowych wersji. Zanim zaczniesz używać nowego wtyczki, zastanów się nad nakładem pracy potrzebnym do przeniesienia projektu.
Jeśli nie zauważysz opisanych powyżej ulepszeń wydajności, zgłoś błąd, dołączając ślad kompilacji utworzony za pomocą Profilera Gradle.
Ta wersja wtyczki na Androida wymaga:
- Gradle 4.1 lub nowsza. Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
-
Narzędzie do kompilacji w wersji 26.0.2 lub nowszej. Dzięki 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.)
To drobna aktualizacja, która zapewnia obsługę Android Studio 3.0.1. Zawiera ona ogólne poprawki błędów i ulepszenia wydajności.
Optymalizacje
- Lepsza równoległość w przypadku projektów wielomodułowych dzięki szczegółowemu grafowi zadań.
- Gdy wprowadzasz zmiany w zależności, Gradle wykonuje kompilację szybciej, ponieważ nie kompiluje ponownie modułów, które nie mają dostępu do interfejsu API tej zależności.
Należy ograniczyć, które zależności mogą udostępniać interfejsy API innym modułom, korzystając z nowych konfiguracji zależności Gradle:
implementation
,api
,compileOnly
iruntimeOnly
. - Szybsze kompilowanie przyrostowe dzięki dekodowaniu na poziomie klasy. Każda klasa jest teraz kompilowana w osobne pliki DEX, a tylko zmodyfikowane klasy są ponownie deksonowywane. Szybkość kompilacji powinna się też zwiększyć w przypadku aplikacji, w których parametr
minSdkVersion
ma wartość 20 lub niższą i które korzystają z starszego wieloprocesorowego dekodera. - Zwiększona szybkość kompilacji dzięki optymalizacji niektórych zadań pod kątem używania wyjściowych danych w pamięci podręcznej. Aby skorzystać z tej optymalizacji, musisz najpierw włączyć pamięć podręczną kompilacji Gradle.
- Ulepszone stopniowe przetwarzanie zasobów za pomocą AAPT2, które jest teraz domyślnie włączone. Jeśli podczas korzystania z AAPT2 wystąpią problemy, zgłoś błąd. Możesz też wyłączyć AAPT2, ustawiając wartość
android.enableAapt2=false
w plikugradle.properties
i ponownie uruchamiając demona Gradle, uruchamiając./gradlew --stop
z poziomu wiersza poleceń.
Nowe funkcje
- Zarządzanie zależnościami z uwzględnieniem wariantów. Podczas tworzenia określonej wersji modułu wtyczka automatycznie dopasowuje warianty zależności modułu biblioteki lokalnej do wersji modułu, który tworzysz.
- Zawiera nowy wtyczkę modułu funkcji, która obsługuje aplikacje błyskawiczne na Androida i pakiet SDK aplikacji błyskawicznych na Androida (który można pobrać za pomocą menedżera pakietu SDK). Więcej informacji o tworzeniu modułów funkcji za pomocą nowego wtyczka znajdziesz w artykule Struktura aplikacji błyskawicznej z większą liczbą funkcji.
- Wbudowane wsparcie dla niektórych funkcji języka Java 8 i bibliotek Java 8. Jack jest teraz wycofany i nie jest już wymagany. Najpierw wyłącz Jacka, aby korzystać z ulepszonej obsługi Javy 8 wbudowanej w domyślny zestaw narzędzi. Więcej informacji znajdziesz w artykule Korzystanie z funkcji językowych Java 8.
-
Dodano obsługę uruchamiania testów za pomocą Android Test Orchestrator, która umożliwia uruchamianie każdego testu aplikacji w ramach jego własnego wywołania narzędzia Instrumentation. Każdy test jest uruchamiany w ramach własnego wystąpienia narzędzia do pomiaru wydajności, więc stan wspólny dla testów nie gromadzi się w pamięci ani na procesorze urządzenia. Nawet jeśli jeden test ulegnie awarii, spowoduje to wyłączenie tylko jego instancji narzędzia Instrumentation, więc pozostałe testy będą nadal działać.
- Dodano parametr
testOptions.execution
, aby określić, czy ma być używana koordynacja testów na urządzeniu. Jeśli chcesz korzystać z Android Test Orchestrator, musisz podaćANDROID_TEST_ORCHESTRATOR
, jak pokazano poniżej. Domyślnie ta właściwość ma wartośćHOST
, która wyłącza aranżowanie na urządzeniu i jest standardową metodą uruchamiania testów.
Groovy
android { testOptions { execution 'ANDROID_TEST_ORCHESTRATOR' } }
Kotlin
android { testOptions { execution = "ANDROID_TEST_ORCHESTRATOR" } }
- Dodano parametr
-
Nowa konfiguracja zależności
androidTestUtil
umożliwia zainstalowanie innego pomocniczego pakietu APK do testów, takiego jak Android Test Orchestrator, przed uruchomieniem testów pomiarowych: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 umożliwić testy jednostkowe, które wymagają zasobów Androida, takich jak Roboelectric. Gdy ustawisz tę właściwość natrue
, wtyczka złączy zasoby, komponenty i manifest przed uruchomieniem testów jednostkowych. Testy mogą następnie sprawdzać wartośćcom/android/tools/test_config.properties
w ścieżce klasyfikacji w celu uzyskania tych kluczy:-
android_merged_assets
: bezwzględna ścieżka do katalogu scalonych komponentów.Uwaga: w przypadku modułów bibliotek scalone zasoby nie zawierają zasobów zależności (patrz problem #65550419).
-
android_merged_manifest
: bezwzględna ścieżka do scalonego pliku manifestu. -
android_merged_resources
: bezwzględna ścieżka do katalogu scalonych zasobów, który zawiera wszystkie zasoby z modułu i wszystkie jego zależności. -
android_custom_package
: nazwa pakietu ostatniej klasy R. Jeśli dynamicznie modyfikujesz identyfikator aplikacji, nazwa pakietu może nie odpowiadać atrybuciepackage
w pliku manifestu aplikacji.
-
- Obsługa czcionek jako zasobów (jest to nowa funkcja wprowadzona w Androidzie 8.0 (poziom API 26)).
- Obsługa plików APK w różnych językach w pakiecie SDK aplikacji błyskawicznych na Androida w wersji 1.1 lub nowszej.
-
Możesz teraz zmienić katalog wyjściowy dla projektu kompilacji natywnych aplikacji zewnętrznych, 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 kompilowania projektów natywnych w Android Studio możesz teraz używać CMake 3.7 lub nowszej wersji.
-
Nowa konfiguracja zależności
lintChecks
umożliwia tworzenie pliku JAR z definicją niestandardowych reguł lint i pakowanie go w projektach AAR i APK.Niestandardowe reguły lint muszą należeć do osobnego projektu, który generuje jeden plik JAR i zawiera tylko zależności
compileOnly
. Inne moduły aplikacji i biblioteki mogą zależeć od projektu linta korzystającego z 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 zachowaniu
- Wtyczka Androida 3.0.0 usuwa niektóre interfejsy API, a jeśli ich używasz, kompilacja nie będzie działać prawidłowo. Nie możesz na przykład używać interfejsu Variants API do uzyskiwania dostępu do obiektów
outputFile()
ani do pobierania pliku manifestu dla każdej wersji za pomocą atrybutuprocessManifest.manifestOutputFile()
. Aby dowiedzieć się więcej, przeczytaj artykuł Zmiany w interfejsie API. - Nie musisz już określać wersji dla narzędzi do kompilacji (możesz teraz usunąć właściwość
android.buildToolsVersion
). Domyślnie wtyczka automatycznie używa minimalnej wymaganej wersji narzędzi do kompilowania dla wersji używanej przez Ciebie wtyczki Android. - Teraz możesz włączyć lub wyłączyć kompresję PNG w bloku
buildTypes
, jak pokazano poniżej. Kompresowanie PNG jest domyślnie włączone we wszystkich wersjach, z wyjątkiem wersji debugowych, ponieważ wydłuża czas kompilacji projektów zawierających wiele plików PNG. Aby skrócić czas kompilacji w przypadku innych typów kompilacji, wyłącz kompresję PNG lub konwertuj 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 docelowe pliki wykonywalne skonfigurowane w zewnętrznych projektach CMake.
- Teraz musisz dodać procesory adnotacji do ścieżki klas procesora za pomocą konfiguracji zależności
annotationProcessor
. - Korzystanie z wycofanej właściwości
ndkCompile
jest teraz bardziej ograniczone. Zamiast tego użyj CMake lub ndk-build do skompilowania kodu natywnego, który chcesz zapakować do pliku APK. Więcej informacji znajdziesz w artykule Przejście z ndkcompile.
2.3.0 (luty 2017 r.)
2.3.3 (czerwiec 2017 r.)
To drobna aktualizacja, która zapewnia zgodność z Android Studio 2.3.3.
2.3.2 (maj 2017 r.)
To drobna aktualizacja, która zapewnia zgodność z Android Studio 2.3.2.
2.3.1 (kwiecień 2017 r.)
To drobna aktualizacja wtyczki Androida 2.3.0, która rozwiązuje problem z nieprawidłowym działaniem Instant Run na niektórych fizycznych urządzeniach z Androidem (patrz problem 235879).
- Zależności:
-
- Gradle 3.3 lub nowszy.
- Narzędzie do kompilacji w wersji 25.0.0 lub nowszej.
- Nowość:
-
- Używa Gradle 3.3, który zawiera 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 wygenerowane przez wtyczkę Androida podczas kompilowania projektu (np. rozpakowane pliki AAR i wstępnie zdekodowane zdalne zależności). Czyste kompilacje są znacznie szybsze, gdy używasz pamięci podręcznej, ponieważ system kompilacji może ponownie użyć plików z pamięci podręcznej podczas kolejnych kompilacji, zamiast je ponownie tworzyć. Projekty korzystające z wtyczki Android 2.3.0 lub nowszej wersji używają domyślnie 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 wyczyści pamięć podręczną kompilacji. - Jeśli używasz eksperymentalnej wersji pamięci podręcznej kompilacji (dostępnej w wcześniejszych wersjach wtyczki), zaktualizuj ją do najnowszej wersji.
- Zawiera zadanie
- Zmiany:
-
- Obsługuje zmiany w Instant Run wprowadzone w Android Studio 2.3.
- Czas konfiguracji bardzo dużych projektów powinien być znacznie krótszy.
- Rozwiązano problemy z automatycznym pobieraniem w przypadku biblioteki constraint layout.
- Wtyczka korzysta teraz z wersji ProGuard 5.3.2.
- Zawiera wiele poprawek dla zgłaszanych błędów. Nadal możesz zgłaszać błędy, gdy napotkasz problemy.
2.2.0 (wrzesień 2016 r.)
- Zależności:
-
- Gradle 2.14.1 lub nowsza.
- Narzędzie do kompilacji 23.0.2 lub nowsze.
- Nowość:
-
- Używa Gradle 2.14.1, który zawiera ulepszenia wydajności i nowe funkcje oraz naprawia lukę w zabezpieczeniach umożliwiającą lokalną eskalację uprawnień podczas korzystania z demona Gradle. Więcej informacji znajdziesz w informacjach o wersji Gradle.
- Za pomocą
externalNativeBuild {}
DSL Gradle możesz teraz łączyć natywne źródła i kompilować natywne biblioteki 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 w Gradle znajdziesz w artykule Dodawanie kodu C i C++ do projektu. - Gdy uruchamiasz kompilację z poziomu wiersza poleceń, Gradle próbuje 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 przyspieszenie czasu kompilacji Gradle przez wstępną dekoderyzację, przechowywanie i ponowne używanie zdekodowanych wersji bibliotek. Aby dowiedzieć się więcej o korzystaniu z tej funkcji eksperymentalnej, przeczytaj przewodnik Build Cache.
- Zwiększa wydajność kompilacji dzięki zastosowaniu nowego domyślnego potoku pakowania, który obsługuje kompresowanie, podpisywanie i wyrównywanie pakietów w ramach jednego zadania. Możesz wrócić do korzystania ze starszych narzędzi do pakowania, dodając plik
android.useOldPackaging=true
do plikugradle.properties
. Gdy używasz nowego narzędzia do pakowania, zadaniezipalignDebug
jest niedostępne. Możesz jednak utworzyć go samodzielnie, wywołując metodęcreateZipAlignTask(String taskName, File inputFile, File outputFile)
. - Podpisywanie plików APK odbywa się teraz za pomocą schematu podpisu plików APK w wersji 2, a nie tylko tradycyjnego podpisywania plików JAR. Wszystkie platformy Androida akceptują utworzone pliki APK. Wszelkie zmiany w tych plikach APK po podpisaniu unieważniają ich podpisy v2 i uniemożliwiają instalację na urządzeniu. Aby wyłączyć tę funkcję, dodaj do pliku
build.gradle
na poziomie modułu następujący kod:Groovy
android { ... signingConfigs { config { ... v2SigningEnabled false } } }
Kotlin
android { ... signingConfigs { create("config") { ... v2SigningEnabled = false } } }
- W przypadku kompilacji multidex możesz teraz używać reguł ProGuard do określania, które klasy Gradle powinien skompilować do głównego pliku DEX 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 ProGuarda specjalnie dla głównego pliku DEX prześlij ścieżkę do tego pliku do Gradle za pomocą polecenia
buildTypes.multiDexKeepProguard
. Korzystanie z tego języka opisu jest inne niż korzystanie zbuildTypes.proguardFiles
, który zawiera ogólne reguły ProGuard dla aplikacji i nie określa klas w głównym 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ę na wartośćfalse
w elemencie<application>
w manifeście aplikacji, Gradle skompresuje i zgodnie z wymaganiami spakowałby nieskompresowane wersje bibliotek natywnych z pliku APK. Dzięki temuPackageManager
nie będzie kopiować natywnych bibliotek z pliku APK do systemu plików urządzenia podczas instalacji. Dodatkowo zmniejszy to rozmiar aktualizacji delta aplikacji. - Możesz teraz określić
versionNameSuffix
iapplicationIdSuffix
dla wersji produktu. (Problem 59614)
- Zmiany:
-
-
getDefaultProguardFile
zwraca teraz domyślne pliki ProGuarda, które udostępnia wtyczka Androida do Gradle, i nie używa już plików z Android SDK. - Ulepszone działanie i funkcje kompilatora Jack:
- Jack obsługuje teraz pokrycie testu Jacoco, gdy parametr
testCoverageEnabled
ma wartośćtrue
. - Ulepszona obsługa procesorów adnotacji. Procesory adnotacji w Twoim classpath, takie jak zależności
compile
, są automatycznie stosowane w Twoim kompilacji. Możesz też określić procesor adnotacji w kompilacji i przekazać argumenty, używającjavaCompileOptions.annotationProcessorOptions {}
DSL 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 }
Aby uzyskać listę parametrów, które możesz skonfigurować, uruchom z poziomu wiersza poleceń to polecenie:
java -jar /build-tools/jack.jar --help-properties
- Jack obsługuje teraz pokrycie testu Jacoco, gdy parametr
- Domyślnie, jeśli rozmiar stosu demona Gradle wynosi co najmniej 1,5 GB, Jack działa teraz w tym samym procesie co Gradle. Aby dostosować rozmiar stosu demona, dodaj do pliku
gradle.properties
następujące informacje:# This sets the daemon heap size to 1.5GB. org.gradle.jvmargs=-Xmx1536M
-
2.1.0 (kwiecień 2016 r.)
2.1.3 (sierpień 2016 r.)
Ta aktualizacja wymaga Gradle 2.14.1 lub nowszej. Gradle 2.14.1 zawiera ulepszenia wydajności, nowe funkcje i ważne poprawki zabezpieczeń. Więcej informacji znajdziesz w informacjach o wersji Gradle.
- Zależności:
-
- Gradle 2.10 lub nowsza.
- Narzędzie do kompilacji 23.0.2 lub nowsze.
- Nowość:
-
- Dodano obsługę wersji N Developer Preview, JDK 8 i funkcji języka Java 8 za pomocą zestawu narzędzi Jack. Więcej informacji znajdziesz w przewodniku po podglądzie N.
Uwaga: funkcja Instant Run nie działa obecnie z Jackiem i zostanie wyłączona podczas korzystania z nowej toolchain. Jacka należy używać tylko wtedy, gdy tworzysz aplikację na Androida N w wersji Preview i chcesz korzystać z obsługiwanych funkcji języka Java 8.
- Dodano domyślną obsługę kompilacji przyrostowej Javy, aby skrócić czas kompilacji podczas tworzenia aplikacji. Polega to na ponownym skompilowaniu tylko tych części kodu źródłowego, które uległy zmianie lub wymagają ponownego skompilowania. Aby wyłączyć tę funkcję, dodaj do pliku
build.gradle
na poziomie modułu następujący kod:Groovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
Dodano obsługę dekodowania w ramach procesu, która wykonuje dekodowanie w ramach procesu kompilacji, a nie w oddzielnych, zewnętrznych procesach maszyn wirtualnych. Dzięki temu kompilacje przyrostowe i pełne będą szybsze. Ta funkcja jest domyślnie włączona w przypadku projektów, w których rozmiar maksymalnego stosu demona Gradle został ustawiony na co najmniej 2048 MB. Aby to zrobić, w pliku
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
projektu dodaj ten ciąg:Jeśli w pliku
```none org.gradle.jvmargs = -Xmx3072m ```build.gradle
na poziomie modułu zdefiniowano wartość parametrujavaMaxHeapSize
, należy ustawić parametrorg.gradle.jvmargs
na wartośćjavaMaxHeapSize
+ 1024 MB. Jeśli np. ustawisz wartośćjavaMaxHeapSize
na „2048 m”, musisz dodać do plikugradle.properties
projektu następujący ciąg:Aby wyłączyć dexing-in-process, dodaj do pliku
build.gradle
na poziomie modułu ten kod: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 za pomocą zestawu narzędzi Jack. Więcej informacji znajdziesz w przewodniku po podglądzie N.
2.0.0 (kwiecień 2016 r.)
- Zależności:
-
- Gradle 2.10 lub nowsza.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Nowość:
-
- Umożliwia Instant Run, obsługując wstrzykiwanie kodu bajtowego i przesyłając aktualizacje kodu i zasobów do uruchomionej aplikacji na emulatorze lub urządzeniu fizycznym.
- Dodano obsługę kompilacji przyrostowych nawet wtedy, gdy aplikacja nie jest uruchomiona. Czas kompilacji całego projektu jest krótszy dzięki przesyłaniu przyrostowych zmian za pomocą narzędzia Android Debug Bridge na połączone urządzenie.
- Dodano parametr
maxProcessCount
, który pozwala kontrolować, ile procesów dex może być uruchamianych jednocześnie. Ten kod w plikubuild.gradle
na poziomie modułu 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 zachowanie:
-
- Gdy parametr
minSdkVersion
ma wartość 18 lub wyższą, podpisywanie pliku APK odbywa się przy użyciu funkcji 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 parametr
- Rozwiązane problemy:
-
- Rozwiązaliśmy problem, który powodował powielone zależności AAR w konfiguracjach kompilacji testowej i głównej.
Wtyczka Androida do obsługi Gradle w wersji 1.5.0 (listopad 2015 r.)
- Zależności:
-
- Gradle 2.2.1 lub nowsza.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Uwagi ogólne:
-
- Wtyczka Data Binding została zintegrowana z wtycką Androida do obsługi Gradle. Aby go włączyć, dodaj ten kod do każdego pliku
build.gradle
w ramach projektu, który używa wtyczki: - Dodano nowy interfejs Transform API, aby umożliwić wtyczkom innych firm manipulowanie skompilowanymi plikami
.class
przed ich przekształceniem w pliki.dex
. Interfejs Transform API upraszcza wstrzykiwanie niestandardowych manipulacji klasami, zapewniając jednocześnie większą elastyczność w zakresie manipulacji. Aby wstawić przekształcenie do kompilacji, utwórz nową klasę implementującą jeden z interfejsówTransform
i zarejestruj ją za pomocąandroid.registerTransform(theTransform)
lubandroid.registerTransform(theTransform, dependencies)
. Nie musisz łączyć zadań ze sobą. Uwaga: - Transformację można zastosować do co najmniej jednego z tych elementów: bieżącego projektu, podprojektów i bibliotek zewnętrznych.
- Transformacja musi być zarejestrowana globalnie, co oznacza, że zostanie zastosowana do wszystkich wariantów.
- Przetwarzanie kodu wewnętrznego za pomocą biblioteki Java Code Coverage Library (JaCoCo), ProGuard i MultiDex korzysta teraz z interfejsu Transform API. Jednak pakiet Java Android Compiler Kit (Jack) nie korzysta z tego interfejsu API: korzysta z niego tylko ścieżka kodu
javac/dx
. - Gradle wykonuje przekształcenia w tej kolejności: JaCoCo, wtyczki innych firm, ProGuard. Kolejność wykonywania wtyczek innych firm odpowiada kolejności dodawania przez nie przekształceń. Deweloperzy wtyczek innych firm nie mogą kontrolować kolejności wykonywania przekształceń za pomocą interfejsu API.
- wycofanie z użycia metody
dex
getter z klasyApplicationVariant
. Nie możesz już uzyskać dostępu do zadaniaDex
za pomocą interfejsu API wariantów, ponieważ jest ono teraz wykonywane za pomocą transformacji. Obecnie nie ma żadnego zamiennika dla procesu dex. - Naprawiono obsługę dodatkowych komponentów.
- Ulepszona obsługa MultiDex – udostępnienie tej funkcji w projektach testowych. Testy mają teraz automatycznie zależność
com.android.support:multidex-instrumentation
. - Dodano możliwość prawidłowego przerwania kompilacji Gradle i zgłoszenia przyczyny błędu, gdy kompilacja Gradle wywołuje zadania asynchroniczne, a proces roboczy zakończył się niepowodzeniem.
- Dodano obsługę konfigurowania konkretnego interfejsu binarnego aplikacji (ABI) w wariantach zawierających wiele interfejsów ABI.
- Dodano obsługę listy numerów seryjnych urządzeń rozdzielonych przecinkami dla zmiennej środowiskowej
ANDROID_SERIAL
podczas instalowania i uruchamiania testów. - Usunięto błąd instalacji na urządzeniach z Androidem 5.0 (interfejs API na poziomie 20) lub nowszym, gdy nazwa pliku APK zawiera spacje.
- Rozwiązaliśmy różne problemy związane z wyświetlaniem błędów narzędzia Android Asset Packaging Tool (AAPT).
- Dodano obsługę przyrostowego pomiaru JaCoCo na potrzeby szybszych kompilacji przyrostowych. Wtyczka Androida do obsługi Gradle wywołuje teraz bezpośrednio instrumentator JaCoCo. Aby wymusić nowszą wersję JaCoCo, musisz ją dodać jako zależność skryptu kompilacji.
- Rozwiązano problem z obsługą JaCoCo, aby ignorować pliki, które nie są klasami.
- Dodano obsługę wektorowych obiektów rysujących w celu generowania obrazów PNG na etapie kompilacji w celu zapewnienia zgodności wstecznej.
Wtyczka Androida do obsługi Gradle generuje pliki PNG dla każdego wektora drawable znalezionego w katalogu zasobów, który nie określa wersji interfejsu API lub określa atrybut
android:minSdkVersion
o wartości równej 20 lub niższej w elemencie<uses-sdk>
w manifeście aplikacji. Gęstość plików PNG możesz ustawić, używając właściwościgeneratedDensities
w sekcjidefaultConfig
lubproductFlavor
w plikubuild.gradle
. - Dodano udostępnianie obiektu
android.jar
, który jest generowany przez wtyczkę tylko raz i jest używany do testowania jednostkowego. Teraz udostępniają go różne moduły, np.app
ilib
. Usuń plik$rootDir/build
, aby wygenerować go ponownie. - Zmieniliśmy przetwarzanie zasobów Javy tak, aby odbywało się przed zadaniami zaciemniania zamiast podczas pakowania pliku APK. Ta zmiana umożliwia zadaniom zaciemniania dostosowanie zasobów Javy po zaciemnieniu pakietów.
- Wyeliminowaliśmy problem z korzystaniem z interfejsu JNI (Java Native Interface) w pluginie eksperymentalnej biblioteki.
- Dodaliśmy możliwość ustawienia wersji platformy niezależnie od atrybutu
android:compileSdkVersion
w pluginie biblioteki eksperymentalnej.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- Wtyczka Data Binding została zintegrowana z wtycką Androida do obsługi Gradle. Aby go włączyć, dodaj ten kod do każdego pliku
Wtyczka Androida do obsługi Gradle w wersji 1.3.1 (sierpień 2015 r.)
Zależności:- Gradle 2.2.1 lub nowsza.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Naprawiliśmy zadanie ZipAlign, aby prawidłowo używało danych wyjściowych poprzedniego zadania przy użyciu niestandardowego nazwy pliku.
- Rozwiązano problem z pakowaniem Renderscript za pomocą NDK.
- Utrzymanie obsługi zadania kompilacji
createDebugCoverageReport
. - Naprawiono obsługę niestandardowego użycia właściwości
archiveBaseName
w pliku kompilacjibuild.gradle
. - Rozwiązaliśmy problem z ostrzeżeniem
Invalid ResourceType
lint spowodowanym przez wyszukiwanie adnotacji metody parametru podczas uruchamiania lint poza Android Studio.
Wtyczka Androida do obsługi Gradle w wersji 1.3.0 (lipiec 2015 r.)
Zależności:- Gradle 2.2.1 lub nowsza.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
-
Dodaliśmy obsługę właściwości
com.android.build.threadPoolSize
, aby umożliwić kontrolowanie rozmiaru puli wątków zadańAndroid
z plikugradle.properties
lub z wiersza poleceń. W tym przykładzie wartość tej właściwości to 4.-Pcom.android.build.threadPoolSize=4
- Ustaw domyślne zachowanie 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
. Może to obejmować np. te funkcje:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- Dodano zadanie
sourceSets
, które sprawdza wszystkie dostępne zbiory źródeł. - Ulepszona obsługa testów jednostkowych, która umożliwia rozpoznawanie folderów źródłowych z wieloma wersjami i
wariantami kompilacji. Jeśli na przykład chcesz przetestować aplikację z wieloma wersjami
flavor1
iflavorA
z typem kompilacjiDebug
, zestawy źródeł testu to:- test
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
Testy Androida rozpoznają już 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
jest ustawiona natrue
. - poprawnie rozpoznawać zależności w przypadku każdego typu kompilacji;
- Uruchom
- Dodano obsługę określania argumentów testu instrumentacji z poziomu wiersza poleceń.
Przykład:
./gradlew connectedCheck \ -Pandroid.testInstrumentationRunnerArguments.size=medium \ -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
Dodano obsługę dowolnych dodatkowych parametrów narzędzia Android Asset Packaging Tool (AAPT) w pliku
build.gradle
. Może to obejmować np. te funkcje:android { aaptOptions { additionalParameters "--custom_option", "value" } }
android { aaptOptions { additionalParameters += listOf("--custom_option", "value") } }
- Dodaliśmy obsługę
testowego modułu pliku APK jako osobnego modułu testowego, który za pomocą właściwości
targetProjectPath
itargetVariant
umożliwia ustawienie ścieżki pliku APK oraz wariantu docelowego.Uwaga: testowy moduł pliku APK nie obsługuje wersji produktu i może kierować tylko na jedną wersję. Ponadto Jacoco nie jest jeszcze obsługiwane.
- Dodano weryfikację nazwy zasobu przed scaleniem zasobów.
- Podczas tworzenia pakietu AAR (Android ARchive) dla modułów bibliotek nie podawaj automatycznego
@{applicationId}
w ustawieniach zbiorcy manifestu. Zamiast tego użyj innego zastępnika, np.@{libApplicationId}
, i podaj jego wartość, jeśli chcesz uwzględnić identyfikatory aplikacji w bibliotece archiwum.
Wtyczka Androida do obsługi Gradle w wersji 1.2.0 (kwiecień 2015 r.)
- Zależności:
-
- Gradle 2.2.1 lub nowsza.
- 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 klas podczas uruchamiania testów jednostkowych bezpośrednio z Gradle.
- Dodano obsługę zależności testów jednostkowych dla artefaktów archiwum Androida (AAR).
- Dodano obsługę właściwości
unitTestVariants
, aby można było manipulować wariantami testów jednostkowych za pomocą plikubuild.gradle
. - Dodano blok kodu
unitTest.all
pod elementemtestOptions
, aby skonfigurować niestandardowe zadania do testu jednostkowego. 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. } } }
- Rozwiązaliśmy problem z obsługą typów wyliczeniowych i publicznych pól instancji w pakowaniu pliku
mockable-android.jar
. - Naprawiono zależności zadań projektu biblioteki, aby klasy testowe były ponownie kompilowane po wprowadzeniu zmian.
- Dodaliśmy właściwość
testProguardFile
, która umożliwia stosowanie plików ProGuard podczas kompresowania pliku APK do testowania. - Do bloku kodu
adbOptions
dodaliśmy właściwośćtimeOut
, która umożliwia ustawienie maksymalnego czasu nagrywania ekranu w Android Debug Bridge. - Dodaliśmy obsługę zasobów o rozdzielczości 280 dpi.
- Ulepszona wydajność podczas oceny projektu.
- Ulepszona obsługa uruchamiania testów jednostkowych za pomocą Gradle.
Wtyczka Androida do obsługi Gradle w wersji 1.1.3 (marzec 2015 r.)
- Zależności:
-
- Gradle 2.2.1 lub nowsza.
- 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óre powodowały błąd w ProGuard.
- Rozwiązaliśmy problem z implementacją funkcji porównywania, która nie była zgodna z kontraktem JDK Comparator i generowała błąd JDK 7.
Wtyczka Androida do obsługi Gradle w wersji 1.1.2 (luty 2015 r.)
- Zależności:
-
- Gradle 2.2.1 lub nowsza.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Uwagi ogólne:
-
- Normalizowana ścieżka podczas tworzenia pliku JAR do testowania jednostkowego.
- Naprawiono ustawienie
archivesBaseName
w plikubuild.gradle
. - Rozwiązano problem z nierozwiązanym błędem placeholdera podczas scalania manifestu podczas tworzenia aplikacji testowej biblioteki.
Wtyczka Androida do obsługi Gradle w wersji 1.1.1 (luty 2015 r.)
- Zależności:
-
- Gradle 2.2.1 lub nowsza.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Uwagi ogólne:
-
- Zmodyfikowane warianty kompilacji, tak aby tylko warianty, które zawierają aplikację Wear, wywoływały zadania kompilacji na Wear.
- Zmieniliśmy sposób, w jaki problemy związane z zależnościami powodują błąd, aby nie robiły tego podczas debugowania, tylko podczas kompilacji. Dzięki temu możesz wykonywać zadania diagnostyczne (np. „zależności”), aby rozwiązać konflikt.
- Poprawiono metodę
android.getBootClasspath()
, aby zwracała wartość.
Wtyczka Androida do obsługi Gradle w wersji 1.1.0 (luty 2015 r.)
- Zależności:
-
- Gradle 2.2.1 lub nowsza.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
- Uwagi ogólne:
-
- Dodano obsługę nowych testów jednostkowych.
- Umożliwia testom jednostkowym uruchamianie się na lokalnej maszynie JVM na podstawie specjalnej wersji pliku
android.jar
, która jest zgodna z popularnymi frameworkami do symulacji, takimi jak Mockito. - Dodaliśmy nowe zadania testowe
testDebug
,testRelease
itestMyFlavorDebug
do korzystania z wersji produktu. - Dodano nowe foldery źródeł 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 do testów, np.testCompile 'junit:junit:4.11'
itestMyFlavorCompile 'some:library:1.0'
.Uwaga: zależności przeznaczone tylko do testów nie są obecnie zgodne z Jackiem (kompilatorem Java dla Androida).
- Dodano opcję
android.testOptions.unitTests.returnDefaultValues
, która pozwala kontrolować działanie android.jar w ramach testów. - W nazwach zadań testowych zastąpiono
Test
wartościąAndroidTest
. Na przykład zadanieassembleDebugTest
jest teraz zadaniemassembleDebugAndroidTest
. Zadanie testu jednostkowego nadal zawiera w nazwie znakUnitTest
, na przykładassembleDebugUnitTest
. - Zmodyfikowane pliki konfiguracji ProGuard, aby nie były już stosowane do testowego pliku APK. Jeśli kompresja jest włączona, ProGuard przetwarza testowy plik APK i zastosuje tylko plik mapowania wygenerowany podczas kompresji głównego pliku APK.
- Zaktualizowano zarządzanie zależnościami.
- Rozwiązano problemy związane z użyciem zakresów
provided
ipackage
.Uwaga: te zakresy są niezgodne z pakietami AAR (Android Archive) i spowodują niepowodzenie kompilacji z pakietami AAR.
- Zmodyfikowane rozwiązywanie zależności w celu porównania zależności aplikacji testowanej i aplikacji testowej. Jeśli w obu aplikacjach zostanie znaleziony artefakt o tej samej wersji, nie jest on uwzględniany w aplikacji testowej, a tylko w aplikacji testowanej. Jeśli dla obu aplikacji zostanie znaleziony artefakt z inną wersją, kompilacja zakończy się niepowodzeniem.
- Rozwiązano problemy związane z użyciem zakresów
- Dodaliśmy obsługę
anyDpi
kwalifikatora zasobów w zbiorcy zasobów. - Zwiększona szybkość oceny i synchronizacji IDE w przypadku projektów z dużą liczbą modułów na Androida.
Wtyczka Androida do obsługi Gradle w wersji 1.0.1 (styczeń 2015 r.)
- Zależności:
-
-
Gradle 2.2.1 do 2.3.x.
Uwaga: ta wersja wtyczki Androida do obsługi Gradle nie jest zgodna z Gradle 2.4 i nowszymi wersjami.
- 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 usługą
Disable
przekazującą ustawienie--no-optimize
do kodu bajtowego Dalvik Executable (dex). (Problem 82662). - Rozwiązaliśmy problemy z zapisywaniem pliku manifestu podczas importowania bibliotek z wartością
targetSdkVersion
mniejsza niż 16. - Rozwiązanie problemu z kolejnością ustawień gęstości podczas korzystania z Android 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 w wersji 1.0.0 (grudzień 2014 r.)
- Zależności:
-
-
Gradle 2.2.1 do 2.3.x.
Uwaga: ta wersja wtyczki Androida do obsługi Gradle nie jest zgodna z Gradle 2.4 ani nowszą.
- Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
-
- Uwagi ogólne:
-
- Pierwsza wersja wtyczki.