Android Studio 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. - Ulepszyliśmy 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 z projektu bazowego, 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 po użyciu Edytora układu Android Studio działało wolno i nie reagowało. 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 Kotlinie kończyła się niepowodzeniem, gdy została uruchomiona za pomocą polecenia 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 Wersje kompilacji.
- Pliki AAR (archiwum Androida) zostały wyodrębnione dwukrotnie: raz podczas procesu synchronizacji Gradle i raz podczas procesu kompilacji Gradle.
- W niektórych wektorowych obiektach 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
Główne ś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
rozumieją tabele SQL (elementy), kolumny, parametry zapytań, 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 kliknąć element, przytrzymując klawisz Control (Command na Macu).
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 gradle.properties
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.
Przyrostowy 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 udogodnienia 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 w wersji 3.0 lub nowszej 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 rdzenne 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, które zostały wysłane lub odebrane w wybranej części osi czasu na wszystkich wątkach procesora Twojej 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);
- Wyświetl 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, korzystając z nowych przycisków 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 Wybieranie celu wdrożenia otworzy się tylko przy pierwszym użyciu polecenia Uruchom i będzie się otwierać za każdym razem, gdy wybrane urządzenie będzie odłączone.
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, 27.1.12 i później.
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 wersji zapoznawczej Androida P dla programistó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.
Monitorowanie urządzenia dostępne 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ń.