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.)
Aktualizacja Android Studio 3.1 obejmuje następujące zmiany i poprawki:
- Dołączony Kotlin ma teraz wersję 1.2.50.
-
Nowe projekty są tworzone z użyciem
kotlin-stdlib-jdk* artifacts
, a nie z użyciem artefaktówkotlin-stdlib-jre*
, które zostały wycofane. - Ulepszono analizowanie reguł ProGuard w wersji R8.
- Naprawiliśmy 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 wiązań danych był oparty na 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 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ć Androida Studio z komunikatem
ProcessCanceledException
podczas inicjowania klasy dlacom.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 podczas zamykania Android Studio zawieszało się na czas nieokreślony.
-
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łączone było błyskawiczne uruchamianie, kompilacje nowych projektów Kotlin nie powiodły się po aktywowaniu polecenia Run.
-
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 wektorowych obiektach rysunkowych 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 do 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 sal, możesz korzystać z kilku ulepszeń dotyczących edycji SQL:
- Uzupełnianie kodu w elemencie
Query
rozpoznaje tabele (encje), kolumny, parametry zapytań, aliasy, złączenia, zapytania podrzędne i klauzule WITH. - Wprowadzono wyróżnianie składni SQL.
- Możesz kliknąć prawym przyciskiem myszy nazwę tabeli w SQL i zmienić jej nazwę, co spowoduje również przepisanie odpowiedniego kodu Java lub Kotlin (w tym na przykład zwracany typ zapytania). Zmiana nazwy działa też w drugą stronę, więc zmiana nazwy klasy lub pola Java powoduje zmodyfikowanie 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:
-
Możesz teraz używać obiektu
LiveData
jako obserwowalnego pola w wyrażeniach wiązania danych. 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
- Ulepszona generacja kodu (lepsza alokacja rejestrów, inteligentniejsze tabele ciągów znaków)
- ulepszone debugowanie podczas przechodzenia po kodzie,
Aby uzyskać te korzyści, nie musisz wprowadzać żadnych zmian w kodzie ani w przepływie pracy programistycznym, chyba że kompilator D8 został wcześniej wyłączony ręcznie.
Jeśli w gradle.properties
ustawisz android.enableD8
na 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 ulepszenia do postaci, którą kompilator może przetworzyć wydajniej.
Możesz wyłączyć przyrostowe odsłuchiwanie, określając w pliku gradle.properties
projektu te elementy:
android.enableIncrementalDesugaring=false
Uproszczone okno wyjściowe
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 z Androidem 4.1 (poziom interfejsu API 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-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 poziomu wiersza poleceń analizuje teraz klasy Kotlin.
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, wdróż aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, a następnie wybierz Próbkowane (natywne) w menu konfiguracji rejestrowania procesora w programie profilującym. Następnie zapisz i sprawdź log czasu w zwykły sposób.
Możesz zmienić ustawienia domyślne, takie jak interwał próbkowania, tworząc konfigurację nagrywania.
Aby przełączyć się z powrotem na śledzenie wątków Java, wybierz konfigurację próbkowana (Java) lub instrumentowana (Java).
Filtruj ślady procesora, wyniki alokacji pamięci i zrzuty stosu
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 program profilujący sieci dostarczał tylko informacje o odpowiedziach sieciowych.
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 wybranym fragmencie osi czasu we 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ść sieciową każdego wątku procesora aplikacji. Ten widok umożliwia sprawdzenie, które wątki Twojej aplikacji odpowiadają za poszczególne żądania sieci.
Narzędzie do inspekcji 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ększenia i skróty klawiszowe do poruszania się 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);
- Renderowanie podglądu podrzędnego drzewa w celu wyizolowania widoku w złożonym 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.
Możesz teraz łatwo tworzyć ograniczenia dla elementów w pobliżu wybranego widoku za pomocą nowych przycisków Utwórz połączenie w inspektorze widoków u góry okna Atrybuty.
Uruchamianie i uruchamianie błyskawiczne
Bardziej spójny jest sposób działania opcji Używaj tego samego wyboru w przypadku przyszłych uruchomień w oknie Wybierz miejsce docelowe wdrożenia. Jeśli włączona jest opcja Użyj tych samych, okno Wybierz cel wdrożenia otworzy się tylko przy pierwszym użyciu polecenia Uruchom i będzie widoczne 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 są zawarte 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.
Główne usprawnienia to między innymi:
- 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.
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ń.