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 z wersją 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 #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
Nowy dialog struktury projektu ułatwia aktualizowanie zależności i konfigurowanie różnych aspektów projektu, takich jak moduły, warianty kompilacji, konfiguracje podpisywania i zmiennych 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 utrzymywania spójności numerów wersji zależności w całym projekcie.
- Szybkie wyświetlanie i edytowanie zmiennych kompilacji, które są już dostępne w skryptach kompilacji Gradle w projekcie.
- Dodawaj nowe zmienne 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 ich edytowania za pomocą PSD. Ponadto za pomocą PSD nie można edytować plików kompilacji napisanych w Kotlinie.
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 został rozwiązany przez Gradle 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 pliku PSD otwórz panel Rozwiązane zależności, który jest pokazany 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 zmienne 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:
- Wizualizacja zasobów: możesz wyświetlić podgląd obiektów do rysowania, kolorów i schematów, aby szybko znaleźć potrzebne zasoby.
- Import zbiorczy: możesz zaimportować wiele zasobów rysunkowych naraz, przeciągając je i upuszczając w oknie narzędzia Menedżer zasobów lub używając kreatora Importowanie zasobów rysunkowych. Aby otworzyć kreatora, kliknij przycisk (+) w lewym górnym rogu okna narzędzia, a potem w menu kliknij Importuj elementy rysowalne.
-
Konwertowanie plików SVG na obiekty
VectorDrawable
: za pomocą kreatora Importowanie obiektów do rysowania możesz konwertować 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 zweryfikuje, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji bibliotek .so
w tym pliku APK.
Jeśli kompilujesz biblioteki natywne w pliku APK z identyfikatorem kompilacji, Android Studio sprawdza, czy identyfikator kompilacji w plikach symboli jest zgodny z identyfikatorem kompilacji w bibliotekach natywnych. W przeciwnym razie pliki symboli zostaną odrzucone. 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 łączy desugaring, kompresowanie, zaciemnianie, optymalizację i dexing w jednym kroku, co powoduje zauważalne zwiększenie wydajności kompilacji. R8 zostało wprowadzone w pliku Android Gradle plugin 3.3.0 i jest teraz domyślnie włączone zarówno w przypadku projektów aplikacji, jak i projektów bibliotek Androida korzystających z pliku plugin 3.4.0 lub nowszej wersji.
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 mało prawdopodobnej sytuacji może być konieczne dodanie dodatkowych reguł, aby zachować ten kod w wyniku 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 zostało 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
W Edytorze nawigacji są teraz obsługiwane 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}
Panel Atrybuty w Edytorze układu został uproszczony i przekształcony w pojedynczą stronę z sekcjami, które możesz rozwijać, aby wyświetlić atrybuty, które możesz skonfigurować. Panel Atrybuty zawiera też te zmiany:
- Nowa sekcja Zadeklarowane atrybuty zawiera atrybuty określone w pliku układu oraz umożliwia szybkie dodawanie nowych atrybutów.
- 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 umożliwiające szybkie importowanie 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 przepakował bibliotekę pomocy do oddzielnych pakietów, którymi łatwiej się zarządza i które łatwiej jest aktualizować, ta akcja pomaga szybko dodawać tylko te zależności, których potrzebujesz w przypadku komponentów Jetpacka, których chcesz używać.