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. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.

3.4.1 (maj 2019 r.)

Ta niewielka aktualizacja zawiera różne poprawki błędów i ulepszenia działania aplikacji. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach.

Znane problemy w wersji 3.4.0

  • Profilowanie jest wyłączone podczas wdrażania aplikacji na urządzeniu z Androidem Q w wersji beta.

  • Podczas korzystania z biblioteki Data Binding Library metoda LiveDataListener.onChanged() może zakończyć się niepowodzeniem z błędem NPE. Poprawka tego problemu zostanie uwzględniona w Androidzie Studio 3.4.1 i jest już dostępna w najnowszej wersji podglądowej Androida Studio 3.5. (zobacz problem nr 122066788)

IntelliJ IDEA 2018.3.4

Główne IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2018.3.4.

Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.4.0

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

Okno Nowa struktura projektu

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

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

Zmienne

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

  • Szybko wyświetlaj i edytuj zmienne kompilacji, które już istnieją w skryptach kompilacji Gradle w projekcie.
  • Dodawaj nowe zmienne kompilacji na poziomie projektu lub modułu bezpośrednio z 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. Nie możesz też edytować plików kompilacji napisanych w języku Kotlin za pomocą pliku PSD.

Moduły

Skonfiguruj właściwości, które mają być stosowane do wszystkich wariantów kompilacji w istniejącym module, lub dodaj nowe moduły do projektu w sekcji Moduły. Możesz tu na przykład skonfigurować defaultConfig właściwości lub zarządzać konfiguracjami podpisywania.

Zależności

Sprawdź i zwizualizuj każdą zależność na wykresie zależności projektu, który został rozwiązany przez Gradle podczas synchronizacji projektu, wykonując te czynności:

  1. W panelu po lewej stronie PSD kliknij Zależności.
  2. W panelu Moduły wybierz moduł, którego rozwiązane zależności chcesz sprawdzić.
  3. Po prawej stronie PSD otwórz panel Resolved Dependencies (Rozwiązane zależności), który jest widoczny poniżej.

Możesz też szybko wyszukać i dodać zależności do projektu. W tym celu najpierw wybierz moduł w sekcji Dependencies (Zależności) w PSD, kliknij przycisk (+) w sekcji Declared Dependencies (Zadeklarowane zależności) i wybierz typ zależności, którą chcesz dodać.

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

Warianty kompilacji

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

Sugestie

Sugerowane aktualizacje zależności projektu i zmiennych kompilacji znajdziesz w sekcji Sugestie, jak pokazano poniżej.

Nowy Menedżer zasobów

Menedżer zasobów to nowe okno narzędziowe, które umożliwia importowanie, tworzenie, zarządzanie i używanie zasobów w aplikacji. Aby otworzyć to okno, na pasku menu kliknij Widok > Okna narzędziowe > Menedżer zasobów. Menedżer zasobów umożliwia:

  • Wizualizacja zasobów: możesz wyświetlać podgląd elementów rysowalnych, kolorów i układów, aby szybko znaleźć potrzebne zasoby.
  • Importowanie zbiorcze: możesz zaimportować kilka zasobów rysowalnych naraz, przeciągając je i upuszczając w oknie narzędzia Menedżer zasobów lub korzystając z kreatora Importowanie zasobów rysowalnych. Aby otworzyć kreator, kliknij przycisk (+) w lewym górnym rogu okna narzędzia, a następnie w menu wybierz Import Drawables (Importuj elementy rysunkowe).
  • Konwertowanie plików SVG na obiekty VectorDrawable: możesz użyć kreatora Importuj elementy rysunkowe, aby przekonwertować obrazy SVG na obiekty VectorDrawable.
  • Przeciąganie i upuszczanie komponentów: w oknie narzędzia Menedżer zasobów możesz przeciągać i upuszczać elementy rysowalne w widokach projektu i XML Edytora układu.
  • Wyświetlanie alternatywnych wersji: możesz teraz wyświetlać alternatywne wersje zasobów, klikając dwukrotnie zasób w oknie Narzędzie. W tym widoku zobaczysz utworzone wersje i uwzględnione kwalifikatory.
  • Widok kafelków i widok listy: możesz zmienić widok w oknie narzędzia, aby wyświetlać zasoby w różnych układach.

Więcej informacji znajdziesz w przewodniku na temat zarządzania zasobami aplikacji.

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

