Android Studio 3.4 (kwiecień 2019 r.)
Android Studio 3.4 to wersja główna, 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 w działaniu 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 w działaniu 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 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 we wtyczce Androida do obsługi Gradle w wersji 3.4.0 znajdziesz w jej 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ć 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 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ą 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:
- W panelu po lewej stronie PSD kliknij Zależności.
- W panelu Moduły wybierz moduł, którego rozwiązane zależności chcesz sprawdzić.
- 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 dialogowe 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 Resource Manager
Resource Manager to nowe okno narzędzia, które umożliwia importowanie, tworzenie, zarządzanie i używanie zasobów w aplikacji. Aby otworzyć to okno, na pasku menu wybierz Widok > Okna narzędzi > Resource Manager. 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 obiektyVectorDrawable. - Przeciąganie i upuszczanie zasobó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 .so bibliotek współdzielonych w pliku APK, Android Studio sprawdzi, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji bibliotek .so w pliku 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.
R8 domyślnie włączony
R8 integruje odludrzanie, zmniejszanie rozmiaru, zaciemnianie kodu, optymalizację i indeksowanie DEX w jednym kroku, co skutkuje zauważalną 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 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.

Teraz dzięki R8 usuwanie cukru syntaktycznego, zmniejszanie rozmiaru, zaciemnianie, optymalizacja i indeksowanie DEX (D8) są wykonywane w jednym kroku, jak pokazano poniżej.

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, która została zaprojektowana specjalnie z myślą o projektach na Androida. Zmniejszanie i optymalizacja mogą więc spowodować usunięcie kodu, którego ProGuard mógłby nie usunąć. 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 korzystaniem z R8, przeczytaj najczęstsze pytania dotyczące zgodności R8, aby sprawdzić, czy jest dostępne rozwiązanie Twojego problemu. Jeśli rozwiązanie nie jest 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 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
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 narzędziu Layout Editor 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 wyróżnienia wskazują 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 intencja 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, intencja pozwoli Ci to zrobić łatwo jednym kliknięciem, jak pokazano poniżej.

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