Android Studio 3.2 (wrzesień 2018 r.)
Android Studio 3.2 to wersja główna, która zawiera wiele nowych funkcji i ulepszeń.
3.2.1 (październik 2018 r.)
Ta aktualizacja Androida Studio 3.2 zawiera te zmiany i poprawki:
- Wersja Kotlina dołączona do pakietu to teraz 1.2.71.
- Domyślna wersja narzędzi do kompilacji to teraz 28.0.3.
- W bibliotece Navigation zmieniono nazwy typów argumentów z
typenaargType. - Naprawiono te błędy:
- Podczas korzystania z biblioteki Data Binding nazwy zmiennych z podkreśleniami powodowały błędy kompilacji.
- CMake powodował, że IntelliSense i inne funkcje CLion nie działały.
- Dodanie znaku
SliceProviderpowodowało błędy kompilacji w projektach, które nie korzystały z bibliotekandroidx.*. - Niektóre testy jednostkowe w Kotlinie nie były uruchamiane.
- Problem z powiązaniem danych powodował
PsiInvalidElementAccessException. - Elementy
<merge>czasami powodowały awarię narzędzia Layout Editor.
Znane problemy w wersji 3.2.0
Uwaga: te problemy zostały rozwiązane w Android Studio w wersji 3.2.1.
Zdecydowanie odradzamy używanie wersji 1.2.70 języka Kotlin.
Wersja 1.2.61 języka Kotlin naprawia błąd, który może powodować zawieszanie się Androida Studio, ale wersja 1.2.70 nie zawiera tej poprawki.
Wersje Kotlin 1.2.71 i nowsze zawierają jednak tę poprawkę.
-
Chociaż zwykle nie musisz określać wersji narzędzi do kompilacji, jeśli używasz wtyczki Androida do obsługi Gradle w wersji 3.2.0 z ustawieniem
renderscriptSupportModeEnablednatrue, musisz dodać do plikubuild.gradlekażdego modułu:android.buildToolsVersion "28.0.3"
Asystent Nowości
Nowy asystent informuje o najnowszych zmianach w Android Studio.
Asystent otworzy się, gdy uruchomisz Android Studio po świeżej instalacji lub aktualizacji, jeśli wykryje nowe informacje do wyświetlenia. Asystenta możesz też otworzyć, klikając Pomoc > Co nowego w Android Studio.
Android Jetpack
Android Jetpack przyspiesza tworzenie aplikacji na Androida dzięki komponentom, narzędziom i wskazówkom, które eliminują powtarzalne zadania i umożliwiają szybsze i łatwiejsze tworzenie wysokiej jakości aplikacji, które można testować. Android Studio zawiera te aktualizacje, które obsługują Jetpack: Więcej informacji znajdziesz w dokumentacji Jetpacka.
Edytor nawigacji
Nowy edytor nawigacji jest zintegrowany z komponentami nawigacji Androida Jetpack, aby zapewnić widok graficzny do tworzenia struktury nawigacji aplikacji. Edytor nawigacji upraszcza projektowanie i wdrażanie nawigacji między miejscami docelowymi w aplikacji.
W Android Studio 3.2 Edytor nawigacji jest funkcją eksperymentalną. Aby włączyć Edytor nawigacji, kliknij Plik > Ustawienia (Android Studio > Preferencje na komputerze Mac), w panelu po lewej stronie wybierz kategorię Eksperymentalne, zaznacz pole obok opcji Włącz Edytor nawigacji i ponownie uruchom Android Studio.
Więcej informacji znajdziesz w dokumentacji Edytora nawigacji.
Migracja do AndroidaX
W ramach Jetpacka przenosimy biblioteki pomocy Androida do nowej biblioteki rozszerzeń Androida, używając przestrzeni nazw androidx. Więcej informacji znajdziesz w omówieniu AndroidaX.
W tym procesie pomoże Ci nowa funkcja migracji w Androidzie Studio 3.2.
Aby przenieść istniejący projekt do AndroidaX, wybierz Refactor > Migrate to AndroidX (Refaktoryzacja > Przenieś do AndroidaX). Jeśli masz zależności Mavena, które nie zostały przeniesione do przestrzeni nazw AndroidX, system kompilacji Androida Studio automatycznie przekonwertuje też te zależności projektu.
Wtyczka Androida do obsługi Gradle udostępnia te globalne flagi, które możesz ustawić w pliku gradle.properties:
android.useAndroidX: jeśli ustawisz wartośćtrue, ten flaga oznacza, że chcesz od teraz zacząć używać AndroidaX. Jeśli flaga nie jest obecna, Android Studio działa tak, jakby była ustawiona nafalse.android.enableJetifier: gdy ta flaga ma wartośćtrue, oznacza to, że chcesz mieć obsługę narzędzi (z wtyczki Android Gradle), aby automatycznie konwertować istniejące biblioteki innych firm tak, jakby były napisane dla Androida X. Jeśli flaga nie jest obecna, Android Studio działa tak, jakby była ustawiona nafalse.
Obie flagi są ustawione na true, gdy używasz polecenia Migrate to AndroidX (Migracja do AndroidaX).
Jeśli chcesz od razu zacząć używać bibliotek AndroidX i nie musisz konwertować istniejących bibliotek zewnętrznych, możesz ustawić flagę android.useAndroidX na true, a flagę android.enableJetifier na false.
(pakiet) Android App Bundle
Android App Bundle to nowy format przesyłania, który zawiera cały skompilowany kod i wszystkie zasoby aplikacji, ale generowanie i podpisywanie plików APK jest odroczone do momentu publikacji w Google Play.
Nowy model przesyłania aplikacji w Google Play wykorzystuje pakiet aplikacji do generowania i przesyłania zoptymalizowanych plików APK na urządzenia użytkowników, dzięki czemu każdy użytkownik pobiera tylko kod i zasoby potrzebne do uruchomienia aplikacji. Nie musisz już tworzyć, podpisywać ani zarządzać wieloma plikami APK, a użytkownicy pobierają mniejsze i bardziej zoptymalizowane pliki.
Możesz też dodać do projektu aplikacji moduły funkcji i uwzględnić je w pakiecie aplikacji. Użytkownicy będą mogli wtedy pobierać i instalować funkcje aplikacji na żądanie.
Aby utworzyć pakiet, wybierz Build > Build Bundle(s) / APK(s) > Build Bundle(s) (Utwórz > Utwórz pakiety / pliki APK > Utwórz pakiety).
Więcej informacji, w tym instrukcje tworzenia i analizowania pakietu Android App Bundle, znajdziesz w artykule Pakiet Android App Bundle.
Przykładowe dane w edytorze układu
Wiele układów Androida zawiera dane czasu działania, które mogą utrudniać wizualizację wyglądu układu na etapie projektowania aplikacji. W Edytorze układu możesz teraz łatwo wyświetlić podgląd widoku wypełnionego przykładowymi danymi. Gdy dodasz widok, pod nim w oknie Projekt pojawi się przycisk
. Kliknij ten przycisk, aby ustawić atrybuty widoku w czasie projektowania. Możesz wybierać spośród różnych szablonów przykładowych danych i określać liczbę przykładowych elementów, którymi chcesz wypełnić widok.
Aby wypróbować dane przykładowe, dodaj element RecyclerView do nowego układu, kliknij przycisk atrybutów w czasie projektowania
poniżej widoku i wybierz opcję z karuzeli szablonów danych przykładowych.
Wycinki
Slices to nowy sposób na osadzanie fragmentów funkcji aplikacji w innych interfejsach użytkownika na Androidzie. Na przykład Slices umożliwiają wyświetlanie funkcji aplikacji i treści aplikacji w sugestiach wyszukiwania w Google.
Android Studio 3.2 ma wbudowany szablon, który pomaga rozszerzać aplikacje za pomocą nowych interfejsów API dostawcy wycinków. Zawiera też nowe testy linter, które zapewniają, że podczas tworzenia wycinków stosujesz sprawdzone metody.
Aby rozpocząć, kliknij prawym przyciskiem myszy folder projektu i wybierz Nowy > Inne > Dostawca wycinków.
Więcej informacji, w tym o testowaniu interakcji z wycinkami, znajdziesz w przewodniku dla początkujących dotyczącym wycinków.
Kotlin 1.2.61
Android Studio 3.2 zawiera Kotlina 1.2.61, a nowy pakiet Android SDK jest lepiej zintegrowany z Kotlinem. Więcej informacji znajdziesz na blogu dla deweloperów aplikacji na Androida.
IntelliJ IDEA 2018.1.6
Główne środowisko IDE Android Studio zostało zaktualizowane o ulepszenia z IntelliJ IDEA w wersji 2018.1.6.
Profilery Androida
Wypróbuj te nowe funkcje profilera Androida w Android Studio 3.2.
Sesje
Dane Profilera możesz teraz zapisywać jako sesje, aby później do nich wracać i je sprawdzać. Profiler przechowuje dane sesji do momentu ponownego uruchomienia IDE.
Gdy zarejestrujesz ślad metody lub zrobisz zrzut sterty, IDE doda te dane (wraz z aktywnością sieciową aplikacji) jako osobny wpis w bieżącej sesji. Możesz łatwo przełączać się między nagraniami, aby porównywać dane.
Śledzenie systemu
W sekcji CPU Profiler (Profiler procesora) wybierz nową konfigurację System Trace (Ślad systemowy), aby sprawdzić aktywność procesora systemowego i wątków na urządzeniu. Ta konfiguracja śledzenia jest oparta na systrace i przydaje się do analizowania problemów na poziomie systemu, takich jak zacinanie się interfejsu.
Korzystając z tej konfiguracji śledzenia, możesz wizualnie oznaczać ważne procedury kodu na osi czasu profilera, instrumentując kod C/C++ za pomocą natywnego interfejsu API śledzenia lub kod Java za pomocą klasy Trace.
Sprawdzanie odwołań JNI w profilerze pamięci
Jeśli wdrażasz aplikację na urządzeniu z Androidem 8.0 (API na poziomie 26) lub nowszym, możesz teraz sprawdzać alokację pamięci w kodzie JNI aplikacji za pomocą Memory Profiler.
Gdy aplikacja jest uruchomiona, wybierz część osi czasu, którą chcesz sprawdzić, a następnie w menu nad listą klas kliknij Stos JNI, jak pokazano poniżej. Następnie możesz sprawdzić obiekty w stercie w zwykły sposób i kliknąć dwukrotnie obiekty na karcie Stos wywołań alokacji, aby zobaczyć, gdzie w kodzie są przydzielane i zwalniane odwołania JNI.
Importowanie, eksportowanie i sprawdzanie plików zrzutu stosu pamięci
Możesz teraz importować, eksportować i sprawdzać pliki zrzutu sterty pamięci .hprof utworzone za pomocą profilera pamięci.
Zaimportuj plik .hprof, klikając Rozpocznij nową sesję profilowania
w panelu Sesje profilera, a następnie wybierając Wczytaj z pliku. Następnie możesz sprawdzić jego dane w profilerze pamięci tak jak w przypadku każdego innego zrzutu sterty.
Aby zapisać dane zrzutu sterty do późniejszego przejrzenia, kliknij przycisk Eksportuj zrzut sterty po prawej stronie pozycji Zrzut sterty w panelu Sesje. W wyświetlonym oknie Eksportuj jako zapisz plik z rozszerzeniem .hprof.
Rejestrowanie aktywności procesora podczas uruchamiania aplikacji
Możesz teraz rejestrować aktywność procesora podczas uruchamiania aplikacji w ten sposób:
- W menu głównym wybierz Uruchom > Edytuj konfiguracje.
- Na karcie Profilowanie w wybranej konfiguracji uruchomienia zaznacz pole obok opcji Rozpocznij nagrywanie śladu metody podczas uruchamiania.
- W menu wybierz konfigurację nagrywania danych o procesorze.
- Wdróż aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, wybierając Uruchom > Profil.
Eksportowanie śladów procesora
Po zarejestrowaniu aktywności procesora za pomocą CPU Profilera możesz wyeksportować dane jako plik .trace, aby udostępnić go innym lub sprawdzić później.
Aby wyeksportować ślad po zarejestrowaniu aktywności procesora, wykonaj te czynności:
- Kliknij prawym przyciskiem myszy nagranie, które chcesz wyeksportować z osi czasu procesora.
- W menu kliknij Eksportuj ślad.
- Przejdź do miejsca, w którym chcesz zapisać plik, i kliknij Zapisz.
Importowanie i sprawdzanie plików śledzenia procesora
Możesz teraz importować i sprawdzać pliki .trace utworzone za pomocą interfejsu Debug API lub profilera CPU. (Obecnie nie można importować nagrań śledzenia systemu).
Zaimportuj plik śledzenia, klikając Rozpocznij nową sesję profilowania
w panelu Sesje profilera, a następnie wybierając Wczytaj z pliku. Następnie możesz sprawdzić jego dane w CPU Profilerze w zwykły sposób, z tymi wyjątkami:
- Aktywność procesora nie jest przedstawiona na osi czasu procesora.
- Oś czasu aktywności wątku wskazuje tylko miejsca, w których dostępne są dane śledzenia poszczególnych wątków, a nie rzeczywiste stany wątków (np. uruchomiony, oczekujący lub uśpiony).
Rejestrowanie aktywności procesora za pomocą interfejsu Debug API
Możesz teraz rozpoczynać i zatrzymywać rejestrowanie aktywności procesora w CPU Profilerze, instrumentując aplikację za pomocą interfejsu Debug API. Po wdrożeniu aplikacji na urządzeniu profiler automatycznie rozpoczyna rejestrowanie aktywności procesora, gdy aplikacja wywołuje funkcję startMethodTracing(String tracePath), a kończy rejestrowanie, gdy aplikacja wywołuje funkcję stopMethodTracing(). Podczas rejestrowania aktywności procesora wywoływanej za pomocą tego interfejsu API CPU Profiler pokazuje Debug API jako wybraną konfigurację rejestrowania procesora.
Energy Profiler
Profil energetyczny wyświetla wizualizację szacowanego zużycia energii przez aplikację, a także zdarzenia systemowe, które mają wpływ na zużycie energii, takie jak blokady wybudzania, alarmy i zadania.
Profil zużycia energii pojawi się jako nowy wiersz u dołu okna Profilera, gdy uruchomisz aplikację na połączonym urządzeniu lub w emulatorze Androida z Androidem 8.0 (API 26) lub nowszym.
Kliknij wiersz Energia, aby zmaksymalizować widok Energy Profiler. Umieść wskaźnik myszy nad słupkiem na osi czasu, aby zobaczyć podział zużycia energii według zasobów procesora, sieci i lokalizacji (GPS), a także odpowiednie zdarzenia systemowe.
Wydarzenia systemowe, które mają wpływ na zużycie energii, są wskazywane na osi czasu System poniżej osi czasu Energia. Szczegóły zdarzeń systemowych w określonym zakresie czasu są wyświetlane w panelu zdarzeń po wybraniu zakresu czasu na osi czasu Energia.
Aby wyświetlić stos wywołań i inne szczegóły zdarzenia systemowego, np. blokady wybudzania, wybierz je w panelu zdarzeń. Aby przejść do kodu odpowiedzialnego za zdarzenie systemowe, kliknij dwukrotnie wpis w stosie wywołań.
Sprawdzanie lintowania
Android Studio 3.2 zawiera wiele nowych i ulepszonych funkcji lintowania.
Nowe testy lint pomagają znajdować i identyfikować typowe problemy z kodem, od ostrzeżeń o potencjalnych problemach z użytecznością po błędy o wysokim priorytecie dotyczące potencjalnych luk w zabezpieczeniach.
Sprawdzanie interoperacyjności języków Java i Kotlin za pomocą lintera
Aby zapewnić dobrą interoperacyjność kodu Java z kodem Kotlin, nowe testy lintera wymuszają stosowanie sprawdzonych metod opisanych w przewodniku po interoperacyjności z Kotlinem. Przykłady tych kontroli to sprawdzanie obecności adnotacji Nullability, użycie słów kluczowych Kotlin i umieszczanie parametrów lambda na końcu.
Aby włączyć te sprawdzenia, kliknij Plik > Ustawienia (Android Studio > Preferencje na Macu), aby otworzyć okno Ustawienia, a następnie otwórz sekcję Edytor > Sprawdzanie > Android > Linter > Interoperacyjność > Współdziałanie z Kotlinem i wybierz reguły, które chcesz włączyć.
Aby włączyć te sprawdzenia w przypadku kompilacji wiersza poleceń, dodaj do pliku build.gradle ten ciąg:
android {
lintOptions {
check 'Interoperability'
}
}
Sprawdzanie wycinków za pomocą narzędzia Lint
Nowe testy lint dla komponentów Slices pomagają upewnić się, że są one prawidłowo skonstruowane. Na przykład narzędzia do sprawdzania kodu ostrzegają, jeśli nie przypiszesz do wycinka działania głównego.
Nowy cel Gradle
Użyj nowego lintFix zadania Gradle, aby zastosować wszystkie bezpieczne
poprawki sugerowane przez kontrolę lint bezpośrednio w kodzie źródłowym. Przykładem sprawdzania za pomocą narzędzia lint, które sugeruje bezpieczną poprawkę do zastosowania, jest SyntheticAccessor.
Aktualizacje metadanych
Różne metadane, np. weryfikacja rzutowania usługi, zostały zaktualizowane, aby weryfikacje lint działały w Androidzie 9 (API na poziomie 28).
Ostrzeżenie, jeśli linter jest uruchamiany w przypadku nowego wariantu
Narzędzie Lint rejestruje teraz, w przypadku którego wariantu i wersji zarejestrowano poziom odniesienia, i ostrzega, jeśli uruchomisz je w przypadku innego wariantu niż ten, w przypadku którego utworzono poziom odniesienia.
Ulepszenia istniejących kontroli lint
Android Studio 3.2 zawiera wiele ulepszeń dotychczasowych kontroli lint. Na przykład sprawdzanie cyklu życia zasobu jest teraz stosowane do dodatkowych typów zasobów, a wykrywanie tłumaczeń może na bieżąco znajdować brakujące tłumaczenia w edytorze.
Łatwiejsze znajdowanie identyfikatorów problemów
Identyfikatory problemów są teraz wyświetlane w większej liczbie miejsc, w tym w oknie Wyniki sprawdzania. Ułatwia to znalezienie informacji potrzebnych do włączenia lub wyłączenia konkretnych weryfikacji za pomocą lintOptions w build.gradle.
Więcej informacji znajdziesz w artykule Konfigurowanie opcji lint przy użyciu Gradle.
Wiązanie danych w wersji 2
Wiązanie danych w wersji 2 jest teraz domyślnie włączone i jest zgodne z wersją 1. Oznacza to, że jeśli masz zależności biblioteczne skompilowane w wersji 1, możesz ich używać w projektach korzystających z powiązywania danych w wersji 2. Pamiętaj jednak, że projekty korzystające z wersji 1 nie mogą używać zależności skompilowanych w wersji 2.
Odlukrzanie D8
W Androidzie Studio 3.1 zintegrowaliśmy etap desugaryzacji z narzędziem D8 jako funkcję eksperymentalną, co skróciło ogólny czas kompilacji. W Android Studio 3.2 odcukrzanie za pomocą D8 jest domyślnie włączone.
Nowy kompresor kodu
R8 to nowe narzędzie do zmniejszania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji podglądowej R8, w pliku gradle.properties projektu umieść ten kod:
android.enableR8 = true
Zmiana domyślnych interfejsów ABI w przypadku zestawu wielu plików APK
Podczas tworzenia wielu plików APK, z których każdy jest kierowany na inny interfejs ABI, wtyczka domyślnie nie generuje już plików APK dla tych interfejsów ABI: mips, mips64 i armeabi.
Jeśli chcesz tworzyć pliki APK przeznaczone na te interfejsy ABI, musisz użyć NDK w wersji r16b lub starszej i określić interfejsy ABI w pliku build.gradle, jak pokazano poniżej:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Uwaga: ta zmiana w działaniu jest też uwzględniona w Androidzie Studio 3.1 RC1 i nowszych.
Ulepszone funkcje edytora plików kompilacji CMake
Jeśli używasz CMake do dodawania do projektu kodu w C i C++, Android Studio zawiera teraz ulepszone funkcje edytora, które pomagają edytować skrypty kompilacji CMake, takie jak:
- Podświetlanie składni i uzupełnianie kodu: IDE podświetla teraz składnię i sugeruje uzupełnianie kodu w przypadku typowych poleceń CMake. Możesz też przejść do pliku, klikając go z przytrzymanym klawiszem Control (Command na komputerze Mac).
- Ponowne formatowanie kodu: możesz teraz użyć opcji ponownego formatowania kodu w IntelliJ, aby zastosować style kodu do skryptów kompilacji CMake.
- Bezpieczne refaktoryzowanie: wbudowane w IDE narzędzia do refaktoryzacji sprawdzają teraz również, czy nie zmieniasz nazw ani nie usuwasz plików, do których odwołujesz się w skryptach kompilacji CMake.
Poruszanie się po zewnętrznych plikach nagłówkowych
W poprzednich wersjach Androida Studio w oknie Projekt można było przeglądać i sprawdzać tylko pliki nagłówkowe należące do bibliotek tworzonych w projekcie lokalnym. W tej wersji możesz też wyświetlać i sprawdzać pliki nagłówkowe dołączone do zewnętrznych zależności bibliotek C/C++, które importujesz do projektu aplikacji.
Jeśli w projekcie masz już kod i biblioteki w języku C/C++, otwórz okno Project po lewej stronie środowiska IDE. W tym celu w menu głównym kliknij kolejno View > Tool Windows > Project i w menu wybierz Android. W katalogu cpp wszystkie nagłówki, które znajdują się w zakresie projektu aplikacji, są uporządkowane w węźle include dla każdej z lokalnych zależności biblioteki C/C++, jak pokazano poniżej.
Domyślnie włączona natywna obsługa multidexu
W poprzednich wersjach Androida Studio podczas wdrażania wersji debugowania aplikacji na urządzeniu z Androidem w wersji API 21 lub nowszej włączano natywny multidex. Teraz, niezależnie od tego, czy wdrażasz aplikację na urządzeniu, czy tworzysz plik APK do publikacji, wtyczka Androida do Gradle umożliwia natywny multidex we wszystkich modułach, w których ustawiono minSdkVersion=21 lub nowszą wersję.
AAPT2 przeniesiono do repozytorium Maven Google
Od Androida Studio 3.2 źródłem AAPT2 (Android Asset Packaging Tool 2) jest repozytorium Maven Google.
Aby używać AAPT2, upewnij się, że w pliku google() masz zależność build.gradle, jak pokazano poniżej:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
Nowa wersja AAPT2 rozwiązuje wiele problemów, w tym poprawia obsługę znaków spoza zestawu ASCII w systemie Windows.
Usuwanie konfiguracji na żądanie
Ustawienie Konfiguruj na żądanie zostało usunięte z Androida Studio.
Android Studio nie przekazuje już argumentu --configure-on-demand
do Gradle.
Asystent połączenia ADB
Nowy asystent połączenia ADB zawiera szczegółowe instrukcje, które pomogą Ci skonfigurować urządzenie i korzystać z niego za pomocą połączenia Android Debug Bridge (ADB).
Aby uruchomić asystenta, wybierz Narzędzia > Asystent połączenia.
Asystent połączenia ADB wyświetla instrukcje, elementy sterujące w kontekście i listę połączonych urządzeń na kilku stronach w panelu Asystent.
Ulepszenia emulatora
W Android Emulatorze możesz teraz w dowolnym momencie zapisywać i wczytywać zrzuty urządzenia wirtualnego z Androidem (AVD), dzięki czemu możesz szybko i łatwo przywracać emulowane urządzenie do znanego stanu na potrzeby testowania. Gdy edytujesz AVD za pomocą menedżera AVD, możesz określić, który zrzut AVD ma być wczytywany podczas uruchamiania AVD.
Elementy sterujące zapisywaniem, wczytywaniem i zarządzaniem migawkami AVD znajdują się teraz na karcie Migawki w oknie Ustawienia zaawansowane emulatora.
Więcej informacji znajdziesz w artykule Zrzuty.
Więcej informacji o nowościach i zmianach w emulatorze znajdziesz w informacjach o wersji emulatora.