Android Studio 3.2 (wrzesień 2018 r.)
Android Studio 3.2 to ważna wersja, która zawiera wiele nowych funkcji i ulepszeń.
3.2.1 (październik 2018 r.)
Ta aktualizacja Android Studio 3.2 zawiera następujące zmiany i poprawki:
- Dołączona wersja Kotlina to obecnie 1.2.71.
- Domyślna wersja narzędzi do kompilacji to teraz 28.0.3.
- Nazwy typów argumentów w bibliotece nawigacji zostały zmienione z
type
naargType
. - Naprawiono te błędy:
- Podczas korzystania z biblioteki Data Binding nazwy zmiennych z podkreśleniami powodowały błędy kompilacji.
- Proces CMake powodował awarię funkcji IntelliSense i innych funkcji CLion.
- Dodawanie
SliceProvider
powodowało błędy kompilacji w projektach, które nie używały bibliotekandroidx.*
. - Niektóre testy jednostkowe Kotlina nie były uruchamiane.
- Problem z powiązaniem danych spowodował
PsiInvalidElementAccessException
. - Elementy
<merge>
powodowały awarię edytora układów.
Znane problemy w wersji 3.2.0
Uwaga: te problemy zostały rozwiązane w Android Studio 3.2.1.
Zdecydowanie zalecamy, aby nie używać wersji Kotlin 1.2.70.
Kotlin w wersji 1.2.61 zawiera poprawkę błędu, który może powodować zawieszanie się Android Studio, ale Kotlin w wersji 1.2.70 nie zawiera tej poprawki.
Kotlin w wersji 1.2.71 i nowszych zawierają jednak tę poprawkę.
-
Zazwyczaj nie trzeba podawać wersji narzędzi do kompilacji, ale jeśli używasz wtyczki Android Gradle 3.2.0 z opcją
renderscriptSupportModeEnabled
ustawioną natrue
, musisz uwzględnić w plikubuild.gradle
każdego modułu:android.buildToolsVersion "28.0.3"
Co nowego w Asystencie
Nowy asystent informuje Cię o najnowszych zmianach w Android Studio.
Asystent otwiera się, gdy uruchomisz Android Studio po nowej instalacji lub aktualizacji, jeśli wykryje, że są nowe informacje do wyświetlenia. Możesz też otworzyć Asystenta, wybierając Pomoc > Co nowego w Android Studio.
Android Jetpack
Android Jetpack przyspiesza programowanie aplikacji na Androida dzięki komponentom, narzędziom i wskazówkom, które eliminują powtarzające się zadania i pozwalają szybciej i łatwiej tworzyć wysokiej jakości aplikacje nadające się do testowania. Android Studio zawiera te aktualizacje, które umożliwiają obsługę Jetpacka: Więcej informacji znajdziesz w dokumentacji Jetpacka.
Edytor nawigacji
Nowy Edytor nawigacji integruje się z elementami nawigacji Jetpacka na Androida, aby zapewnić graficzny widok struktury nawigacji aplikacji. Ułatwia to projektowanie i wdrażanie nawigacji między miejscami docelowymi w aplikacji.
Edytor nawigacji w Android Studio 3.2 to funkcja eksperymentalna. Aby włączyć Edytor nawigacji, kliknij Plik > Ustawienia (Android Studio > Preferencje na Macu), wybierz kategorię Experimental (Eksperymentalne) w panelu po lewej stronie, zaznacz pole obok opcji Enable Navigation Editor (Włącz Edytor nawigacji) i ponownie uruchom Android Studio.
Aby dowiedzieć się więcej, przeczytaj dokumentację Edytora nawigacji.
Migracja AndroidX
W ramach Jetpacka przenosimy biblioteki Android Support Libraries do nowej biblioteki rozszerzeń Androida, która korzysta z przestrzeni nazw androidx
. Więcej informacji znajdziesz w omówieniu AndroidX.
Android Studio 3.2 ułatwia ten proces dzięki nowej funkcji migracji.
Aby przenieść istniejący projekt do AndroidX, wybierz Refactor > Migrate to AndroidX. Jeśli masz zależności Maven, które nie zostały przeniesione do przestrzeni nazw AndroidX, system kompilacji Android Studio automatycznie konwertuje te zależności projektu.
Wtyczka Androida do obsługi Gradle udostępnia te flagi globalne, które możesz ustawić w pliku gradle.properties
:
android.useAndroidX
: gdy ustawisz wartośćtrue
, ta flaga oznacza, że chcesz zacząć korzystać z AndroidaX. Jeśli flaga jest nieobecna, Android Studio działa tak, jakby flaga była ustawiona nafalse
.android.enableJetifier
: gdy ten parametr ma wartośćtrue
, flaga ta wskazuje, że chcesz, aby narzędzie (z wtyczki Android Gradle) automatycznie konwertowało istniejące biblioteki innych firm tak, jakby były napisane dla AndroidX. Jeśli flaga jest nieobecna, Android Studio działa tak, jakby flaga była ustawiona nafalse
.
Gdy używasz polecenia Migrate to AndroidX, obie flagi są ustawione na true
.
Jeśli chcesz od razu zacząć używać bibliotek AndroidX i nie musisz konwertować dotychczasowych bibliotek innych firm, 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 obejmuje cały skompilowany kod i zasoby aplikacji, ale opóźnia wygenerowanie pliku APK i podpisanie go w Sklepie Google Play.
Nowy model przesyłania aplikacji w Google Play korzysta z Twojego pakietu aplikacji, aby generować i przesyłać pliki APK zoptymalizowane pod kątem konfiguracji urządzenia każdego użytkownika. Dzięki temu użytkownicy pobierają tylko kod i zasoby potrzebne do uruchomienia aplikacji. Nie musisz już tworzyć, podpisywać ani zarządzać wieloma plikami APK. Użytkownicy otrzymują mniejsze, bardziej zoptymalizowane pliki do pobrania.
Możesz też dodać do projektu aplikacji moduły funkcji i uwzględnić je w pakiecie aplikacji. Użytkownicy będą mogli pobierać i instalować funkcje aplikacji na żądanie.
Aby utworzyć pakiet, wybierz Utwórz > Utwórz pakiety / APK > Utwórz pakiety.
Więcej informacji, w tym instrukcje tworzenia i analizowania pakietów Android App Bundle, znajdziesz w artykule Pakiet Android App Bundle.
Przykładowe dane w edytorze układu
Wiele układów na Androida zawiera dane z czasu wykonywania, które mogą utrudniać wizualizację wyglądu i działania układu na etapie projektowania aplikacji. W Edytorze układów możesz teraz z łatwością zobaczyć podgląd widoku wraz z przykładowymi danymi. Gdy dodasz widok, w oknie Projektowanie pojawi się pod nim przycisk. Kliknij ten przycisk, aby ustawić atrybuty widoku w czasie projektowania. Możesz wybierać spośród różnych przykładowych szablonów danych i określać liczbę przykładowych elementów, które mają wypełnić widok.
Aby wypróbować użycie danych przykładowych, dodaj 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
Fragmenty to nowy sposób na umieszczanie części funkcji aplikacji na innych interfejsach użytkownika w Androidzie. Na przykład dzięki Slices możesz wyświetlać funkcje i treści aplikacji w sugestiach wyszukiwarki Google.
Android Studio 3.2 zawiera wbudowany szablon, który ułatwia rozszerzanie aplikacji o nowe interfejsy Slice Provider API, a także nowe mechanizmy kontroli lint, które sprawdzają, czy podczas tworzenia sekcji korzystasz ze sprawdzonych metod.
Aby rozpocząć, kliknij prawym przyciskiem folder projektu i wybierz Nowe > Inne > Dostawca segmentów.
Aby dowiedzieć się więcej, m.in. jak przetestować interakcje z Slice, przeczytaj przewodnik dla początkujących dotyczący Slice.
Kotlin 1.2.61
Android Studio 3.2 zawiera Kotlin 1.2.61, a nowy pakiet Android SDK lepiej integruje się z językiem Kotlin. 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 do wersji 2018.1.6.
Profilatory Androida
Wypróbuj poniższe nowe funkcje narzędzia do profilowania Androida w Android Studio 3.2.
Sesje
Możesz teraz zapisywać dane Profilatora jako sesje, aby wrócić do nich i je później sprawdzić. Profilator przechowuje dane sesji do momentu ponownego uruchomienia IDE.
Gdy rejestrujesz śledzenie metody lub wykonujesz zrzut stosu, IDE dodaje te dane (wraz z aktywizacją sieci aplikacji) jako osobny wpis do bieżącej sesji. Możesz łatwo przełączać się między nagraniami, aby porównywać dane.
Śledzenie systemu
W sekcji Profilowanie procesora wybierz nową konfigurację Śledzenia systemu, aby sprawdzić aktywność wątków procesora systemowego urządzenia. Ta konfiguracja śledzenia jest stworzona na podstawie bazy danych systrace
i przydaje się przy badaniu problemów na poziomie systemu, takich jak zacinanie się interfejsu.
Korzystając z tej konfiguracji śledzenia, możesz wizualnie oznaczać ważne rutiny kodu na osi czasu w profilu, instrumentując kod C/C++ za pomocą natywnego interfejsu API śledzenia lub kod Java za pomocą klasy Trace
.
Sprawdzanie odwołań JNI w aplikacji Memory Profiler
Jeśli wdrożysz aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, możesz teraz sprawdzać przydziały pamięci dla kodu JNI aplikacji za pomocą narzędzia Memory Profiler.
Gdy aplikacja jest uruchomiona, wybierz fragment osi czasu, który chcesz sprawdzić, a potem w menu nad listą klas kliknij Stos JNI, jak pokazano na rysunku poniżej. Możesz wtedy w zwykły sposób sprawdzać obiekty na stercie i kliknąć dwukrotnie obiekty na karcie Stos wywołań przydziału, aby zobaczyć, gdzie w kodzie są przydzielane i udostępniane odwołania JNI.

