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.
  • 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 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łędem VerifyError: invoke-super/virtual can't be used on private method
    • Kompilator powiązywania danych korzystał ze starszej wersji com.android.tools:annotations. Kompilator korzysta teraz z adnotacji narzędzi z projektu bazowego, gdy są one dostępne.
    • Android Studio uległ 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 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 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 planujemy udostępnić 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 skompilowane 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 występował błąd 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 Android Studio zawieszał 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 języku Kotlin wywoływane poleceniem Uruchom kończyły się niepowodzeniem.
  • 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 Android Studio 3.0 został otwarty po raz pierwszy w Android 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 szybkiego uruchamiania.

    Aby rozwiązać ten problem, Android Studio 3.1.1 dodaje zadanie Make (z obsługą Gradle) do konfiguracji uruchamiania 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 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 konfiguracji implementation i api. Szczegółowe informacje o rezygnowaniu z konfiguracji compile 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 dopuszczalności wartości null, nowe szybkie poprawki i wiele innych.

Szczegółowe informacje znajdziesz w informacjach o wersji JetBrains dotyczących wersji IntelliJ IDEA 2017.2 i 2017.3 oraz w informacjach o wersji 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:

  • Autouzupełnianie kodu w Query rozumie tabele SQL (encje), 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 (w tym np. zwracanego typu 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 Macu) 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.

Aktualizacje wiązania 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. Klasa ViewDataBinding zawiera teraz nową metodę setLifecycle(), która służy do obserwowania obiektów LiveData.

  • Klasa ObservableField<0x000D> może teraz akceptować inne obiekty Observable w konstruktorze.

  • 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:

    • ViewBinding klasy są generowane przez wtyczkę Androida do obsługi Gradle przed kompilatorem Java.
    • Biblioteki zachowują wygenerowane klasy powiązań, gdy aplikacja jest kompilowana, zamiast być ponownie generowane za każdym razem. Może to znacznie zwiększyć wydajność 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.

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 programowania, chyba że wcześniej ręcznie wyłączyłeś(-aś) kompilator D8.

Jeśli w gradle.properties ustawisz wartość android.enableD8 na false, usuń tę flagę lub ustaw ją na true:

        android.enableD8=true
      

Szczegółowe informacje 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 syntactic sugar w formę, którą kompilator może przetwarzać wydajniej.

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

        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 w 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 zapisanych w 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-bitowej wersji systemu 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 build.gradle najwyższego poziomu musi być uwzględnione repozytorium Maven firmy Google. 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ą narzędzia CPU Profiler

CPU Profiler 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 mają 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 w profilerze procesora stosy wywołań zawierające metody powiązane z 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 narzędziu Network Profiler

Narzędzie Network Profiler 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 sieci.

Widok wątków w profilerze sieci

Po wybraniu części osi czasu w profilu 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 na 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 Przeglądarka hierarchii 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 narzędziu Layout Editor 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

Działanie opcji Użyj tego samego wyboru w przypadku przyszłych uruchomień w oknie Wybierz miejsce docelowe wdrożenia zostało ujednolicone. Jeśli opcja Użyj tego samego wyboru jest włączona, okno Wybierz miejsce docelowe wdrożenia otworzy się tylko za pierwszym razem, gdy użyjesz 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 dzielonym pakiecie 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, aby zapisać niestandardowy stan początkowy.
  • Ekran emulatora bez okna.
  • Obrazy systemu dla Androida 8.0 (API na poziomie 26), Androida 8.1 (API na poziomie 27) i wersji przedpremierowej dla programistów 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 do wielu poleceń, przytrzymaj wskaźnik myszy nad przyciskiem, aż pojawi się etykietka.

Narzędzia > Usunięto menu Androida

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ądzeń odgrywa mniejszą rolę niż wcześniej. W wielu przypadkach funkcje dostępne w Monitorze urządzeń są teraz dostępne w ramach nowych i ulepszonych narzędzi.

Instrukcje dotyczące 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ń.