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ów kotlin-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łędem VerifyError: 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łą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ł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 uruchomieniemkonfiguracjach 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 konfiguracji implementationapi. Szczegółowe informacje o migracji 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 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.22017.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. Klasa ViewDataBinding zawiera teraz nową metodę setLifecycle(), która służy do obserwowania obiektów LiveData.

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

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

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 SynchronizacjaKompilacja.

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 procesoraProfiler 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

Paletaedytorze 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ń.