Importowanie, eksportowanie i badanie plików zrzutu stosu pamięci
Teraz możesz importować, eksportować i przeglądać pliki zrzutu stosu pamięci .hprof
utworzone za pomocą profilowania pamięci.
Zaimportuj plik .hprof
, klikając Rozpocznij nową sesję profilu
w panelu Sesje profilu i wybierając Wczytaj z pliku. Następnie możesz sprawdzić dane w profilu pamięci tak jak w przypadku dowolnego innego zrzutu stosu.
Aby zapisać dane z zrzutu stosu, aby przejrzeć je później, użyj przycisku Eksportuj zrzut stosu po prawej stronie pozycji Zrzut stosu w panelu Sesjekcje. 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 wybranej konfiguracji uruchomienia zaznacz pole Rozpocznij rejestrowanie śledzenia metody po uruchomieniu.
- W menu wybierz konfigurację nagrywania na procesorze, której chcesz użyć.
- Wdróż aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, wybierając Uruchom > Profil.
Eksportuj ślady procesora
Po zarejestrowaniu aktywności procesora za pomocą narzędzia CPU Profiler możesz wyeksportować dane do pliku .trace
, aby udostępnić go innym użytkownikom lub sprawdzić później.
Aby wyeksportować log czasu po zarejestrowaniu aktywności procesora, wykonaj te czynności:
- Kliknij prawym przyciskiem myszy nagranie, które chcesz wyeksportować z osi czasu procesora.
- Z menu wybierz Eksportuj log czasu.
- 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 CPU Profiler. (Obecnie nie możesz importować nagrań śledzenia systemu).
Zaimportuj plik z wykresami, klikając Rozpocznij nową sesję profilowania
w panelu Sesje w profilu i wybierając Wczytaj z pliku. Następnie możesz sprawdzić dane w profilu CPU w sposób podobny do zwykłego, z tymi wyjątkami:
- Aktywność procesora nie jest reprezentowana na osi czasu procesora.
- Oś czasu aktywności wątku wskazuje tylko, gdzie są dostępne dane śladu dla poszczególnych wątków, a nie ich stanów (np. wykonywania, oczekiwania lub uśpienia).
Rejestrowanie aktywności procesora za pomocą interfejsu Debug API
Możesz teraz rozpocząć lub zatrzymać rejestrowanie aktywności procesora w CPU Profiler, instrumentując aplikację za pomocą interfejsu Debug API. Po wdrożeniu aplikacji na urządzeniu profilujący automatycznie rozpoczyna rejestrowanie aktywności procesora, gdy aplikacja wywołuje funkcję startMethodTracing(String tracePath)
, a przestaje rejestrować, gdy aplikacja wywołuje funkcję stopMethodTracing()
. Podczas rejestrowania aktywności procesora aktywowanej za pomocą tego interfejsu API narzędzie CPU Profiler pokazuje Debug API jako wybraną konfigurację rejestrowania procesora.
Energy Profiler
Profilowanie zużycia energii 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 aktywacji, alarmy i zadania.
Energy Profiler pojawi się jako nowy wiersz u dołu okna Profiler po uruchomieniu aplikacji na połączonym urządzeniu lub emulatorze Androida z Androidem 8.0 (API 26) lub nowszym.
Kliknij wiersz Energia, aby zmaksymalizować widok Energy Profiler. Umieść wskaźnik myszy na pasku na osi czasu, aby wyświetlić podział zużycia energii na zasoby procesora, sieci i lokalizacji (GPS), a także odpowiednie zdarzenia systemowe.
Zdarzenia systemowe, które wpływają na zużycie energii, są wskazywane na osi czasu System poniżej osi czasu Energa. Szczegóły zdarzeń systemowych w wybranym zakresie czasu są widoczne na panelu zdarzeń, gdy wybierzesz zakres czasu na osi czasu Energy.
Aby wyświetlić stos wywołań i inne szczegóły zdarzenia systemowego, takiego jak blokada aktywacji, wybierz je w panelu zdarzeń. Aby przejść do kodu odpowiedzialnego za zdarzenie systemowe, kliknij dwukrotnie wpis w zbiorze wywołań.
Sprawdzanie lintowania
Android Studio 3.2 zawiera wiele nowych i ulepszonych funkcji do sprawdzania błędów.
Nowe kontrole 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.
Lint sprawdza interoperacyjność Javy i Kotlina
Aby mieć pewność, że kod Java będzie dobrze współpracować z kodem Kotlin, nowe kontrole lint egzekwują sprawdzone metody opisane w przewodniku po interoperacyjności Kotlina. Przykłady takich kontroli to sprawdzanie obecności adnotacji Nullability, używanie twardych słów kluczowych w Kotlinie oraz umieszczanie parametrów lambda na końcu.
Aby włączyć te kontrole, kliknij Plik > Ustawienia (Android Studio > Preferencje na Macu), aby otworzyć okno Ustawienia, przejdź do sekcji Edytor > Inspekcja > Android > Lint > Współpraca > Współpraca Kotlina i wybierz reguły, które chcesz włączyć.

