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 na argType.
  • 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 bibliotek androidx.*.
    • Niektóre testy jednostkowe Kotlin nie zostały uruchomione.
    • 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 błąd, który powodował zawieszanie się Androida Studio, ale Kotlin 1.2.70 nie obejmuje 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ą na true, musisz uwzględnić w pliku build.gradle każdego modułu:

    android.buildToolsVersion "28.0.3"

Co nowego w Asystencie

Nowy asystent informuje 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 tworzenie aplikacji na Androida dzięki komponentom, narzędziom i wskazówkom, które eliminują powtarzalne zadania i umożliwiają szybsze i prostsze tworzenie wysokiej jakości aplikacji, które można testować. Android Studio zawiera poniższe aktualizacje obsługujące Jetpack. Więcej informacji znajdziesz w dokumentacji Jetpacka.

Nowy edytor nawigacji integruje się z komponentami nawigacji Androida Jetpack, aby zapewnić graficzny widok do tworzenia struktury nawigacji w aplikacji. Edytor nawigacji upraszcza projekt i implementację 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 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 przekształca 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: jeśli ustawisz wartość true, ten parametr flagi wskazuje, że od teraz chcesz używać AndroidX. Jeśli flaga jest nieobecna, Android Studio działa tak, jakby flaga była ustawiona na false.
  • android.enableJetifier: gdy jest ustawiona na true, ta flaga wskazuje, że chcesz zapewnić obsługę narzędzi (z wtyczki Androida do obsługi Gradle), aby automatycznie konwertować istniejące biblioteki zewnętrzne tak, jakby były one napisane na AndroidaX. Jeśli flaga jest nieobecna, Android Studio działa tak, jakby flaga była ustawiona na false.

Gdy używasz polecenia Migrate to AndroidX, obie flagi są ustawione na true.

Jeśli chcesz od razu zacząć korzystać z bibliotek AndroidaX i nie musisz konwertować istniejących bibliotek zewnętrznych, możesz ustawić flagę android.useAndroidX na true, a 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. Teraz możesz łatwo wyświetlić podgląd widoku w Edytorze układu wypełnionego 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 wybrać jeden z wielu szablonów przykładowych danych i określić liczbę przykładowych elementów, którymi wypełnisz 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 ma wbudowany szablon ułatwiający rozszerzenie aplikacji o nowe interfejsy API dostawcy wycinków, a także nowe kontrole lintowania, które pozwalają upewnić się, że podczas tworzenia wycinków przestrzegasz 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 te nowe funkcje Profilatora 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ć. Program profilujący przechowuje dane sesji, dopóki nie uruchomisz ponownie 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 oparta na systrace i przydaje się do badania problemów na poziomie systemu, takich jak problemy z interfejsem użytkownika.

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.

Sprawdź odwołania do JNI w narzędziu Memory Profiler

Jeśli wdrażasz 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ą profilowania pamięci.

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. Następnie możesz przeglądać obiekty w pniu, tak jak zwykle, oraz podwójnie klikać obiekty na karcie Stos wywołania alokacji, aby sprawdzić, gdzie w Twoim kodzie przydzielane i zwalniane są odwołania JNI.

Importowanie, eksportowanie i przeglądanie plików z zrzutem 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 zrzutu stosu do sprawdzenia później, kliknij przycisk Eksportuj zrzut stosu po prawej stronie wpisu Zrzut stosu 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:

  1. W menu głównym wybierz Uruchom > Edytuj konfiguracje.
  2. Na karcie Profilowanie wybranej konfiguracji uruchomienia zaznacz pole Rozpocznij rejestrowanie śledzenia metody po uruchomieniu.
  3. Wybierz z menu konfigurację rejestrowania procesora, której chcesz użyć.
  4. 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ą narzędzia CPU Profiler możesz wyeksportować dane do pliku .trace, aby udostępnić go innym użytkownikom lub sprawdzić później.

