Android Studio 3.4 (kwiecień 2019 r.)

Android Studio 3.4 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.

3.4.2 (lipiec 2019 r.)

Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualizacjami wersji.

3.4.1 (maj 2019 r.)

Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Aby zobaczyć listę istotnych poprawek błędów, przeczytaj odpowiedni post na blogu z aktualizacjami wersji.

Znane problemy w wersji 3.4.0

  • Profilowanie jest wyłączone podczas wdrażania aplikacji na urządzenie z Androidem Q Beta.

  • Podczas korzystania z Data Binding Library funkcja LiveDataListener.onChanged() może zakończyć się niepowodzeniem z błędem NPE. Poprawka tego problemu zostanie uwzględniona w Android Studio 3.4.1 i jest już dostępna w najnowszej wersji w wersji zapoznawczej Android Studio 3.5. (zobacz problem #122066788)

IntelliJ IDEA 2018.3.4

Główne środowisko programistyczne Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA do wersji 2018.3.4.

Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.4.0

Informacje o nowościach we wtyczce Androida do obsługi Gradle 3.4.0 znajdziesz w notatkach do wersji.

Okno nowej struktury projektu

Nowe okno dialogowe struktury projektu ułatwia aktualizowanie zależności i konfigurowanie różnych aspektów projektu, takich jak moduły, warianty kompilacji, konfiguracje podpisywania i zmienne kompilacji.

Plik PSD możesz otworzyć, wybierając Plik > Struktura projektu na pasku menu. Możesz też otworzyć plik PSD, naciskając Ctrl+Shift+Alt+S w systemie Windows lub Linux albo Command+; (przecinek) w systemie macOS. Poniżej znajdziesz opisy niektórych nowych i zaktualizowanych sekcji PSD.

Zmienne

Nowa sekcja zmiennych w PSD umożliwia tworzenie zmiennych kompilacji i zarządzanie nimi, np. w celu utrzymywania spójności numerów wersji zależności w całym projekcie.

  • Szybkie wyświetlanie i edytowanie zmiennych kompilacji, które są już dostępne w skryptach kompilacji Gradle w projekcie.
  • Dodawanie nowych zmiennych kompilacji na poziomie projektu lub modułu bezpośrednio z PSD.

Uwaga: jeśli istniejące pliki konfiguracji kompilacji przypisują wartości za pomocą złożonych skryptów Groovy, możesz nie mieć możliwości ich edytowania za pomocą PSD. Ponadto za pomocą PSD nie można edytować plików kompilacji napisanych w Kotlinie.

Moduły

Skonfiguruj właściwości stosowane do wszystkich wariantów kompilacji w dotychczasowym module lub dodaj nowe moduły do projektu w sekcji Moduły. Na przykład możesz tu konfigurować właściwości defaultConfig lub zarządzać konfiguracjami podpisywania.

Zależności

Aby sprawdzić i wizualizować każdą zależność w graficznej reprezentacji zależności w projekcie, która została rozwiązana przez Gradle podczas synchronizacji projektu, wykonaj te czynności:

  1. W panelu po lewej stronie PSD kliknij Zależności.
  2. W panelu Moduły wybierz moduł, którego rozstrzygnięte zależności chcesz sprawdzić.
  3. Po prawej stronie pliku PSD otwórz panel Rozwiązane zależności, który jest pokazany poniżej.

Możesz też szybko wyszukać i dodać zależności do projektu, wybierając najpierw moduł w sekcji Zależności w pliku PSD, klikając przycisk (+) w sekcji Zadeklarowane zależności i wybierając typ zależności, którą chcesz dodać.

W zależności od wybranego typu zależności powinno się wyświetlić okno podobne do tego poniżej, które pomoże Ci dodać zależność do modułu.

Tworzenie wariantów

W tej sekcji pliku PSD utwórz i skonfiguruj warianty kompilacji oraz wersje produktu dla każdego modułu w projekcie. Możesz dodawać m.in. zastępcze manifesty, pliki ProGuard i przypisywać klucze podpisywania.

Sugestie

Sugerowane zmiany zależności projektu i zmienne kompilacji znajdziesz w sekcji Sugestia, jak pokazano na ilustracji poniżej.

Nowy menedżer zasobów

Menedżer zasobów to nowe okno narzędzi służące do importowania, tworzenia, zarządzania i używania zasobów w aplikacji. Aby otworzyć okno narzędzi, na pasku menu kliknij Widok > Okna narzędzi > Menedżer zasobów. Za pomocą Menedżera zasobów możesz:

  • Wizualizacja zasobów: możesz wyświetlić podgląd obiektów do rysowania, kolorów i schematów, aby szybko znaleźć potrzebne zasoby.
  • Import zbiorczy: możesz zaimportować wiele zasobów rysowanych naraz, przeciągając je i upuszczając w oknie narzędzia Menedżer zasobów lub używając kreatora Importowanie zasobów rysowanych. Aby otworzyć kreatora, kliknij przycisk (+) w lewym górnym rogu okna narzędzia, a potem w menu kliknij Importuj elementy rysowalne.
  • Konwertowanie plików SVG na obiekty VectorDrawable: za pomocą kreatora Importowanie elementów do rysowania możesz konwertować obrazy SVG na obiekty VectorDrawable.
  • Przeciąganie i upuszczanie komponentów: w oknie narzędzi Menedżer zasobów możesz przeciągać i upuszczać komponenty w widoku projektu i widoku XML w Edytorze układu.
  • Wyświetlanie wersji alternatywnych: teraz możesz wyświetlać alternatywne wersje zasobów, klikając je dwukrotnie w oknie Narzędzia. Ten widok pokazuje różne utworzone przez Ciebie wersje i zastosowane w nich warunki.
  • Widok kafelków i widok listy: w oknie narzędzia możesz zmieniać widok, aby wizualizować zasoby w różnych układach.

Więcej informacji znajdziesz w przewodniku Zarządzanie zasobami aplikacji.

Sprawdzanie identyfikatorów wersji podczas profilowania i debugowania plików APK

Gdy podasz pliki symboli debugowania dla współdzielonych bibliotek .so w pliku APK, Android Studio zweryfikuje, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji bibliotek .so w pliku APK.

Jeśli kompilujesz biblioteki natywne w pliku APK z identyfikatorem kompilacji, Android Studio sprawdza, czy identyfikator kompilacji w plikach symboli jest zgodny z identyfikatorem kompilacji w bibliotekach natywnych. W przeciwnym razie pliki symboli zostaną odrzucone. Jeśli kompilacja nie została wykonana z identyfikatorem kompilacji, podanie nieprawidłowych plików symboli może spowodować problemy z debugowaniem.

R8 jest domyślnie włączone

R8 łączy desugaring, kompresowanie, zaciemnianie, optymalizację i dexing w jednym kroku, co powoduje znaczne polepszenie wydajności kompilacji. R8 zostało wprowadzone w pliku Android Gradle plugin 3.3.0 i jest teraz domyślnie włączone w przypadku zarówno aplikacji, jak i projektów bibliotek Androida korzystających z pliku plugin 3.4.0 lub nowszej wersji.

Ilustracja poniżej przedstawia ogólny proces kompilacji przed wprowadzeniem R8.

Przed R8 ProGuard był innym etapem kompilacji niż dexing i desugaring.

Obecnie w wersji R8 desugaring, shrinking, obfuscating, optymalizacja i dexing (D8) są wykonywane w jednym kroku, jak pokazano poniżej.

W wersji R8 desugaring, shrinking, obfuscating, optymalizacja i dexing są wykonywane w jednym kroku kompilacji.

Pamiętaj, że R8 jest przeznaczone do współpracy z dotychczasowymi regułami ProGuard, więc prawdopodobnie nie musisz podejmować żadnych działań, aby korzystać z R8. Jednak ze względu na to, że jest to inna technologia niż ProGuard i jest przeznaczona specjalnie do projektów na Androida, kompresowanie i optymalizowanie może spowodować usunięcie kodu, którego ProGuard nie usuwa. W tej mało prawdopodobnej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w wyniku kompilacji.

Jeśli wystąpią problemy z użyciem R8, przeczytaj najczęstsze pytania dotyczące zgodności R8, aby sprawdzić, czy istnieje rozwiązanie Twojego problemu. Jeśli rozwiązanie nie zostało udokumentowane, zgłoś błąd. Możesz wyłączyć R8, dodając jeden z tych wierszy do pliku gradle.properties projektu:

    # Disables R8 for Android Library modules only.
    android.enableR8.libraries = false
    # Disables R8 for all modules.
    android.enableR8 = false
    
  

Uwaga: jeśli w danym typie kompilacji w pliku build.gradle modułu aplikacji ustawisz wartość useProguard na false, wtyczka Androida do obsługi Gradle będzie używać R8 do kompresji kodu aplikacji w tym typie kompilacji, niezależnie od tego, czy wyłączysz R8 w pliku gradle.properties projektu.

W Edytorze nawigacji są teraz obsługiwane wszystkie typy argumentów obsługiwane przez komponent Nawigacja. Więcej informacji o obsługiwanych typach znajdziesz w artykule Przesyłanie danych między usługami docelowymi.

Ulepszenia w Edytorze układu {:#layout-editor}

Panel Atrybuty w Edytorze układu został uproszczony i przekształcony w pojedynczą stronę z sekcjami, które możesz rozwijać, aby wyświetlić atrybuty, które możesz skonfigurować. Panel Atrybuty zawiera też te zmiany:

  • Nowa sekcja Zadeklarowane atrybuty zawiera atrybuty określone w pliku układu oraz umożliwia szybkie dodawanie nowych atrybutów.
  • W panelu Atrybuty obok każdego atrybutu znajdują się teraz wskaźniki, które są wypełnione, gdy wartość atrybutu jest odniesieniem do zasobu, i puste w innych przypadkach.
  • Atrybuty z błędami lub ostrzeżeniami są teraz wyróżnione. Czerwone podświetlenia wskazują błędy (np. gdy używasz nieprawidłowych wartości układu), a pomarańczowe – ostrzeżenia (np. gdy używasz zakodowanych na stałe wartości).

Nowe działanie intencji umożliwiające szybkie importowanie zależności

Jeśli zaczniesz używać w kodzie niektórych klas Jetpacka i Firebase, nowa akcja intencji zaproponuje dodanie do projektu wymaganej zależności biblioteki Gradle, jeśli nie zostało to jeszcze zrobione. Jeśli na przykład odwołujesz się do klasy WorkManager bez wcześniejszego zaimportowania wymaganej zależności android.arch.work:work-runtime, akcja intencji pozwoli Ci to zrobić jednym kliknięciem, jak pokazano poniżej.

Ponieważ Jetpack przepakował bibliotekę pomocy do oddzielnych pakietów, którymi łatwiej zarządzać i aktualizować, ta akcja pomaga szybko dodawać tylko te zależności, których potrzebujesz do używanych komponentów Jetpacka.