Aby włączyć te kontrole w przypadku kompilacji w wierszu poleceń, dodaj do pliku
build.gradle
następujące informacje:
android {
lintOptions {
check 'Interoperability'
}
}
Sprawdzanie wycinków
Nowe kontrole lint dla Slices pomagają zapewnić prawidłowe tworzenie Slices. Na przykład sprawdzanie kodu ostrzega Cię, jeśli nie przypisałeś głównego działania do fragmentu.
Nowy cel Gradle
Użyj nowego zadania Gradle lintFix
, aby zastosować wszystkie bezpieczne
poprawki sugerowane przez narzędzie lint bezpośrednio w źródle kodu. Przykład kontroli lint, która sugeruje bezpieczne rozwiązanie: SyntheticAccessor
.
Aktualizacje metadanych
Różne metadane, takie jak kontrola przesyłania usługi, zostały zaktualizowane pod kątem kontroli lintowania, aby obsługiwały Androida 9 (poziom interfejsu API 28).
Ostrzeżenie, jeśli używasz narzędzia lint w nowej wersji
Lint zapisuje teraz, z którego wariantu i której wersji został zapisany poziom odniesienia, oraz ostrzega, jeśli uruchomisz go na innym wariancie niż ten, z którego został utworzony.
Ulepszenia istniejących kontroli lintowania
Android Studio 3.2 zawiera wiele ulepszeń dotychczasowych kontroli lint. Na przykład sprawdzanie cyklu zasobów dotyczy teraz dodatkowych typów zasobów, a detektor tłumaczeń może w bieżącym czasie znajdować brakujące tłumaczenia w edytorze.
ułatwienie znajdowania identyfikatorów problemów,
Identyfikatory problemów są teraz wyświetlane w większej liczbie miejsc, m.in. w oknie Wyniki inspekcji. Ułatwia to znajdowanie informacji potrzebnych do włączenia lub wyłączenia określonych mechanizmów kontroli za pomocą lintOptions
w build.gradle
.
Więcej informacji znajdziesz w artykule Konfigurowanie opcji lint za pomocą Gradle.
Wiązanie danych w wersji 2
Powiązanie danych w wersji 2 jest teraz domyślnie włączone i zgodne z wersją 1. Oznacza to, że jeśli masz zależności biblioteki skompilowane za pomocą wersji 1, możesz ich używać w projektach korzystających z powiązań danych w wersji 2. Pamiętaj jednak, że projekty korzystające z wersji 1 nie mogą używać zależności skompilowanych przy użyciu wersji 2.
Odlukryfikowanie D8
W Android Studio 3.1 zintegrowaliśmy etap odsłuchiwania z narzędziem D8 jako funkcję eksperymentalną, co skróciło ogólny czas kompilacji. W Android Studio 3.2 desugaring za pomocą D8 jest domyślnie włączony.
Nowy kompresor kodu
R8 to nowe narzędzie do kompresowania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji testowej R8, umieść w pliku gradle.properties
projektu te elementy:
android.enableR8 = true
zmiana domyślnych interfejsów ABI w przypadku zestawów wielu plików APK;
Gdy tworzysz wiele plików APK, z których każdy jest kierowany na inny interfejs ABI, w domyślnym ustawieniu wtyczka nie generuje już plików APK dla tych interfejsów ABI: mips
, mips64
i armeabi
.
Jeśli chcesz skompilować pliki APK przeznaczone na te ABI, musisz użyć NDK r16b lub niższego i w pliku build.gradle
podać te ABI, jak pokazano poniżej:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Uwaga: ta zmiana zachowania jest również uwzględniona w Android Studio 3.1 RC1 i wyższych wersjach.
Ulepszone funkcje edytora dotyczące plików kompilacji CMake
Jeśli używasz CMake do dodawania kodu C i C++ do projektu, Android Studio zawiera teraz ulepszone funkcje edytora, które ułatwiają edytowanie skryptów kompilacji CMake, np.:
- Podświetlanie składni i uzupełnianie kodu: IDE podświetla teraz i podpowiada uzupełnienie kodu dla typowych poleceń CMake. Dodatkowo możesz przejść do pliku, klikając go i naciskając klawisz Control (Command na Macu).
- Formatowanie kodu: możesz teraz użyć opcji formatowania kodu w IntelliJ, aby zastosować style kodu do skryptów kompilacji CMake.
- Bezpieczne refaktoryzowanie: wbudowane narzędzia refaktoryzacji w IDE sprawdzają teraz, czy zmieniasz nazwę lub usuwasz pliki, do których odwołujesz się w skryptach kompilacji CMake.
Przechodzenie do zewnętrznych plików nagłówka
W poprzednich wersjach Android Studio w oknie Projekt można było przeglądać i przeglądać tylko pliki nagłówka należące do bibliotek utworzonych na podstawie lokalnego projektu. W tej wersji możesz też wyświetlać i sprawdzać pliki nagłówka dołączone do zależności zewnętrznych bibliotek C/C++, które importujesz do projektu aplikacji.
Jeśli w projekcie masz już uwzględniony kod i biblioteki C/C++, otwórz okno Projekt po lewej stronie środowiska IDE, klikając w menu głównym Widok > Okna narzędzia > Projekt, a potem w menu kliknij Android. W katalogu cpp wszystkie nagłówki znajdujące się w zakresie projektu aplikacji są uporządkowane w węźle include dla każdej zależności lokalnej biblioteki C/C++, jak pokazano poniżej.

