Android Studio 3.1 (marzec 2018 r.)

Android Studio 3.1.0 to wersja główna, która zawiera wiele nowych funkcji i ulepszeń.

3.1.4 (sierpień 2018 r.)

Ta aktualizacja Androida Studio 3.1 zawiera te zmiany i poprawki:

  • Dołączony język Kotlin jest teraz w wersji 1.2.50.
  • Nowe projekty są tworzone z kotlin-stdlib-jdk* artifacts, a nie z artefaktami kotlin-stdlib-jre*, które zostały wycofane.
  • Ulepszono analizowanie reguł ProGuard przez R8.
  • Naprawiono te błędy:
    • Próba uruchomienia klasy głównej Kotlin zakończyła się błędem: "Error: Could not find or load main class..."
    • Podczas wykonywania niektórych optymalizacji R8 wpadł 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łędem VerifyError:invoke-super/virtual can't be used on private method
    • Kompilator powiązań danych korzystał ze starej wersji com.android.tools:annotations. Kompilator używa teraz adnotacji narzędzi z projektu podstawowego, jeśli są dostępne.
    • Podczas korzystania z profilerów Android Studio ulegał awarii podczas przejść między fragmentami.
    • Podczas debugowania układu z polem tekstowym debugger ulegał awarii.
    • D8 nie mógł odczytać niektórych plików ZIP zawierających znaki specjalne.

3.1.3 (czerwiec 2018 r.)

Ta aktualizacja Androida Studio 3.1 zawiera poprawki tych błędów:

  • Wycieki pamięci powodowały, że po użyciu [narzędzia] Layout Editor Android Studio działał wolno i nie odpowiadał. Ta aktualizacja zawiera poprawki dla większości tych problemów. Wkrótce udostępnimy kolejną aktualizację, która rozwiąże dodatkowe problemy z wyciekami 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 INSTALL_FAILED_DEXOPT błędu 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 interfejsu API 19).
  • Czasami nie można było uruchomić Androida Studio z powodu błędu ProcessCanceledException podczas inicjowania klasy com.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 podczas zamykania Android Studio zawieszał się na czas nieokreślony.
  • Kompilacje skonfigurowane z zestawami źródeł nie powiodły się z powodu tego komunikatu, gdy włączono funkcję Instant Run:

    "The SourceSet name is not recognized by the Android Gradle Plugin."

  • Gdy włączono funkcję Instant Run, kompilacje nowych projektów Kotlin nie powiodły się po uruchomieniu polecenia Uruchom.
  • Podczas edytowania 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 tworzenia plików DEX występowały błędy kompilacji z tym komunikatem o błędzie:

    "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

  • Podczas obliczania listy głównej DEX D8 nie uwzględniał niektórych wywołań refleksyjnych.

Ta aktualizacja zawiera też zmiany, które w niektórych przypadkach znacznie przyspieszają przeprowadzanie kontroli lint z 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ł otwarty po raz pierwszy w Androidzie Studio 3.1, zadanie Make obsługujące Gradle zostało usunięte z obszaru Przed uruchomieniem w sekcji Konfiguracje 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 funkcji Instant Run.

    Aby rozwiązać ten problem, Android Studio 3.1.1 dodaje zadanie Make obsługujące Gradle do konfiguracji uruchamiania projektów, w których brakuje tego wpisu. Ta modyfikacja następuje po pierwszej synchronizacji Gradle podczas wczytywania projektu.

  • Podczas debugowania układu z polem tekstowym debugger ulegał awarii, jeśli włączono profilowanie zaawansowane.
  • Po kliknięciu Warianty kompilacji Android Studio zawieszał się.
  • Pliki AAR (archiwum Androida) były wyodrębniane 2 razy – raz podczas synchronizacji Gradle i raz podczas kompilacji Gradle.
  • W niektórych grafikach wektorowych importowanych 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 konfiguracji implementation i api. Szczegółowe informacje o migracji z konfiguracji compile znajdziesz w dokumentacji nowych konfiguracji zależności.

Kodowanie/IDE

IntelliJ 2017.3.3

Podstawowe środowisko IDE Androida 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 dopuszczalności wartości null, nowe szybkie poprawki i wiele innych.

Szczegółowe informacje znajdziesz w informacjach o wersji JetBrains dla IntelliJ IDEA w wersjach 2017.2 i 2017.3, a także w informacjach o wersji JetBrains dotyczących aktualizacji poprawek błędów.

Ulepszenia edycji SQL w Room

