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 nr 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
Informacje o nowościach w wersji 3.4.0 wtyczki Androida do obsługi Gradle znajdziesz w notatkach do 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.
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 PSD umożliwia tworzenie zmiennych kompilacji i zarządzanie nimi, np. w celu zachowania spójności numerów wersji zależności w całym projekcie.
- Możesz szybko wyświetlać i edytować zmienne kompilacji, które już istnieją w skryptach kompilacji Gradle w Twoim projekcie.
- Dodawanie nowych zmiennych kompilacji na poziomie projektu lub modułu bezpośrednio z 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 zapisanych w Kotlin za pomocą PSD.
Moduły
Skonfiguruj właściwości stosowane do wszystkich wariantów kompilacji w dotychczasowym module lub dodaj nowe moduły do projektu w sekcji Moduły. Na przykład możesz tu konfigurować 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:
- W panelu po lewej stronie PSD kliknij Zależności.
- W panelu Moduły wybierz moduł, którego zależności chcesz sprawdzić.
- Po prawej stronie PSD otwórz panel Rozwiązane zależności widoczny 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 obiektyVectorDrawable
. - 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 wersji 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 utworzysz biblioteki natywne w pliku APK z identyfikatorem kompilacji, Android Studio sprawdzi, czy identyfikator kompilacji w plikach symboli odpowiada identyfikatorowi kompilacji w bibliotekach natywnych, i odrzuci pliki symboli w przypadku rozbieżności. Jeśli kompilacja nie została wykonana 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 usuwanie cukru, zmniejszanie, zaciemnianie, optymalizację i dexing w jednym kroku, czego efektem jest zauważona poprawa 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.
Obecnie w wersji R8 desugaring, shrinking, obfuscating, optymalizacja i dexing (D8) są wykonywane w jednym kroku, jak pokazano poniżej.
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. Jednak ze względu na to, że jest to inna technologia niż ProGuard i jest przeznaczona specjalnie do projektów na Androida, kompresowanie i optymalizowanie może spowodować usunięcie kodu, którego ProGuard nie usuwa. W tej nieprawdopodobnej sytuacji konieczne może być dodanie dodatkowych reguł, aby zachować ten kod w danych wyjściowych kompilacji.
Jeśli wystąpią problemy z użyciem R8, przeczytaj najczęstsze pytania dotyczące zgodności R8, aby sprawdzić, czy istnieje 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 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
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}
Okienko Atrybuty w edytorze układu zostało uproszczone do postaci jednej strony z sekcjami, które możesz rozwinąć, aby wyświetlić atrybuty, które możesz skonfigurować. Panel Atrybuty zawiera też te aktualizacje:
- Nowa sekcja Zadeklarowane atrybuty zawiera listę atrybutów określanych w pliku układu i umożliwia szybkie dodawanie nowych.
- 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 do szybkiego importowania 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 przekształcił bibliotekę pomocy w dyskretne pakiety, które są łatwiejsze do zarządzania i aktualizacji, to działanie intencji pomaga szybko dodawać tylko te zależności, których potrzebujesz na potrzeby komponentów Jetpack, których chcesz używać.