Domyślnie włączony natywny multideks
W poprzednich wersjach Android Studio natywny multideks był włączany podczas wdrażania wersji debugowania aplikacji na urządzenie z Androidem na poziomie API 21 lub nowszym. Teraz, niezależnie od tego, czy wdrażasz aplikację na urządzenie, czy kompilujesz plik APK na potrzeby wydania, wtyczka Androida do Gradle włącza natywny multideks dla wszystkich modułów z ustawieniem minSdkVersion=21
lub nowszym.
Plik AAPT2 został przeniesiony do repozytorium Maven Google
Począwszy od wersji Android Studio 3.2 źródłem AAPT2 (Android Asset Packaging Tool 2) jest repozytorium Maven Google.
Aby korzystać z AAPT2, sprawdź, czy w pliku build.gradle
masz zależność google()
, jak pokazano tutaj:
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
Z Android Studio usunięto preferencję Konfiguruj na żądanie.
Android Studio nie przekazuje już argumentu --configure-on-demand
do Gradle.
Asystent połączenia ADB
Nowy Asystent połączeń ADB zawiera szczegółowe instrukcje, które pomogą Ci skonfigurować urządzenie i używać go przez połączenie Android Debug Bridge (ADB).
Aby uruchomić asystenta, wybierz Narzędzia > Asystent połączenia.
Asystent połączenia ADB podaje instrukcje, elementy sterujące w kontekście oraz listę połączonych urządzeń z serii stron w panelu Asystent.
Ulepszenia emulatora
Teraz w emulatorze Androida możesz w dowolnym momencie zapisywać i ładować zrzuty AVD (urządzenia wirtualnego z Androidem), co ułatwia szybkie i łatwe przywrócenie znanego stanu emulowanego urządzenia. Podczas edytowania urządzenia AVD za pomocą menedżera urządzenia AVD możesz określić, który zrzut urządzenia AVD ma być wczytany po jego uruchomieniu.
Elementy sterujące służące do zapisywania, wczytywania i zarządzania snapshotami AVD znajdują się teraz na karcie Snapshoty w oknie Rozszerzone opcje emulatora.
Więcej informacji znajdziesz w artykule Zrzuty.
Więcej informacji o nowościach i zmianach w emulatorze znajdziesz w informacjach o wersji emulatora.