Gdy podasz pliki symboli debugowania dla .sobibliotek współdzielonych w pakiecie APK, Android Studio sprawdzi, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji .sobibliotek w pakiecie APK.

Jeśli skompilujesz biblioteki natywne w pliku APK z identyfikatorem kompilacji, Android Studio sprawdzi, czy identyfikator kompilacji w plikach symboli jest zgodny z identyfikatorem kompilacji w bibliotekach natywnych, i odrzuci pliki symboli, jeśli wystąpi niezgodność. Jeśli kompilacja nie została utworzona z identyfikatorem kompilacji, podanie nieprawidłowych plików symboli może spowodować problemy z debugowaniem.

Domyślnie włączona optymalizacja R8

R8 integruje usuwanie składni, zmniejszanie, zaciemnianie, optymalizację i tworzenie plików DEX w jednym kroku, co skutkuje zauważalną poprawą wydajności kompilacji. Narzędzie R8 zostało wprowadzone we wtyczce Androida do obsługi Gradle w wersji 3.3.0 i jest teraz domyślnie włączone w przypadku projektów aplikacji i bibliotek Androida korzystających z wtyczki w wersji 3.4.0 lub nowszej.

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

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

W przypadku R8 usuwanie składni, zmniejszanie rozmiaru, zaciemnianie, optymalizacja i kompilacja do formatu DEX (D8) są wykonywane w jednym kroku, jak pokazano poniżej.

W przypadku R8 usuwanie składni, zmniejszanie, zaciemnianie, optymalizacja i tworzenie plików DEX odbywają się w ramach jednego kroku kompilacji.

Pamiętaj, że R8 jest zaprojektowany do współpracy z dotychczasowymi regułami ProGuard, więc prawdopodobnie nie musisz nic robić, aby korzystać z R8. Jest to jednak inna technologia niż ProGuard, zaprojektowana specjalnie z myślą o projektach na Androida, więc zmniejszanie i optymalizacja mogą spowodować usunięcie kodu, którego ProGuard nie usunąłby. W takiej mało prawdopodobnej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w danych wyjściowych kompilacji.

Jeśli masz problemy z używaniem R8, przeczytaj najczęstsze pytania dotyczące zgodności z R8, aby sprawdzić, czy istnieje rozwiązanie Twojego problemu. Jeśli rozwiązanie nie jest udokumentowane, zgłoś błąd. Aby wyłączyć R8, dodaj 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 dla danego typu kompilacji w pliku build.gradle modułu aplikacji ustawisz wartość useProguard na false, wtyczka Androida do obsługi Gradle użyje R8 do zmniejszenia kodu aplikacji dla tego typu 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 nawigacji. Więcej informacji o obsługiwanych typach znajdziesz w artykule Przekazywanie danych między usługami docelowymi.

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

Panel Atrybuty w edytorze układu został uproszczony do jednej strony z sekcjami, które można rozwijać, aby wyświetlić atrybuty, które można skonfigurować. Panel Atrybuty zawiera też te aktualizacje:

  • Nowa sekcja Zadeklarowane atrybuty zawiera listę atrybutów określonych w pliku układu i umożliwia szybkie dodawanie nowych.
  • W panelu Atrybuty znajdują się teraz też wskaźniki obok każdego atrybutu, które są wypełnione, gdy wartość atrybutu jest odniesieniem do zasobu, a puste w pozostałych przypadkach.
  • Atrybuty z błędami lub ostrzeżeniami są teraz wyróżnione. Czerwone wyróżnienia 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 w kodzie zaczniesz używać określonych klas Jetpack i Firebase, nowa akcja intencji zaproponuje dodanie do projektu wymaganej zależności biblioteki Gradle, jeśli jeszcze tego nie zrobisz. Jeśli na przykład odwołasz się do klasy WorkManager bez wcześniejszego zaimportowania wymaganej zależności android.arch.work:work-runtime, akcja intencji pozwoli Ci to zrobić łatwo jednym kliknięciem, jak pokazano poniżej.

W szczególności dlatego, że Jetpack przekształcił bibliotekę pomocy w osobne pakiety, którymi łatwiej zarządzać i które łatwiej aktualizować. Ta czynność intencji pomaga szybko dodawać tylko te zależności, które są potrzebne do komponentów Jetpacka, których chcesz używać.