Gdy używasz biblioteki bazy danych Room, możesz korzystać z kilku ulepszeń edycji SQL:

  • Autouzupełnianie kodu w Query rozpoznaje tabele SQL (elementy), kolumny, parametry zapytań, aliasy, łączenia, podzapytania i klauzule WITH.
  • Działa teraz wyróżnianie składni SQL.
  • 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 np. zwracanego typu zapytania). Zmiana nazwy działa też w drugą stronę, więc zmiana nazwy klasy lub pola Java spowoduje przepisanie odpowiedniego kodu SQL code.
  • Użycie SQL jest widoczne podczas korzystania z opcji Znajdź użycia (kliknij prawym przyciskiem myszy i wybierz Znajdź użycia z menu kontekstowego).
  • Aby przejść do deklaracji elementu SQL w kodzie Java lub Kotlin, możesz przytrzymać klawisz Control (Command na Macu) podczas klikania elementu.

Informacje o używaniu SQL z Room znajdziesz w artykule Zapisywanie danych w lokalnej bazie danych za pomocą biblioteki Room.

Aktualizacje powiązań danych

Ta aktualizacja zawiera kilka ulepszeń dla powiązań danych:

  • Możesz teraz używać obiektu LiveData jako pola obserwowalnego w wyrażeniach powiązań danych. Klasa ViewDataBinding zawiera teraz nową metodę setLifecycle(), której używasz do obserwowania LiveData obiektów.

  • Klasa ObservableField może teraz akceptować inne Observable obiekty w swoim konstruktorze.

  • Możesz wyświetlić podgląd nowego kompilatora przyrostowego dla klas powiązań danych danych. Szczegółowe informacje o tym nowym kompilatorze i instrukcje dotyczące jego włączania znajdziesz w artykule Kompilator powiązań danych w wersji 2.

    Zalety nowego kompilatora:

    • ViewBinding klasy są generowane przez wtyczkę Androida do obsługi Gradle przed kompilatorem Java.
    • Biblioteki zachowują wygenerowane klasy powiązań podczas kompilowania aplikacji, zamiast być generowane ponownie za każdym razem. Może to znacznie zwiększyć wydajność w przypadku projektów wielomodułowych.

Kompilator i Gradle

D8 to domyślny kompilator DEX

Kompilator D8 jest teraz domyślnie używany do generowania kodu bajtowego DEX.

