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

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

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

Edytor układu
Paleta w edytorze układu została znacznie ulepszona:
- Zmiana organizacji kategorii widoków i układów.
- Nowa kategoria Ogólne dla widoków i układów, do której możesz dodawać elementy za pomocą polecenia Ulubione.
- Ulepszone wyszukiwanie widoków i układów.
- Nowe polecenia dotyczące otwierania dokumentacji konkretnego widoku lub elementu układu.
Za pomocą nowego polecenia Convert view (Przekształć widok) w drzewie komponentów lub edytorze projektu możesz przekształcić widok lub układ w inny typ widoku lub układu.
Możesz teraz łatwo tworzyć ograniczenia dla elementów znajdujących się w pobliżu wybranego widoku, korzystając z nowych przycisków Utwórz połączenie w inspektorze widoku u góry okna Atrybuty.
Uruchom i Błyskawiczne uruchamianie
Zachowanie opcji Użyj tego samego wyboru w przyszłości w oknie Wybierz miejsce docelowe wdrożenia zostało ujednolicone. Jeśli opcja Użyj tego samego wyboru jest włączona, okno Wybierz miejsce wdrożenia otwiera się tylko przy pierwszym użyciu polecenia Uruchom, dopóki wybrane urządzenie nie zostanie odłączone.
W przypadku kierowania na urządzenie z Androidem 8.0 (poziom interfejsu API 26) lub nowszym natychmiastowe uruchamianie może wdrażać zmiany w zasobach bez ponownego uruchamiania aplikacji. Jest to możliwe, ponieważ zasoby znajdują się w podzielonym pliku APK.
Emulator
Szczegółowe informacje o nowościach i zmianach w emulatorze od czasu Androida Studio 3.0 znajdziesz w informacjach o wersjach emulatora Androida od wersji 27.0.2 do wersji 27.1.12.
Najważniejsze ulepszenia:
- Migawki szybkiego uruchamiania umożliwiające zapisywanie stanu emulatora i szybsze uruchamianie, z możliwością użycia polecenia Zapisz teraz do zapisania niestandardowego stanu początkowego.
- Ekran emulatora bez okna.
- Obrazy systemu dla Androida 8.0 (poziom 26 interfejsu API), Androida 8.1 (poziom 27 interfejsu API) i wersji deweloperskiej Androida P.
Ulepszenia interfejsu i wygody użytkownika
Więcej etykietek, skrótów klawiszowych i przydatnych komunikatów
W wielu miejscach w Android Studio dodaliśmy etykietki i przydatne nakładki z wiadomościami.
Aby zobaczyć skróty klawiszowe dla wielu poleceń, przytrzymaj wskaźnik myszy nad przyciskiem, aż pojawi się etykietka.
Menu Narzędzia > Android zostało usunięte
Menu Narzędzia > Android zostało usunięte. Polecenia, które wcześniej były dostępne w tym menu, zostały przeniesione.
- Wiele poleceń zostało przeniesionych bezpośrednio pod menu Narzędzia.
- Polecenie Synchronizuj projekt z plikami Gradle zostało przeniesione do menu Plik.
- Polecenie Monitor urządzenia zostało usunięte z powodu opisanych poniżej zmian.
Monitor urządzenia dostępny z wiersza poleceń
W Androidzie Studio 3.1 Monitor urządzenia odgrywa mniejszą rolę niż wcześniej. W wielu przypadkach funkcje dostępne w Monitorze urządzeń są teraz zapewniane przez nowe i ulepszone narzędzia.
Instrukcje wywoływania Monitora urządzeń z wiersza poleceń oraz szczegółowe informacje o narzędziach dostępnych w Monitorze urządzeń znajdziesz w dokumentacji Monitora urządzeń.