Android Studio 3.4 (kwiecień 2019 r.)

Android Studio 3.4 to duża wersja z wieloma nowymi funkcjami i ulepszeniami.

3.4.2 (lipiec 2019 r.)

Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

3.4.1 (maj 2019 r.)

Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

3.4.0 znane problemy

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

  • Podczas korzystania z biblioteki powiązań danych LiveDataListener.onChanged() może wystąpić błąd z użyciem NPE. Rozwiązanie tego problemu zostanie uwzględnione w Android Studio 3.4.1 i jest już dostępne w najnowszej wersji testowej Androida Studio 3.5. (Zobacz problem nr 122066788)

IntelliJ IDEA 2018.3.4

Podstawowe środowisko IDE Android Studio zostało zaktualizowane o ulepszenia wprowadzone w wersji IntelliJ IDEA do wersji 2018.3.4.

Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.4.0

Więcej informacji o nowościach we wtyczce Androida do obsługi Gradle w wersji 3.4.0 znajdziesz w informacjach o wersji.

Okno nowej struktury 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ć PSD, na pasku menu wybierz Plik > Struktura projektu. Możesz też otworzyć plik 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 dyrektywy PSD.

Zmienne

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

  • Szybkie wyświetlanie i edytowanie zmiennych kompilacji, które już istnieją w skryptach kompilacji Gradle projektu.
  • Nowe zmienne kompilacji możesz dodawać na poziomie projektu lub modułu bezpośrednio z PSD.

Uwaga: jeśli Twoje istniejące pliki konfiguracji kompilacji przypisują wartości za pomocą złożonych skryptów Groovy, możesz nie być w stanie edytować tych wartości w PSD. Poza tym nie możesz edytować plików kompilacji napisanych w Kotlin za pomocą PSD.

Moduły

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

Zależności

Sprawdź i zwizualizuj każdą zależności na wykresie zależności swojego projektu, które udało się rozwiązać przez Gradle podczas synchronizacji projektu. W tym celu wykonaj te czynności:

  1. W panelu po lewej stronie PSD wybierz Zależności.
  2. W panelu Moduły wybierz moduł, w którym chcesz sprawdzić rozwiązane zależności.
  3. Po prawej stronie PSD otwórz widoczny poniżej panel Rozwiązane zależności.

Możesz też szybko wyszukać i dodać zależności do projektu, wybierając moduł w sekcji Zależności PSD, klikając przycisk (+) w sekcji Deklarowane 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 pojawić się okno podobne do tego poniżej. Pomoże Ci ono dodać zależność do modułu.

Warianty kompilacji

W tej sekcji dyrektywy PSD utwórz i skonfiguruj warianty kompilacji i smaki usług dla każdego modułu w projekcie. Możesz dodawać obiekty zastępcze plików manifestu, dodawać pliki ProGuard i przypisywać klucze podpisywania.

Sugestie

W sekcji Sugestie znajdziesz sugerowane aktualizacje zależności projektu i zmiennych kompilacji.

Nowy menedżer zasobów

Menedżer zasobów to nowe okno z narzędziami do importowania, tworzenia i używania zasobów w aplikacji oraz do zarządzania nimi. Aby otworzyć okno narzędzia, na pasku menu wybierz Widok > Okna narzędzi > Menedżer zasobów. Menedżer zasobów umożliwia:

  • Wizualizacja zasobów:możesz wyświetlać podgląd elementów rysowanych, kolorów i układów, by szybko znajdować potrzebne zasoby.
  • Importowanie zbiorcze: możesz jednocześnie zaimportować wiele zasobów rysowalnych, przeciągając je i upuszczając w oknie narzędzia Menedżer zasobów lub korzystając z kreatora Importuj elementy rysowane. Aby otworzyć kreatora, kliknij przycisk (+) w lewym górnym rogu okna narzędzia, a następnie wybierz Importuj elementy rysunkowe z menu.
  • 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 zasobów: z okna narzędzia Menedżer zasobów możesz przeciągać i upuszczać elementy rysowane w widoku projektu i pliku XML w edytorze układu.
  • Wyświetlanie wersji alternatywnych: możesz teraz wyświetlać alternatywne wersje zasobów, klikając dwukrotnie zasób w oknie Narzędzia. W tym widoku wyświetlane są różne utworzone przez Ciebie wersje oraz uwzględnione kwalifikatory.
  • Widoki kafelków i list: możesz zmieniać widok w oknie narzędzia, aby wizualizować zasoby w różnych układach.