Ten nowy kompilator DEX ma kilka zalet, m.in.:

  • Szybsze tworzenie plików DEX
  • Mniejsze wykorzystanie pamięci
  • Ulepszone generowanie kodu (lepsze przydzielanie 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 programowania workflow, chyba że wcześniej ręcznie wyłączyłeś kompilator D8.

Jeśli w pliku 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 usuwanie cukru syntaktycznego

W przypadku projektów, które korzystają z funkcji języka Java 8, przyrostowe usuwanie cukru syntaktycznego jest domyślnie włączone, co może skrócić czas kompilacji.

Odlukrzanie przekształca lukier syntaktyczny w formę, którą kompilator może przetwarzać wydajniej.

Aby wyłączyć przyrostowe usuwanie cukru syntaktycznego, w pliku gradle.properties projektu wpisz:

        android.enableIncrementalDesugaring=false
      

Uproszczone okno danych wyjściowych

Konsola Gradle została zastąpiona oknem Kompilacja z kartami Synchronizacja i Kompilacja.

Szczegółowe informacje o tym, jak korzystać z nowego, uproszczonego okna Kompilacja, zobaczMonitorowanie procesu kompilacji.

Aktualizacje zbiorcze i współbieżność indeksowania

Procesy synchronizacji Gradle i indeksowania IDE są teraz znacznie wydajniejsze, co pozwala ograniczyć 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 programowania w C++. Ulepszenia obejmują:

  • Jeśli pracujesz nad dużymi projektami w C++, powinieneś zauważyć znaczną poprawę w zakresie skrócenia czasu kompilacji symboli. W przypadku dużych projektów znacznie skrócono też czas synchronizacji.

  • Dzięki bardziej agresywnemu ponownemu wykorzystywaniu wyników z pamięci podręcznej poprawiono wydajność podczas kompilowania i synchronizowania z CMake.

  • 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 (poziom interfejsu API 16) i nowszym.

Uwaga: debugowanie natywne w Androidzie 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

Kotlin zaktualizowany do wersji 1.2.30

Android Studio 3.1 zawiera język Kotlin w wersji 1.2.30.

Kod Kotlin jest teraz analizowany za pomocą kontroli lint w wierszu poleceń

Uruchomienie lint z wiersza poleceń powoduje teraz analizę klas Kotlin.

W przypadku każdego projektu, w którym chcesz uruchomić lint, repozytorium Google Maven musi być uwzględnione w pliku build.gradle najwyższego poziomu. Repozytorium Maven jest już uwzględnione w projektach utworzonych w Androidzie Studio 3.0 i nowszym.

Narzędzia do kontroli skuteczności

Próbkowanie natywnych procesów C++ za pomocą CPU Profilera

CPU Profiler zawiera teraz konfigurację domyślną 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 w menu konfiguracji nagrywania profilera procesora wybierz Próbkowane (natywne). Następnie nagraj i sprawdź ślad w zwykły sposób.

Możesz zmienić ustawienia domyślne, takie jak interwał próbkowania, by tworząc konfigurację nagrywania.

Aby wrócić do śledzenia wątków Java, wybierz konfigurację Próbkowane (Java) lub Instrumentowane (Java).

Filtrowanie śladów procesora, wyników przydzielania pamięci i zrzutów sterty

The CPU Profiler and Memory Profiler include a search feature that allows you to filter results from recording a method trace, memory allocations, or heap dump.

Aby wyszukać, w prawym górnym rogu panelu kliknij Filtr , 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 powiązane z zapytaniem, są wyróżnione i przenoszone na lewą stronę wykresu.

Więcej informacji o filtrowaniu według metody, klasy lub nazwy pakietu znajdziesz w artykule Nagrywanie i sprawdzanie śladów metod.

Karta Żądanie w profilerze sieci

Network Profiler zawiera teraz kartę Żądanie, która zawiera szczegółowe informacje o żądaniach sieciowych w wybranym okresie. W poprzednich wersjach profiler sieci zawierał tylko informacje o odpowiedziach sieciowych.

Widok wątków w profilerze sieci

Po wybraniu części osi czasu w Network Profiler, możesz wybrać jedną z tych kart, aby wyświetlić więcej szczegółów o aktywności sieciowej w tym okresie:

  • Widok połączenia: 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 umożliwia sprawdzenie, które wątki aplikacji są odpowiedzialne za poszczególne żądania sieciowe.

Layout Inspector

Layout Inspector zyskał nowe funkcje, w tym niektóre, które wcześniej były dostępne w wycofanych narzędziach Przeglądarka hierarchii i Pixel Perfect:

  • Przyciski powiększenia i skróty klawiszowe do przeglądania i sprawdzania układów.
  • Nakładka siatki odniesienia.
  • Możliwość wczytania obrazu referencyjnego i użycia go jako nakładki (przydatne do porównywania układu z makietą interfejsu).
  • Podgląd poddrzewa renderowania , aby wyizolować widok w złożonym układzie.

Layout Editor

Paleta w narzędziu Layout Editor została znacznie ulepszona:

Możesz użyć nowego Konwertuj widok polecenia w Drzewie komponentów lub edytorze projektu, aby przekonwertować widok lub układ na 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.

Uruchamianie i Instant Run

Ujednolicono działanie opcji Użyj tego samego wyboru do przyszłych uruchomień w oknie Wybierz miejsce docelowe wdrożenia. Jeśli opcja Użyj tego samego wyboru jest włączona, okno Wybierz miejsce docelowe wdrożenia otwiera się tylko przy pierwszym użyciu Uruchom polecenia do momentu odłączenia wybranego urządzenia.

Gdy kierujesz reklamy na urządzenie z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, funkcja Instant Run może wdrażać zmiany w zasobach bez ponownego uruchamiania aplikacji. Jest to możliwe, ponieważ zasoby znajdują się w dzielonym pakiecie APK.

Emulator

Szczegółowe informacje o nowościach i zmianach w Android Emulatorze od czasu Android Studio 3.0 znajdziesz w informacjach o wersji Android Emulatora od wersji 27.0.2 do wersji 27.1.12.

Główne ulepszenia:

  • Quick Boot zrzuty stanu emulatora i szybsze uruchamianie, z możliwością użycia polecenia Zapisz teraz , aby zapisać niestandardowy stan początkowy.
  • Ekran emulatora bez okna.
  • Obrazy systemu dla Androida 8.0 (poziom interfejsu API 26), Androida 8.1 (poziom interfejsu API 27) i wersji przedpremierowej dla programistów Androida P.

Ulepszenia interfejsu i wrażeń użytkownika ulepszenia

Więcej podpowiedzi, skrótów klawiszowych, i przydatnych komunikatów

W wielu miejscach w Androidzie Studio dodaliśmy podpowiedzi i przydatne nakładki komunikatów.

Aby zobaczyć skróty klawiszowe do wielu poleceń, przytrzymaj kursor myszy nad przyciskiem, aż pojawi się podpowiedź.

Usunięto menu Narzędzia > Android

Menu Narzędzia > Android zostało usunięte. Polecenia które wcześniej znajdowały się 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 Monitor urządzenia zostało usunięte, jak opisano poniżej.

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ądzenia są teraz dostępne w nowych i ulepszonych narzędziach.

Instrukcje dotyczące wywoływania Monitora urządzenia z wiersza poleceń oraz szczegółowe informacje o narzędziach dostępnych w Monitorze urządzenia znajdziesz w dokumentacji Monitora urządzenia.