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:
- 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 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 obiektyVectorDrawable
. - 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 .so
bibliotek współdzielonych w pakiecie APK, Android Studio sprawdzi, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji .so
bibliotek 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.
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.
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
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ć.