Więcej informacji znajdziesz w przewodniku po zarządzaniu zasobami aplikacji.

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

Gdy udostępniasz pliki symboli debugowania dla bibliotek udostępnionych .so w pakiecie APK, Android Studio sprawdza, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji bibliotek .so w pliku APK.

Jeśli biblioteki natywne tworzysz w pakiecie APK za pomocą identyfikatora kompilacji, Android Studio sprawdza, czy identyfikator kompilacji w plikach symboli jest zgodny z identyfikatorem kompilacji w bibliotekach natywnych, i odrzuca pliki symboli w razie niezgodności. Jeśli nie została skompilowana z identyfikatorem kompilacji, podanie nieprawidłowych plików symboli może spowodować problemy z debugowaniem.

R8 jest domyślnie włączone

R8 integruje w jednym kroku deustrakowanie, zmniejszanie, zaciemnianie, optymalizację i usuwanie szczegółów, co skutkuje zauważalnym poprawą wydajności kompilacji. R8 został wprowadzony we wtyczce Androida do obsługi Gradle w wersji 3.3.0 i jest teraz domyślnie włączony w projektach bibliotecznych w aplikacjach i na Androidzie za pomocą wtyczki w wersji 3.4.0 lub nowszej.

Na ilustracji poniżej przedstawiono ogólny przegląd procesu kompilacji przed wprowadzeniem R8.

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

W przypadku R8 usuwanie odblasków, zmniejszanie, zaciemnianie, optymalizowanie i usuwanie (D8) można wykonać w jednym kroku, jak widać na przykładzie poniżej.

W przypadku R8 deugarowanie, zmniejszanie, zaciemnianie, optymalizacja i usuwanie dexing jest wykonywane w jednym kroku kompilacji.

Pamiętaj, że R8 zostało zaprojektowane do współpracy z Twoimi istniejącymi regułami ProGuard, więc prawdopodobnie nie musisz podejmować żadnych działań, aby skorzystać z R8. Ponieważ jednak jest to inna technologia niż ProGuard, która została opracowana specjalnie na potrzeby projektów na Androida, pomniejszenie i optymalizacja może spowodować usunięcie kodu, którego ProGuard może nie. W tej mało prawdopodobnej sytuacji konieczne może być dodanie kolejnych reguł, aby zachować ten kod w danych wyjściowych kompilacji.

Jeśli masz problemy z R8, przeczytaj Najczęstsze pytania na temat zgodności z R8, aby sprawdzić, czy można tam znaleźć rozwiązanie. Jeśli rozwiązania nie ma w dokumentacji, 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 przypadku danego typu kompilacji ustawisz useProguard na false w pliku build.gradle modułu aplikacji, wtyczka Androida do obsługi Gradle użyje R8 do zmniejszenia kodu aplikacji pod kątem 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 Nawigacja. Więcej informacji na temat obsługiwanych typów znajdziesz w artykule o przekazywaniu danych między miejscami docelowymi.

Ulepszenia edytora układu: {:#layout-editor}

Panel Atrybuty w edytorze układu został uproszczony do jednej strony z sekcjami, które możesz rozwinąć, aby zobaczyć atrybuty do skonfigurowania. 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 wskaźniki obok każdego atrybutu, który ma wartość pełnowartościową, jeśli wartość atrybutu jest odwołaniem do zasobu, a w przeciwnym razie jest pusta.
  • Atrybuty z błędami lub ostrzeżeniami są teraz wyróżnione. Czerwone wyróżnienia wskazują błędy (np. nieprawidłowe wartości układu), a pomarańczowe – ostrzeżenia (np. gdy używasz wartości umieszczonych na stałe).

Nowe działanie dotyczące zamiaru szybkiego importowania zależności

Jeśli zaczniesz używać w kodzie określonych klas Jetpack i Firebase, nowe działanie intencji będzie sugerować dodanie do projektu wymaganej zależności biblioteki Gradle. Jeśli na przykład odwołasz się do klasy WorkManager bez wcześniejszego zaimportowania wymaganej zależności android.arch.work:work-runtime, działanie intencji pozwala to łatwo zrobić jednym kliknięciem, jak pokazano poniżej.

Ponieważ w Jetpack zostały utworzone osobne pakiety pomocy, które są łatwiejsze do zarządzania i aktualizowania, to działanie intencji pomaga szybko dodać tylko te zależności od komponentów Jetpack, których chcesz używać.