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

Nowości w wtyczce Androida do obsługi Gradle w wersji 3.4.0 znajdziesz w informacjach o wersji.

Okno nowej struktury projektu

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

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

Zmienne

Nowa sekcja zmiennych w dokumencie PSD umożliwia tworzenie zmiennych kompilacji i zarządzanie nimi, na przykład aby zachować spójność 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.
  • Możesz dodawać nowe zmienne kompilacji na poziomie projektu lub modułu bezpośrednio z poziomu pliku 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 edytowania tych wartości za pomocą PSD. Ponadto za pomocą PSD nie można edytować plików kompilacji napisanych w Kotlinie.

Moduły

Skonfiguruj właściwości, które będą stosowane do wszystkich wariantów kompilacji w istniejącym module lub dodaj nowe moduły do projektu w sekcji Moduły. W tym miejscu możesz na przykład skonfigurować właściwości defaultConfig lub zarządzać konfiguracjami podpisywania.

Zależności

Aby sprawdzić i wizualizować każdą zależność w grafu zależności projektu, który Gradle rozwiązał 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 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 wersji

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. obiekty zastępcze w pliku manifestu, pliki ProGuard i przypisywać klucze podpisywania.

Sugestie

Sugerowane zmiany zależności projektu i zmiennych 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:

  • Wizualizuj zasoby: możesz wyświetlać podgląd elementów, które można rysować, kolorów i układó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.
  • Konwertuj pliki SVG na obiekty VectorDrawable: możesz użyć kreatora Importuj elementy rysowalne, aby przekonwertować 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 kompilacji podczas profilowania i debugowania plików APK

Gdy podasz pliki symboli debugowania dla współdzielonych bibliotek .so w swojej aplikacji APK, Android Studio sprawdzi, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji bibliotek .so w tym 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 razie niezgodności pliki symboli zostaną odrzucone. Jeśli kompilacja nie została utworzona 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 zauważalne polepszanie wydajności kompilacji. Rozwiązanie R8 zostało wprowadzone we wtyczce Androida do obsługi Gradle w wersji 3.3.0 i jest teraz domyślnie włączone zarówno w projektach aplikacji, jak i bibliotek Androida korzystających z wtyczki w wersji 3.4.0 lub nowszej.

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

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

Teraz w przypadku R8 odsłuchiwanie, zmniejszanie, zaciemnianie, optymalizacja i deksowanie (D8) można wykonać 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. Jest to jednak inna technologia niż ProGuard, która została stworzona specjalnie dla projektów na Androida, więc zmniejszanie i optymalizacja może spowodować usunięcie kodu, którego może nie mieć ProGuard. W tej mało prawdopodobnej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w wyniku kompilacji.

Jeśli podczas korzystania z R8 występują problemy, przeczytaj Najczęstsze pytania na temat zgodności z R8, by sprawdzić, czy możesz je tam znaleźć. 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.

Edytor nawigacji obsługuje teraz 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.

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 przeciwnym razie.
  • 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 się zarządzać i które łatwiej jest aktualizować, ta akcja pomaga szybko dodawać tylko te zależności, których potrzebujesz w przypadku komponentów Jetpacka, których chcesz używać.