Aby wyeksportować ślad po zarejestrowaniu aktywności procesora, wykonaj te czynności:

  1. Kliknij prawym przyciskiem myszy nagranie, które chcesz wyeksportować z osi czasu procesora.
  2. W menu kliknij Eksportuj ślad.
  3. Przejdź do miejsca, w którym chcesz zapisać plik, i kliknij Zapisz.

Importowanie i sprawdzanie plików śledzenia procesora

Możesz teraz importować i przeglądać pliki .trace utworzone za pomocą Debug API lub profilowania procesora. (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ąć i zatrzymać nagrywanie aktywności procesora w profilu CPU, 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, która jest wywoływana za pomocą tego interfejsu API, profil narzędzia CPU Profiler wyświetla Debug API jako wybraną konfigurację nagrywania procesora.

Energy Profiler

Program profilujący umożliwia wyświetlenie wizualizacji szacowanego wykorzystania energii przez aplikację, a także zdarzeń systemowych, które mają wpływ na zużycie energii, takich jak blokady wybudzenia, alarmy i zadania.

Gdy uruchomisz aplikację na połączonym urządzeniu lub w Emulatorze Androida z Androidem 8.0 (API 26) lub nowszym, profilowanie zużycia energii pojawi się jako nowy wiersz u dołu okna Profilowanie.

Kliknij wiersz Energia, aby zmaksymalizować widok Energy Profiler. Najedź kursorem na słupek na osi czasu, aby zobaczyć zestawienie zużycia energii według procesora, sieci i zasobów lokalizacji (GPS) oraz 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 ubrań

Android Studio 3.2 zawiera wiele nowych i ulepszonych funkcji do sprawdzania błędów.

Nowe funkcje kontroli lintowania ułatwiają znajdowanie i identyfikowanie typowych problemów z kodem, od ostrzeżeń o potencjalnych problemach z obsługą po bardzo ważne błędy 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 obiekt 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, w tym w oknie Wyniki inspekcji. Dzięki temu łatwiej znajdziesz informacje potrzebne do włączenia lub wyłączenia konkretnych kontroli za pomocą lintOptions w sekcji build.gradle.

Więcej informacji znajdziesz w artykule Konfigurowanie opcji lint za pomocą Gradle.

Powią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.

Odlukrowywanie D8

W Android Studio 3.1 zintegrowaliśmy z narzędziem D8 krok desugaringu jako funkcję eksperymentalną, co pozwoliło skrócić ogólny czas kompilacji. W Android Studio 3.2 desugaring za pomocą D8 jest domyślnie włączony.

Nowy zmniejszacz kodu

R8 to nowe narzędzie do kompresowania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji podglądu R8, w pliku gradle.properties projektu dodaj:

      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, mips64armeabi.

Jeśli chcesz utworzyć pliki APK kierowane na te interfejsy ABI, musisz użyć interfejsu NDK r16b lub niższym i określić interfejsy ABI w pliku build.gradle w następujący sposób:

    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 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.:

  • Wyróżnianie składni i uzupełnianie kodu: IDE zaznacza teraz i sugeruje uzupełnienie kodu dla typowych poleceń CMake. Możesz też przejść do pliku, klikając go przytrzymują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 do refaktoryzacji w IDE sprawdzają teraz, czy zmieniasz nazwy lub usuwasz pliki, do których odwołujesz się w skryptach kompilacji CMake.

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 przeglądać pliki nagłówka zawarte w zewnętrznych bibliotekach C/C++, które zaimportujesz do projektu aplikacji.

Jeśli Twój projekt obejmuje już kod i biblioteki C/C++, otwórz okno Projekt po lewej stronie IDE. W tym celu z menu głównego wybierz Widok > Okna narzędziowe > Projekt i z menu wybierz 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.

AAPT2 przeniesione 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 użyć AAPT2, sprawdź, czy w pliku build.gradle występuje 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łączenia ADB zawiera szczegółowe instrukcje konfigurowania i używania urządzenia za pomocą połączenia Android Debug Bridge (ADB).

Aby uruchomić asystenta, wybierz Narzędzia > Asystent połączenia.

Asystent połączenia ADB zawiera instrukcje, kontekstowe elementy sterujące oraz listę połączonych urządzeń na 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.