Starsze wersje

Poniżej znajdziesz informacje o wersji Androida Studio 3.6 i starszych oraz wtyczki Androida Gradle w wersji 3.6.0 i starszych.

Starsze wersje Android Studio

3.6 (luty 2020 r.)

Android Studio 3.6 to duża wersja z wieloma nowymi funkcjami i ulepszeniami.

Chcemy również podziękować wszystkim współtwórcom z naszej społeczności, którzy pomogli nam przy tworzeniu tej wersji.

3.6.3 (kwiecień 2020 r.)

Ta drobna aktualizacja zawiera różne poprawki błędów. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

3.6.2 (marzec 2020 r.)

Ta drobna aktualizacja zawiera różne poprawki błędów. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

3.6.1 (luty 2020 r.)

Ta drobna aktualizacja zawiera różne poprawki błędów. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

Narzędzia do projektowania

Ta wersja Android Studio zawiera aktualizacje kilku narzędzi do projektowania, w tym edytora układu i menedżera zasobów.

Dzielenie i powiększanie w edytorach projektowania

podzielony widok pokazuje jednocześnie widok projektu i tekstu

Ta wersja obejmuje te aktualizacje edytorów projektu wizualnego:

  • Edytory projektów, takie jak edytor układu i edytor nawigacji, udostępniają teraz widok podziałowy, który umożliwia jednoczesne wyświetlanie widoków projektu i kodu interfejsu. W prawym górnym rogu okna edytora znajdują się teraz 3 przyciski wyświetl ikony umożliwiające przełączanie się między opcjami wyświetlania:

    • Aby włączyć widok dzielony, kliknij ikonę Podziel ikona podzielonego widoku.
    • Aby włączyć widok źródła XML, kliknij ikonę Źródło ikona widoku źródła.
    • Aby włączyć widok projektu, kliknij ikonę Projekt ikona widoku projektu.
  • W edytorach projektowania elementy sterujące powiększeniem i przesuwaniem zostały przeniesione do pływającego panelu w prawym dolnym rogu okna edytora.

Więcej informacji znajdziesz w artykule Tworzenie interfejsu za pomocą edytora układów.

Karta zasobu selektora kolorów

Aby pomóc Ci szybko aktualizować wartości zasobów kolorów w aplikacji, gdy korzystasz z selektora kolorów w pliku XML lub narzędzi do projektowania, IDE wypełnia teraz za Ciebie wartości zasobów kolorów.

Selektor kolorów z wypełnionymi wartościami kolorów

Menedżer zasobów

Menedżer zasobów zawiera te aktualizacje:

  • Menedżer zasobów obsługuje teraz większość typów zasobów.
  • Podczas wyszukiwania zasobu w Menedżerze zasobów wyświetlane są teraz wyniki ze wszystkich modułów projektu. Wcześniej wyszukiwania zwracały wyniki tylko z wybranego modułu.
  • Przycisk filtra umożliwia wyświetlanie zasobów z zależnych modułów lokalnych, bibliotek zewnętrznych i platformy Androida. Możesz też użyć filtra, aby wyświetlić atrybuty motywu.
  • Podczas importowania możesz teraz zmieniać nazwy zasobów, klikając pole tekstowe nad zasobem.

Więcej informacji znajdziesz w artykule o zarządzaniu zasobami interfejsu aplikacji za pomocą Menedżera zasobów.

Aktualizacje wtyczki Androida do obsługi Gradle

Najnowsza wersja wtyczki Androida do obsługi Gradle zawiera wiele aktualizacji, w tym optymalizacje szybkości kompilacji, obsługę wtyczki publikowania Maven i obsługę funkcji View Binding. Aby dowiedzieć się więcej, przeczytaj pełne informacje o wersji.

Wyświetl powiązanie

Powiązanie widoku danych ułatwia pisanie kodu, który wchodzi w interakcję z widokami przez generowanie klasy powiązania dla każdego pliku układu XML. Te klasy zawierają bezpośrednie odwołania do wszystkich widoków, które mają identyfikator w odpowiednim układzie.

Zastępuje on findViewById(), więc wiązanie widoku eliminuje ryzyko wystąpienia wyjątków wskaźnika o wartości null wynikającego z nieprawidłowego identyfikatora widoku.

Aby włączyć wiązanie widoku danych, musisz użyć wtyczki Androida do obsługi Gradle w wersji 3.6.0 lub nowszej i uwzględnić te elementy w pliku build.gradle każdego modułu:

Odlotowy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Apply Changes

Możesz teraz dodać klasę, a następnie wdrożyć zmianę kodu w działającej aplikacji. Aby to zrobić, kliknij Zastosuj zmiany w kodzie lub Zastosuj zmiany i uruchom ponownie aktywność.

Więcej informacji o różnicach między tymi działaniami znajdziesz w artykule Stosowanie zmian.

Opcja refaktoryzacji menu umożliwiająca włączenie obsługi aplikacji błyskawicznych

Teraz możesz błyskawicznie włączyć moduł podstawowy w dowolnym momencie po utworzeniu projektu aplikacji w ten sposób:

  1. Otwórz panel Projekt, wybierając na pasku menu Widok > Okna narzędzi > Projekt.
  2. Kliknij prawym przyciskiem myszy moduł podstawowy (zwykle o nazwie „aplikacja”) i wybierz Refaktor > Włącz obsługę aplikacji błyskawicznych.
  3. W wyświetlonym oknie dialogowym wybierz z menu moduł podstawowy.
  4. Kliknij OK.

Uwaga: opcja błyskawicznego włączania modułu podstawowej aplikacji z kreatora Tworzenie nowego projektu została usunięta.

Więcej informacji znajdziesz w artykule Omówienie aplikacji błyskawicznych w Google Play.

Usuwanie zaciemnienia kodu bajtowego klasy i metody w Analizatorze plików APK

Jeśli używasz Analizatora plików APK do sprawdzania plików DEX, możesz usunąć zaciemnienie kodu bajtowego klas i metod w ten sposób:

  1. Z paska menu wybierz Utwórz > Analizuj plik APK.
  2. W wyświetlonym oknie przejdź do pliku APK, który chcesz sprawdzić, i wybierz go.
  3. Kliknij Otwórz.
  4. W Analizatorze plików APK wybierz plik DEX, który chcesz sprawdzić.
  5. W przeglądarce plików DEX załaduj plik mapowań ProGuard dla analizowanego pliku APK.
  6. Kliknij prawym przyciskiem myszy klasę lub metodę, którą chcesz sprawdzić, i wybierz Show bytecode (Pokaż kod bajtowy).

Narzędzia natywne

Poniższe aktualizacje obsługują programowanie natywne (C/C++) w Android Studio.

Zespół pomocy Kotlin

Poniższe funkcje pakietu NDK w Android Studio, które były wcześniej obsługiwane w języku Java, są teraz obsługiwane w Kotlin:

  • Przejdź z deklaracji JNI do odpowiedniej funkcji implementacji w języku C/C++. Wyświetl to mapowanie, najeżdżając kursorem na znacznik elementu C lub C++ w pobliżu numeru wiersza w pliku zarządzanego kodu źródłowego.

  • Automatycznie utwórz funkcję implementacji wycinka kodu dla deklaracji JNI. Najpierw zdefiniuj deklarację JNI, a następnie wpisz „jni” lub nazwę metody w pliku C/C++, aby aktywować tę funkcję.

  • Nieużywane natywne funkcje implementacji są wyróżnione w kodzie źródłowym jako ostrzeżenie. Jako błąd są też wyróżnione deklaracje JNI z brakującymi implementacjami.

  • Gdy zmienisz nazwę (refaktoryzację) natywnej funkcji implementacji, wszystkie odpowiadające jej deklaracje JNI zostaną zaktualizowane. Zmień nazwę deklaracji JNI, aby zaktualizować funkcję implementacji natywnej.

  • Sprawdzanie podpisów w przypadku niejawnie powiązanych implementacji JNI.

Inne ulepszenia JNI

Edytor kodu w Android Studio obsługuje teraz łatwiejszy proces programowania JNI, w tym ulepszone wskazówki dotyczące typów, autouzupełnianie, inspekcje i refaktoryzację kodu.

Ponowne ładowanie plików APK bibliotek natywnych {:#3.6-reload-apk}

Nie musisz już tworzyć nowego projektu, gdy pakiet APK w Twoim projekcie zostanie zaktualizowany poza IDE. Android Studio wykrywa zmiany w pliku APK i umożliwia jego ponowne zaimportowanie.

Dołączanie źródeł plików APK obejmujących tylko Kotlin

Możesz teraz dołączać zewnętrzne źródła plików APK przeznaczone tylko do Kotlin podczas profilowania i debugowania gotowych plików APK. Więcej informacji znajdziesz w artykule o dołączaniu źródeł Kotlin/Java.

Wykrywanie wycieku w programie Memory Profiler

Analizując zrzut stosu w narzędziu Memory Profiler, możesz teraz filtrować dane profilowania, które według Android Studio mogą wskazywać na wycieki pamięci w instancjach Activity i Fragment w Twojej aplikacji.

Filtr wyświetla następujące typy danych:

  • Activity instancji, które zostały zniszczone, ale nadal się do nich odwołują.
  • Instancje (Fragment), które nie mają prawidłowego atrybutu FragmentManager, ale są nadal wywoływane.

Dołączanie źródeł plików APK obejmujących tylko Kotlin

Możesz teraz dołączać zewnętrzne źródła plików APK przeznaczone tylko do Kotlin podczas profilowania i debugowania gotowych plików APK. Więcej informacji znajdziesz w artykule o dołączaniu źródeł Kotlin/Java.

Wykrywanie wycieku w programie Memory Profiler

Analizując zrzut stosu w narzędziu Memory Profiler, możesz teraz filtrować dane profilowania, które według Android Studio mogą wskazywać na wycieki pamięci w instancjach Activity i Fragment w Twojej aplikacji.

Filtr wyświetla następujące typy danych:

  • Activity instancji, które zostały zniszczone, ale nadal się do nich odwołują.
  • Fragment instancji, które nie mają prawidłowego atrybutu FragmentManager, ale są nadal wywoływane.

W pewnych sytuacjach, np. w tych przypadkach, filtr może zwrócić wyniki fałszywie pozytywne:

  • Utworzono Fragment, ale nie był jeszcze używany.
  • Element Fragment jest zapisywany w pamięci podręcznej, ale nie jako część FragmentTransaction.

Aby użyć tej funkcji, najpierw przechwyć zrzut stosu lub zaimportuj plik zrzutu stosu do Android Studio. Aby wyświetlić fragmenty i działania, które mogą powodować wyciek pamięci, zaznacz pole wyboru Wycieki aktywności/fragmentu w panelu zrzutu stosu narzędzia do profilowania pamięci.

Program profilujący: wykrywanie wycieku pamięci

Filtruję zrzut stosu pod kątem wycieków pamięci.

Emulatory

Android Studio 3.6 umożliwia korzystanie z kilku aktualizacji zawartych w Emulatorze Androida w wersji 29.2.7 i nowszych, jak opisano poniżej.

Ulepszona obsługa lokalizacji

Emulator Androida w wersji 29.2.7 i nowszych zapewnia dodatkową obsługę emulacji współrzędnych GPS i informacji o trasie. Po otwarciu rozszerzonych elementów sterujących opcje na karcie Lokalizacja są uporządkowane na 2 kartach: Pojedyncze punkty i Trasy.

Pojedyncze punkty

Na karcie Pojedyncze punkty możesz używać widoku internetowego Map Google do wyszukiwania ciekawych miejsc, tak jak w przypadku Map Google na telefonie lub w przeglądarce. Wyszukując lub klikając lokalizację na mapie, możesz ją zapisać, wybierając Zapisz punkt u dołu mapy. Wszystkie zapisane lokalizacje są wymienione po prawej stronie okna Rozszerzone ustawienia.

Aby ustawić lokalizację emulatorów na lokalizację wybraną na mapie, kliknij przycisk Ustaw lokalizację w prawym dolnym rogu okna Rozszerzone elementy sterujące.

Karta Pojedyncze punkty w rozszerzonych elementach sterujących emulatora..

Trasy

Podobnie jak w przypadku karty Pojedyncze punkty, karta Trasy udostępnia widok internetowy Map Google, który pozwala utworzyć trasę między 2 lub większą liczbą lokalizacji. Aby utworzyć i zapisać trasę, wykonaj te czynności:

  1. W widoku mapy wyszukaj pierwszy cel podróży na trasie, korzystając z pola tekstowego.
  2. Wybierz lokalizację z wyników wyszukiwania.
  3. Kliknij przycisk Nawigacja.
  4. Wybierz na mapie punkt początkowy trasy.
  5. (Opcjonalnie) Kliknij Dodaj cel podróży, aby dodać do trasy kolejne przystanki.
  6. Zapisz trasę, klikając Zapisz trasę w widoku mapy.
  7. Podaj nazwę trasy i kliknij Zapisz.

Aby symulować użycie emulatora po zapisanej trasie, wybierz ją z listy Zapisane trasy i kliknij Odtwórz trasę w prawym dolnym rogu okna Rozszerzone elementy sterujące. Aby zatrzymać symulację, kliknij Zatrzymaj trasę.

Karta Trasy w rozszerzonych ustawieniach emulatora..

Aby symulować ciągłość działania emulatora po określonej trasie, ustaw przełącznik obok opcji Powtarzaj odtwarzanie. Aby zmienić szybkość, z jaką emulator pokonuje określoną trasę, wybierz opcję z menu Szybkość odtwarzania.

Obsługa kilku wyświetlaczy

Za pomocą emulatora Androida możesz teraz wdrożyć aplikację na wielu wyświetlaczach, które obsługują niestandardowe wymiary i pomagają testować aplikacje, które obsługują tryb wielu okien i wieloekranowe. Po uruchomieniu urządzenia wirtualnego możesz dodać maksymalnie 2 dodatkowe wyświetlacze w ten sposób:

  1. Otwórz Rozszerzone elementy sterujące i przejdź na kartę Wyświetlanie.

  2. Aby dodać kolejny wyświetlacz, kliknij Dodaj dodatkowy wyświetlacz.

  3. W menu w sekcji Ekrany dodatkowe wykonaj jedną z tych czynności:

  4. Wybierz jeden z gotowych formatów obrazu.

  5. Wybierz custom i ustaw wysokość, szerokość i dpi niestandardowego wyświetlacza.

  6. (Opcjonalnie) Kliknij Dodaj dodatkowy wyświetlacz, aby dodać trzeci wyświetlacz.

  7. Kliknij Zastosuj zmiany, aby dodać określone wyświetlacze do działającego urządzenia wirtualnego.

Dodaj wiele wyświetlaczy Karta Rozszerzone elementy sterujące emulatora.

Nowe urządzenia wirtualne i szablony projektów na system operacyjny Android Automotive

Gdy tworzysz nowy projekt w Android Studio, na karcie Automotive w kreatorze Tworzenie nowego projektu możesz teraz wybrać jeden z 3 szablonów: Brak aktywności, Usługa multimedialna lub Usługa przesyłania wiadomości. W przypadku istniejących projektów możesz dodać obsługę urządzeń Android Automotive, wybierając na pasku menu Plik > Nowy > Nowy moduł, a następnie Moduł motoryzacyjny. Kreator tworzenia nowego modułu przeprowadzi Cię przez proces tworzenia nowego modułu przy użyciu jednego z szablonów projektu Android Automotive.

Wybieram szablon projektu Android Automotive..

Oprócz tego możesz teraz utworzyć urządzenie wirtualne z Androidem (AVD) na urządzenia z systemem operacyjnym Android Automotive, wybierając jedną z poniższych opcji na karcie Automotive w kreatorze konfiguracji urządzenia wirtualnego.

  1. Polestar 2: pozwala utworzyć komponent AVD, który naśladuje jednostkę główną Polestar 2.
  2. Automotive (1024p, orientacja pozioma): utwórz reklamę AVD dla standardowych jednostek głównych Android Automotive, które mają rozdzielczość 1024 x 768 pikseli.

wybieranie urządzenia wirtualnego z Androidem Automotive,.

Pobieranie pakietu SDK z możliwością wznowienia

Gdy pobierasz komponenty i narzędzia pakietu SDK za pomocą SDK Manager, Android Studio umożliwia teraz wznowienie pobierania, które zostało przerwane (np. z powodu problemu z siecią), zamiast wznowić pobieranie od początku. To ulepszenie jest szczególnie przydatne w przypadku pobierania dużych plików, np. emulatora Androida czy obrazów systemu, gdy połączenie z internetem jest zawodne.

Dodatkowo, jeśli Twoje zadanie pobierania pakietu SDK jest uruchomione w tle, możesz teraz wstrzymać lub wznowić pobieranie za pomocą elementów sterujących na pasku stanu.

Zadanie pobierania w tle wyświetlane na pasku stanu z nowymi elementami sterującymi, które umożliwiają wstrzymywanie i wznawianie pobierania.

Zadanie pobierania w tle wyświetlane na pasku stanu z nowymi elementami sterującymi, które umożliwiają wstrzymywanie i wznawianie pobierania.

System Win32 został wycofany

Z końcem grudnia 2019 r. 32-bitowa wersja Android Studio dla systemu Windows nie będzie już otrzymywać aktualizacji, a z grudniem 2020 r. nie będzie już obsługiwana. Możesz nadal korzystać z Android Studio. Aby jednak otrzymywać dodatkowe aktualizacje, uaktualnij stację roboczą do 64-bitowej wersji systemu Windows.

Więcej informacji znajdziesz na blogu na temat wycofywania 32-bitowych wersji systemu Windows.

Nowa opcja optymalizacji czasu synchronizacji Gradle

W poprzednich wersjach podczas synchronizacji Gradle aplikacja Android Studio pobierała listę wszystkich zadań Gradle. W przypadku dużych projektów pobieranie listy zadań może wydłużyć czas synchronizacji.

Aby poprawić wydajność synchronizacji Gradle, wybierz Plik > Ustawienia > Eksperymentalne i wybierz Nie twórz listy zadań Gradle podczas synchronizacji Gradle.

Gdy włączysz tę opcję, Android Studio pomija tworzenie listy zadań podczas synchronizacji, co pozwala Gradle Sync szybciej wykonywać operacje i poprawić responsywność UI. Pamiętaj, że gdy IDE pomija tworzenie listy zadań, listy zadań w panelu Gradle są puste, a autouzupełnianie nazw zadań w plikach kompilacji nie działa.

Nowa lokalizacja umożliwiająca przełączanie trybu offline Gradle

Aby włączyć lub wyłączyć tryb offline Gradle, najpierw wybierz na pasku menu Widok > Okna narzędzi > Gradle. Następnie w górnej części okna Gradle kliknij Przełącz tryb offline Przycisk offline Gradle w panelu Gradle..

IntelliJ IDEA 2019.2

Podstawowe środowisko IDE Android Studio zostało zaktualizowane o ulepszenia wprowadzone w wersji IntelliJ IDEA w wersji z 2019.2.

Więcej informacji o ulepszeniach innych wersji IntelliJ uwzględnionych łącznie z wersją 2019.2 znajdziesz na tych stronach:

Współtwórcy społeczności

Dziękujemy wszystkim użytkownikom z naszej społeczności, którzy pomogli nam w wykrywaniu błędów i innych sposobach udoskonalania Androida Studio 3.6. W szczególności dziękujemy tym osobom, które zgłosiły błędy:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • David Burström
  • Deepanshu
  • Egor Andriewiczi
  • Eli Graber
  • Emin Kokalari
  • Ewan Tatarka
  • Františka Nagy
  • Grzesiek Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Piętno Henninga
  • Hugo Visser
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Jan Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Łukasz Kowalski
  • Malwin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Michał Skamel
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Goncalves
  • Roar Grønmo
  • Rusłan Baratov
  • Sinan Kozak
  • Sławomir Czerwiński
  • Stefan Wolf
  • Stephen D'Amico
  • tao wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tony Robalik
  • Torbjørn Sørli
  • Warren He
  • Yenchi lin
  • Zac Sweers
  • 3.5 (sierpień 2019 r.)

    Android Studio 3.5 to powszechna wersja, która powstała w wyniku projektu Marble. Począwszy od opublikowania Androida Studio 3.3, inicjatywa Project Marble obejmowała wiele wersji, które skupiały się na ulepszaniu 3 głównych obszarów IDE: stanu systemu, dopracowania funkcji i naprawiania błędów.

    Informacje o tych i innych zmianach dotyczących Project Marble znajdziesz w poście na blogu dla deweloperów aplikacji na Androida i w sekcjach poniżej.

    Chcemy również podziękować wszystkim współtwórcom ze społeczności, którzy pomogli nam przy tworzeniu tej wersji.

    3.5.3 (grudzień 2019 r.)

    Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności.

    3.5.2 (listopad 2019 r.)

    Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    3.5.1 (październik 2019 r.)

    Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    Projekt Marble: stan systemu

    W tej sekcji opisujemy zmiany w Android Studio 3.5, które mają na celu poprawę stanu systemu.

    Zalecane ustawienia pamięci

    Android Studio powiadomi Cię teraz, jeśli wykryje, że można poprawić wydajność, zwiększając maksymalną ilość pamięci RAM, którą system operacyjny powinien przydzielić na procesy Android Studio, takie jak podstawowy IDE, demon Gradle i demon Kotlin. Możesz zaakceptować zalecane ustawienia, klikając link działania w powiadomieniu, lub dostosować je ręcznie, wybierając Plik > Ustawienia (lub Android Studio > Preferencje w systemie macOS), a następnie przechodząc do sekcji Ustawienia pamięci w obszarze Wygląd i zachowanie > Ustawienia systemu. Więcej informacji znajdziesz w sekcji Maksymalny rozmiar sterty.

    Powiadomienie o zalecanych ustawieniach pamięci.

    Powiadomienie o zalecanych ustawieniach pamięci.

    Raport dotyczący wykorzystania pamięci

    Problemy z pamięcią w Android Studio są czasem trudne do odtworzenia i zgłoszenia. Aby rozwiązać ten problem, Android Studio umożliwia wygenerowanie raportu dotyczącego wykorzystania pamięci. Aby to zrobić, kliknij Pomoc > Analizuj wykorzystanie pamięci na pasku menu. Gdy to zrobisz, IDE automatycznie oczyści dane na potrzeby danych osobowych, zanim pojawi się pytanie, czy chcesz je wysłać do zespołu Android Studio, aby pomóc w zidentyfikowaniu źródła problemów z pamięcią. Więcej informacji znajdziesz w sekcji Generowanie raportu o wykorzystaniu pamięci.

    Raport o wykorzystaniu pamięci.

    Raport o wykorzystaniu pamięci.

    Windows: optymalizacja wejścia-wyjścia plików antywirusowych

    Android Studio teraz automatycznie sprawdza, czy określone katalogi projektu są wykluczone ze skanowania antywirusowego w czasie rzeczywistym. Jeśli można wprowadzić zmiany, aby zwiększyć wydajność kompilacji, Android Studio powiadomi Cię o tym i poda instrukcje, jak zoptymalizować konfigurację antywirusową. Więcej informacji znajdziesz w artykule Minimalizowanie wpływu oprogramowania antywirusowego na szybkość kompilacji.

    Projekt Marble: ulepszenie funkcji

    W tej sekcji opisujemy zmiany w Android Studio 3.5, które mają na celu ulepszenie dotychczasowych funkcji.

    Apply Changes

    Opcja Zastosuj zmiany umożliwia wypchnięcie zmian kodu i zasobów do działającej aplikacji bez jej ponownego uruchamiania, a w niektórych przypadkach bez ponownego uruchamiania bieżącej aktywności. Zastosuj zmiany wdraża zupełnie nowe podejście do zachowania stanu aplikacji. W przeciwieństwie do funkcji Instant Run, która zmieniła kod bajtowy Twojego pakietu APK, funkcja Zastosuj zmiany na bieżąco zmienia klasyfikację klas, wykorzystując w środowisku wykonawczym narzędzia obsługiwane w Androidzie 8.0 (poziom interfejsu API 26) lub nowszym.

    Więcej informacji znajdziesz w artykule Stosowanie zmian.

    Przyciski Zastosuj zmiany na pasku narzędzi.

    Przyciski Zastosuj zmiany na pasku narzędzi.

    Proces wdrażania aplikacji

    W IDE znajdziesz nowe menu, które pozwala szybko wybrać urządzenie, na którym chcesz wdrożyć aplikację. W tym menu znajduje się też nowa opcja, która umożliwia uruchamianie aplikacji na wielu urządzeniach jednocześnie.

    Menu urządzenia docelowego.

    Menu urządzenia docelowego.

    Ulepszone wykrywanie synchronizacji i pamięci podręcznej Gradle

    IDE lepiej wykrywa teraz, kiedy Gradle okresowo czyści pamięć podręczną kompilacji, ograniczając wykorzystanie dysku twardego. W poprzednich wersjach ten stan powodował, że IDE zgłaszało brakujące zależności i nie udało się zsynchronizować Gradle. Teraz IDE pobiera zależności w razie potrzeby, aby zapewnić pomyślne ukończenie synchronizacji Gradle.

    Ulepszone dane wyjściowe błędów kompilacji

    Okno Kompilacji Ikona okna kompilacji zapewnia teraz lepsze raportowanie błędów, na przykład link do pliku i wiersz zgłoszonego błędu, w przypadku tych procesów kompilacji:

    • Kompilacja i łączenie AAPT
    • R8 i ProGuard
    • Dexing
    • Scalanie zasobów
    • Analiza pliku XML
    • Kompilacja języków Javac, Kotlinc i CMake

    Uaktualnienia projektów

    Ulepszony proces aktualizacji udostępnia więcej informacji i działań ułatwiających aktualizowanie IDE i wtyczki Androida do obsługi Gradle. Na przykład więcej błędów synchronizacji i kompilacji obejmuje działania pomagające ograniczyć liczbę błędów podczas aktualizacji.

    Pamiętaj, że IDE możesz aktualizować niezależnie od innych komponentów, takich jak wtyczka Androida do obsługi Gradle. Możesz więc bezpiecznie zaktualizować IDE, gdy tylko pojawi się nowsza wersja, a później zaktualizować inne komponenty.

    Edytor układu

    Android Studio 3.5 zawiera kilka ulepszeń w zakresie wizualizacji układu, zarządzania nim i interakcji.

    Podczas pracy z obiektem ConstraintLayout nowa sekcja Ograniczenia w panelu Atrybuty zawiera listę relacji ograniczeń wybranego komponentu UI. Możesz je wybrać na powierzchni projektu lub z listy, by wyróżnić je w obu obszarach.

    Ograniczenia dotyczące wybranego elementu interfejsu użytkownika.

    Ograniczenia dotyczące wybranego elementu interfejsu użytkownika.

    Podobnie możesz teraz usunąć ograniczenie, zaznaczając je i naciskając klawisz Delete. Możesz też usunąć ograniczenie, przytrzymując klawisz Control (Command w systemie macOS) i klikając kotwicę ograniczenia. Pamiętaj, że gdy przytrzymasz klawisz Control lub Command i najedziesz kursorem na kotwicę, wszystkie powiązane ograniczenia zmienią kolor na czerwony, co oznacza, że możesz je kliknąć, by je usunąć.

    Po wybraniu widoku możesz utworzyć ograniczenie, klikając dowolną ikonę + w sekcji Widżet ograniczeń w panelu Atrybuty, jak widać na ilustracji poniżej. Gdy tworzysz nowe ograniczenie, edytor układu wybiera je i podświetla, dzięki czemu natychmiast widzisz, co zostało dodane.

    Animacja pokazująca, jak używać widżetu ograniczeń do tworzenia ograniczeń.

    Używanie widżetu ograniczeń do tworzenia ograniczeń .

    Podczas tworzenia ograniczenia edytor układu wyświetla teraz tylko odpowiednie punkty zakotwiczenia, do których możesz go ograniczyć. Wcześniej w edytorze układu wyróżniały się wszystkie punkty zakotwiczenia we wszystkich widokach, niezależnie od tego, czy można było do nich zastosować ograniczenia. Ponadto niebieska nakładka podświetla teraz obszar docelowy ograniczenia. To wyróżnienie jest szczególnie przydatne, gdy próbujesz ograniczyć się do komponentu, który nakłada się z innym.

    Animacja pokazująca, jak w Android Studio 3.4 utworzyć ograniczenie dla nakładającego się komponentu.

    Tworzenie ograniczenia dla nakładającego się komponentu w Android Studio 3.4.

    Animacja pokazująca, jak w Androidzie Studio 3.5 utworzyć ograniczenie dla nakładającego się komponentu.

    Tworzenie ograniczenia dla nakładającego się komponentu w Android Studio 3.5.

    Oprócz powyższych aktualizacji Android Studio 3.5 zawiera też te ulepszenia edytora układów:

    • Widżet ograniczeń i menu domyślnych marginesów umożliwiają teraz używanie zasobów wymiarów na potrzeby marginesów.
    • Na pasku narzędzi edytora układu została zaktualizowana lista urządzeń określających rozmiar powierzchni projektowania. Ulepszyliśmy też działanie przyciągania podczas zmiany rozmiaru, a uchwyty zmiany rozmiaru na powierzchni projektu są teraz zawsze widoczne. Podczas zmiany rozmiaru pojawiają się nowe nakładki pokazujące typowe rozmiary urządzeń.
    • Edytor układu ma nowy schemat kolorów, który zwiększa spójność i zmniejsza kontrast między komponentami, tekstem i ograniczeniami.
    • Tryb planu umożliwia teraz obsługę tekstu w przypadku niektórych komponentów, w których tekst nie był wyświetlany.

    Więcej informacji o tych zmianach znajdziesz na stronie Projekt Marble w Android Studio: edytor układu.

    Powiązanie danych

    Oprócz dodania obsługi przyrostowego przetwarzania adnotacji na potrzeby wiązania danych IDE ulepsza funkcje inteligentnego edytora i zwiększa wydajność podczas tworzenia wyrażeń wiązań danych w formacie XML.

    Animacja pokazująca działanie edytora kodu w Android Studio 3.4.

    Wydajność edytora kodu w Android Studio 3.4.

    Animacja pokazująca działanie edytora kodu w Android Studio 3.5.

    Lepsze możliwości edytowania kodu w Android Studio 3.5.

    Ulepszona obsługa projektów C/C++

    Android Studio 3.5 zawiera kilka zmian, które poprawiają obsługę projektów w języku C/C++.

    Ulepszenia panelu wariantów kompilacji na potrzeby synchronizacji pojedynczego wariantu

    W panelu Warianty kompilacji możesz teraz określić zarówno aktywny wariant kompilacji, jak i aktywny interfejs ABI. Ta funkcja upraszcza konfigurację kompilacji w poszczególnych modułach, a także może poprawić wydajność synchronizacji Gradle.

    Więcej informacji znajdziesz w artykule Zmienianie wariantu kompilacji.

    Panel wariantów kompilacji przedstawiający wybór pojedynczego wariantu według interfejsu ABI.

    Panel wariantów kompilacji z wyborem pojedynczego wariantu według interfejsu ABI.

    Wersje NDK obok siebie

    Teraz możesz korzystać obok siebie w wielu wersjach pakietu NDK. Ta funkcja zapewnia większą elastyczność podczas konfigurowania projektów – na przykład jeśli masz projekty korzystające z różnych wersji NDK na tej samej maszynie.

    Jeśli w projekcie używasz wtyczki Androida do obsługi Gradle w wersji 3.5.0 lub nowszej, możesz też określić wersję NDK, której powinien używać każdy moduł w projekcie. Możesz użyć tej funkcji do tworzenia powtarzalnych kompilacji i łagodzenia niezgodności między wersjami NDK a wtyczką Androida do obsługi Gradle.

    Więcej informacji znajdziesz w artykule Instalowanie i konfigurowanie pakietu NDK, CMake i LLDB.

    Pomoc dotycząca ChromeOS

    Android Studio oficjalnie obsługuje teraz urządzenia z ChromeOS, takie jak HP Chromebook x360 14, Acer Chromebook 13/Spin 13 i inne, o których możesz przeczytać w wymaganiach systemowych. Na początek pobierz Android Studio na zgodne urządzenie z ChromeOS i postępuj zgodnie z instrukcjami instalacji.

    Uwaga: Android Studio w ChromeOS obsługuje obecnie wdrażanie aplikacji tylko na podłączonym urządzeniu. Więcej informacji znajdziesz w artykule Uruchamianie aplikacji na urządzeniu sprzętowym.

    Wyświetlanie warunkowe modułów funkcji

    Dostarczanie warunkowe umożliwia określenie wymagań związanych z konfiguracją urządzenia, aby moduły funkcji były pobierane automatycznie podczas instalowania aplikacji. Możesz na przykład skonfigurować moduł funkcji zawierający funkcje rzeczywistości rozszerzonej (AR) tak, aby był dostępny podczas instalacji aplikacji tylko na urządzeniach obsługujących AR.

    Ten mechanizm dostarczania obsługuje obecnie kontrolowanie pobierania modułu w czasie instalacji aplikacji w oparciu o te konfiguracje urządzeń:

    • funkcje sprzętu i oprogramowania urządzenia, w tym wersja OpenGL ES.
    • Kraj użytkownika
    • Poziom interfejsu API

    Jeśli urządzenie nie spełnia wszystkich określonych wymagań, moduł nie jest pobierany w momencie instalowania aplikacji. Aplikacja może jednak później poprosić o pobranie modułu na żądanie za pomocą biblioteki podstawowej Play. Więcej informacji znajdziesz w artykule o konfigurowaniu dostarczania warunkowego.

    IntelliJ IDEA 2019.1

    Podstawowe środowisko IDE Android Studio zostało zaktualizowane o ulepszenia wprowadzone w wersji IntelliJ IDEA w wersji z 2019.1, takie jak dostosowywanie motywu.

    Ostatnia wersja IntelliJ dołączona do Android Studio to 2018.3.4. Więcej informacji o ulepszeniach z innych wersji IntelliJ wprowadzonych łącznie z tą wersją Android Studio znajdziesz w tych aktualizacjach poprawek błędów:

    Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.5.0

    Informacje o nowościach we wtyczce Androida do obsługi Gradle w wersji 3.5.0, takich jak ulepszona obsługa przyrostowego przetwarzania adnotacji i testowanie jednostek w pamięci podręcznej, znajdziesz w informacjach o wersji.

    Współtwórcy społeczności

    Dziękujemy wszystkim użytkownikom społeczności, którzy pomogli nam odkrywać błędy i korzystać z innych sposobów udoskonalania Androida Studio 3.5. W szczególności dziękujemy następującym osobom, które zgłosiły błędy P0 i P1:

    3.4 (kwiecień 2019 r.)

    Android Studio 3.4 to duża wersja z wieloma nowymi funkcjami i ulepszeniami.

    3.4.2 (lipiec 2019 r.)

    Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    3.4.1 (maj 2019 r.)

    Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    3.4.0 znane problemy

    • Profilowanie jest wyłączone podczas wdrażania aplikacji na urządzeniu z Androidem Q w wersji beta.

    • Podczas korzystania z biblioteki powiązań danych LiveDataListener.onChanged() może wystąpić błąd z użyciem NPE. Rozwiązanie tego problemu zostanie uwzględnione w Android Studio 3.4.1 i jest już dostępne w najnowszej wersji testowej Androida Studio 3.5. (Zobacz problem nr 122066788)

    IntelliJ IDEA 2018.3.4

    Podstawowe środowisko IDE Android Studio zostało zaktualizowane o ulepszenia wprowadzone w wersji IntelliJ IDEA do wersji 2018.3.4.

    Aktualizacje wtyczki Androida do obsługi Gradle w wersji 3.4.0

    Więcej informacji o nowościach we wtyczce Androida do obsługi Gradle w wersji 3.4.0 znajdziesz w informacjach o 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.

    Aby otworzyć PSD, na pasku menu wybierz Plik > Struktura projektu. Możesz też otworzyć plik PSD, naciskając Ctrl+Shift+Alt+S w systemach Windows i Linux lub Command+; (średnik) w systemie macOS. Poniżej znajdziesz opisy niektórych nowych i zaktualizowanych sekcji dyrektywy 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 w celu zapewnienia spójności zależności w całym projekcie.

    • Szybkie wyświetlanie i edytowanie zmiennych kompilacji, które już istnieją w skryptach kompilacji Gradle projektu.
    • Nowe zmienne kompilacji możesz dodawać na poziomie projektu lub modułu bezpośrednio z PSD.

    Uwaga: jeśli Twoje istniejące pliki konfiguracji kompilacji przypisują wartości za pomocą złożonych skryptów Groovy, możesz nie być w stanie edytować tych wartości w PSD. Poza tym nie możesz edytować plików kompilacji napisanych w Kotlin za pomocą PSD.

    Moduły

    Skonfiguruj właściwości, które są stosowane do wszystkich wariantów kompilacji w istniejącym module, lub dodaj do projektu nowe moduły w sekcji Moduły. Tutaj możesz na przykład skonfigurować właściwości defaultConfig lub zarządzać konfiguracjami podpisywania.

    Zależności

    Sprawdź i zwizualizuj każdą zależności na wykresie zależności swojego projektu, które udało się rozwiązać przez Gradle podczas synchronizacji projektu. W tym celu wykonaj te czynności:

    1. W panelu po lewej stronie PSD wybierz Zależności.
    2. W panelu Moduły wybierz moduł, w którym chcesz sprawdzić rozwiązane zależności.
    3. Po prawej stronie PSD otwórz widoczny poniżej panel Rozwiązane zależności.

    Możesz też szybko wyszukać i dodać zależności do projektu, wybierając moduł w sekcji Zależności PSD, klikając przycisk (+) w sekcji Deklarowane 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 pojawić się okno podobne do tego poniżej. Pomoże Ci ono dodać zależność do modułu.

    Warianty kompilacji

    W tej sekcji dyrektywy PSD utwórz i skonfiguruj warianty kompilacji i smaki usług dla każdego modułu w projekcie. Możesz dodawać obiekty zastępcze plików manifestu, dodawać pliki ProGuard i przypisywać klucze podpisywania.

    Sugestie

    W sekcji Sugestie znajdziesz sugerowane aktualizacje zależności projektu i zmiennych kompilacji.

    Nowy menedżer zasobów

    Menedżer zasobów to nowe okno z narzędziami do importowania, tworzenia i używania zasobów w aplikacji oraz do zarządzania nimi. Aby otworzyć okno narzędzia, na pasku menu wybierz Widok > Okna narzędzi > Menedżer zasobów. Menedżer zasobów umożliwia:

    • Wizualizacja zasobów:możesz wyświetlać podgląd elementów rysowanych, kolorów i układów, by szybko znajdować potrzebne zasoby.
    • Importowanie zbiorcze: możesz jednocześnie zaimportować wiele zasobów rysowalnych, przeciągając je i upuszczając w oknie narzędzia Menedżer zasobów lub korzystając z kreatora Importuj elementy rysowane. Aby otworzyć kreatora, kliknij przycisk (+) w lewym górnym rogu okna narzędzia, a następnie wybierz Importuj elementy rysunkowe z menu.
    • Konwertowanie plików SVG na obiekty VectorDrawable: możesz użyć kreatora Importuj elementy rysunkowe, aby przekonwertować obrazy SVG na obiekty VectorDrawable.
    • Przeciąganie i upuszczanie zasobów: z okna narzędzia Menedżer zasobów możesz przeciągać i upuszczać elementy rysowane w widoku projektu i pliku XML w edytorze układu.
    • Wyświetlanie wersji alternatywnych: możesz teraz wyświetlać alternatywne wersje zasobów, klikając dwukrotnie zasób w oknie Narzędzia. W tym widoku wyświetlane są różne utworzone przez Ciebie wersje oraz uwzględnione kwalifikatory.
    • Widoki kafelków i list: możesz zmieniać widok w oknie narzędzia, aby wizualizować zasoby w różnych układach.

    Więcej informacji znajdziesz w przewodniku po zarządzaniu zasobami aplikacji.

    Sprawdzanie identyfikatorów kompilacji podczas profilowania i debugowania plików APK

    Gdy udostępniasz pliki symboli debugowania dla bibliotek udostępnionych .so w pakiecie APK, Android Studio sprawdza, czy identyfikator kompilacji podanych plików symboli jest zgodny z identyfikatorem kompilacji bibliotek .so w pliku APK.

    Jeśli biblioteki natywne tworzysz w pakiecie APK za pomocą identyfikatora kompilacji, Android Studio sprawdza, czy identyfikator kompilacji w plikach symboli jest zgodny z identyfikatorem kompilacji w bibliotekach natywnych, i odrzuca pliki symboli w razie niezgodności. Jeśli nie została skompilowana 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 deustrakowanie, zmniejszanie, zaciemnianie, optymalizację i usuwanie szczegółów, co skutkuje zauważalnym poprawą wydajności kompilacji. R8 został wprowadzony we wtyczce Androida do obsługi Gradle w wersji 3.3.0 i jest teraz domyślnie włączony w projektach bibliotecznych w aplikacjach i na Androidzie za pomocą wtyczki w wersji 3.4.0 lub nowszej.

    Na ilustracji poniżej przedstawiono ogólny przegląd procesu kompilacji przed wprowadzeniem R8.

    Przed R8 ProGuard był innym etapem kompilacji niż dexing i deugarowanie.

    W przypadku R8 usuwanie odblasków, zmniejszanie, zaciemnianie, optymalizowanie i usuwanie (D8) można wykonać w jednym kroku, jak widać na przykładzie poniżej.

    W przypadku R8 deugarowanie, zmniejszanie, zaciemnianie, optymalizacja i usuwanie dexing jest wykonywane w jednym kroku kompilacji.

    Pamiętaj, że R8 zostało zaprojektowane do współpracy z Twoimi istniejącymi regułami ProGuard, więc prawdopodobnie nie musisz podejmować żadnych działań, aby skorzystać z R8. Ponieważ jednak jest to inna technologia niż ProGuard, która została opracowana specjalnie na potrzeby projektów na Androida, pomniejszenie i optymalizacja może spowodować usunięcie kodu, którego ProGuard może nie. W tej mało prawdopodobnej sytuacji konieczne może być dodanie kolejnych reguł, aby zachować ten kod w danych wyjściowych kompilacji.

    Jeśli masz problemy z R8, przeczytaj Najczęstsze pytania na temat zgodności z R8, aby sprawdzić, czy można tam znaleźć rozwiązanie. Jeśli rozwiązania nie ma w dokumentacji, 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 przypadku danego typu kompilacji ustawisz useProguard na false w pliku build.gradle modułu aplikacji, wtyczka Androida do obsługi Gradle użyje R8 do zmniejszenia kodu aplikacji pod kątem tego typu kompilacji niezależnie od tego, czy wyłączysz R8 w pliku gradle.properties projektu.

    Edytor nawigacji obsługuje teraz wszystkie typy argumentów obsługiwane przez komponent Nawigacja. Więcej informacji na temat obsługiwanych typów znajdziesz w artykule o przekazywaniu danych między miejscami docelowymi.

    Ulepszenia edytora układu: {:#layout-editor}

    Panel Atrybuty w edytorze układu został uproszczony do jednej strony z sekcjami, które możesz rozwinąć, aby zobaczyć atrybuty do skonfigurowania. Panel Atrybuty zawiera też te aktualizacje:

    • Nowa sekcja Zadeklarowane atrybuty zawiera listę atrybutów określonych w pliku układu i umożliwia szybkie dodawanie nowych.
    • W panelu Atrybuty znajdują się teraz wskaźniki obok każdego atrybutu, który ma wartość pełnowartościową, jeśli wartość atrybutu jest odwołaniem do zasobu, a w przeciwnym razie jest pusta.
    • Atrybuty z błędami lub ostrzeżeniami są teraz wyróżnione. Czerwone wyróżnienia wskazują błędy (np. nieprawidłowe wartości układu), a pomarańczowe – ostrzeżenia (np. gdy używasz wartości umieszczonych na stałe).

    Nowe działanie dotyczące zamiaru szybkiego importowania zależności

    Jeśli zaczniesz używać w kodzie określonych klas Jetpack i Firebase, nowe działanie intencji będzie sugerować dodanie do projektu wymaganej zależności biblioteki Gradle. Jeśli na przykład odwołasz się do klasy WorkManager bez wcześniejszego zaimportowania wymaganej zależności android.arch.work:work-runtime, działanie intencji pozwala to łatwo zrobić jednym kliknięciem, jak pokazano poniżej.

    Ponieważ w Jetpack zostały utworzone osobne pakiety pomocy, które są łatwiejsze do zarządzania i aktualizowania, to działanie intencji pomaga szybko dodać tylko te zależności od komponentów Jetpack, których chcesz używać.

    3.3 (styczeń 2019 r.)

    Android Studio 3.3 to duża wersja z wieloma nowymi funkcjami i ulepszeniami.

    3.3.2 (marzec 2019 r.)

    Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności. Listę ważnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    3.3.1 (luty 2019 r.)

    Ta drobna aktualizacja zawiera różne poprawki błędów i ulepszenia w zakresie wydajności.

    IntelliJ IDEA 2018.2.2

    Podstawowe środowisko IDE Android Studio zostało zaktualizowane o ulepszenia wprowadzone w wersji IntelliJ IDEA do wersji 2018.2.2.

    Aktualizacje wtyczki Androida do obsługi Gradle

    Więcej informacji o nowościach we wtyczce Androida do obsługi Gradle znajdziesz w informacjach o wersji.

    Edytor nawigacji umożliwia szybką wizualizację i wbudowanie nawigacji w aplikację za pomocą komponentu architektury nawigacji.

    Więcej informacji znajdziesz w artykule o implementowaniu nawigacji za pomocą komponentu architektury nawigacji.

    Usuń nieużywane katalogi Android Studio

    Przy pierwszym uruchomieniu głównej wersji Android Studio szukamy katalogów zawierających pamięć podręczną, ustawienia, indeksy i logi wersji Android Studio, których nie można znaleźć. W oknie Usuń nieużywane katalogi Android Studio wyświetli się informacja o lokalizacji, rozmiarach i czasie ostatniej modyfikacji tych nieużywanych katalogów. Możesz je też usunąć.

    Katalogi, które Android Studio uważa do usunięcia:

    • Linux: ~/.AndroidStudio[Preview]X.Y
    • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • Windows: %USER%.AndroidStudio[Preview]X.Y

    Poprawki linijki

    Lint jest wywoływany z Gradle znacznie szybciej – w przypadku większych projektów lint może działać nawet 4 razy szybciej.

    Kreator nowego projektu

    Kreator tworzenia nowego projektu ma nowy wygląd i zawiera aktualizacje, które ułatwiają tworzenie nowych projektów Android Studio.

    Więcej informacji znajdziesz w artykule Tworzenie projektu.

    Aktualizacje programu profilującego

    Android Studio 3.3 zawiera aktualizacje kilku programów profilujących.

    Większa wydajność

    Na podstawie opinii użytkowników stwierdziliśmy, że wydajność renderowania podczas korzystania z programów profilowych znacznie się poprawiła. Dalej przesyłaj opinię, zwłaszcza jeśli problemy z wydajnością nie ustąpią.

    Opcje śledzenia alokacji pamięci przez program profilujący

    Aby poprawić wydajność aplikacji podczas profilowania, narzędzie do profilowania pamięci domyślnie próbkuje przydziały pamięci okresowo okresowo. Jeśli chcesz, możesz zmienić to działanie, korzystając z menu Śledzenie przydziałów podczas testowania na urządzeniach z Androidem 8.0 (poziom interfejsu API 26) lub nowszym.

    W menu Śledzenie przydziałów możesz wybrać jeden z tych trybów:

    • Pełne: przechwytuje wszystkie przydziały pamięci obiektów. Pamiętaj, że jeśli masz aplikację, która alokuje wiele obiektów, podczas profilowania mogą wystąpić poważne problemy z wydajnością.

    • Próbkowane: rejestruje okresową próbkę alokacji pamięci obiektów. To jest zachowanie domyślne, które ma mniejszy wpływ na wydajność aplikacji podczas profilowania. W przypadku aplikacji, które alokują dużo obiektów w krótkim czasie, mogą wystąpić problemy z wydajnością.

    • Wyłączono: wyłącza przydział pamięci. Jeśli nie został jeszcze wybrany, ten tryb włącza się automatycznie podczas nagrywania procesora. Po zakończeniu nagrywania jest przywracany do poprzedniego ustawienia. Możesz zmienić to działanie w oknie konfiguracji nagrywania procesora.

      Śledzenie ma wpływ zarówno na obiekty Java, jak i odwołania do JNI.

    Sprawdź dane renderowania ramki

    W programie profilującym procesora możesz teraz sprawdzić, ile czasu zajmuje aplikacji Java na wyrenderowanie każdej klatki w głównym wątku UI i w RenderThread. Te dane mogą być przydatne podczas badania wąskich gardeł, które powodują zacinanie się interfejsu i małą liczbę klatek. Na przykład każda klatka, która trwa dłużej niż 16 ms wymagana do uzyskania płynnej liczby klatek, jest wyświetlana na czerwono.

    Aby zobaczyć dane renderowania klatek, zarejestruj log czasu za pomocą konfiguracji, która umożliwia śledzenie wywołań systemowych. Po zarejestrowaniu logu czasu znajdź informacje o każdej klatce na osi czasu w sekcji FRAMES, jak pokazano poniżej.

    Więcej informacji o analizowaniu i rozwiązywaniu problemów z liczbą klatek znajdziesz w artykule Powolne renderowanie.

    Fragmenty na osi czasu zdarzenia

    Oś czasu zdarzenia wyświetla teraz, kiedy fragmenty są dołączone i odłączane. Dodatkowo po najechaniu kursorem na fragment pojawi się etykietka ze stanem fragmentu.

    Wyświetlanie sformatowanego tekstu ładunków połączenia w narzędziu do profilowania sieci

    Wcześniej program profilujący sieci wyświetlał tylko nieprzetworzony tekst z ładunków połączenia. Android Studio 3.3 domyślnie formatuje teraz niektóre typy tekstu, w tym JSON, XML i HTML. Na kartach Odpowiedź i Żądanie kliknij link Wyświetl przeanalizowane, aby wyświetlić sformatowany tekst, a następnie kliknij link Wyświetl źródło, aby wyświetlić nieprzetworzony tekst.

    Więcej informacji znajdziesz w artykule o sprawdzaniu ruchu w sieci przy użyciu programu profilującego sieci.

    Automatyczne pobieranie komponentów pakietu SDK

    Jeśli Twój projekt potrzebuje komponentu SDK z platform SDK, NDK lub CMake, Gradle próbuje teraz automatycznie pobrać wymagane pakiety. W tym celu musisz wcześniej zaakceptować wszelkie powiązane umowy licencyjne za pomocą SDK Manager.

    Więcej informacji znajdziesz w artykule o automatycznym pobieraniu brakujących pakietów za pomocą Gradle.

    Obsługa Clang-Tidy

    Android Studio zapewnia teraz obsługę analizy kodu statycznego za pomocą narzędzia Clang-Tidy w przypadku projektów zawierających kod natywny. Aby włączyć obsługę Clang-Tidy, zaktualizuj NDK do wersji r18 lub nowszej.

    Następnie możesz włączyć lub ponownie włączyć inspekcje w oknie Ustawienia lub Preferencje, a potem Edytor > Inspekcje > C/C++ > Ogólne > Clang-Tidy. Gdy wybierzesz tę kontrolę w oknie Ustawienia lub Preferencje, w sekcji Opcja w najbliższym panelu po prawej stronie zobaczysz listę testów Clang-Tidy, które są włączone i wyłączone. Aby włączyć dodatkowe testy, dodaj je do listy i kliknij Zastosuj.

    Aby skonfigurować Clang-Tidy z dodatkowymi opcjami, kliknij Skonfiguruj opcje kontroli Clang-Tidy i dodaj je w wyświetlonym oknie.

    Usunięcie opcji dostosowywania języka C++

    Z okna Dostosuj obsługę C++ usunięto te opcje:

    • Obsługa wyjątków (-fexceptions)
    • Obsługa informacji o typie środowiska wykonawczego (-ftti)

    Odpowiednie zachowania są włączone we wszystkich projektach tworzonych w Android Studio.

    CMake w wersji 3.10.2

    CMake w wersji 3.10.2 znajdziesz teraz w SDK Manager. Pamiętaj, że Gradle nadal domyślnie używa wersji 3.6.0.

    Aby określić wersję CMake, która ma być używana przez Gradle, dodaj ten kod do pliku build.gradle modułu:

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    Więcej informacji o konfigurowaniu CMake w build.gradle znajdziesz w sekcji Ręczne konfigurowanie Gradle.

    Nowa składnia „+” do określania minimalnej wersji CMake

    Określając wersję CMake w pliku build.gradle modułu głównego, możesz teraz dołączyć znak „+”, który odpowiada działaniu polecenia cmake_minimum_required() w CMake.

    Uwaga: odradzamy używanie składni „+” w połączeniu z innymi zależnościami kompilacji, ponieważ zależności dynamiczne mogą powodować nieoczekiwane aktualizacje wersji i utrudniać rozwiązywanie różnic między wersjami.

    Pakiety Android App Bundle obsługują teraz aplikacje błyskawiczne

    Android Studio umożliwia teraz tworzenie pakietów Android App Bundle z pełną obsługą aplikacji błyskawicznej w Google Play. Inaczej mówiąc, możesz teraz tworzyć i wdrażać zarówno aplikacje zainstalowane, jak i błyskawiczne, korzystając z jednego projektu Android Studio, oraz umieszczać je w pojedynczym pakiecie Android App Bundle.

    Jeśli tworzysz nowy projekt Android Studio w oknie Utwórz nowy projekt, pamiętaj, by zaznaczyć pole Skonfiguruj projekt > Ten projekt będzie obsługiwać aplikacje błyskawiczne. Android Studio utworzy wtedy nowy projekt aplikacji w zwykły sposób, ale będzie zawierał te właściwości w pliku manifestu, aby dodać obsługę aplikacji błyskawicznej do modułu podstawowego aplikacji:

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

    Utwórz moduł funkcji obsługujący aplikacje błyskawiczne, wybierając Plik > Nowy > Nowy moduł z paska menu, a następnie Moduł funkcji dynamicznych w oknie Utwórz nowy moduł. Pamiętaj, że utworzenie tego modułu włącza też natychmiastowy moduł podstawowy aplikacji.

    Aby wdrożyć aplikację na urządzeniu lokalnym jako aplikację błyskawiczną, zmień konfigurację uruchamiania i zaznacz pole Ogólne > Wdróż jako aplikację błyskawiczną.

    Synchronizacja projektu z jednym wariantem

    Zsynchronizowanie projektu z konfiguracją kompilacji jest ważnym krokiem pozwalającym Android Studio zrozumieć strukturę projektu. W przypadku dużych projektów ten proces może być jednak czasochłonny. Jeśli Twój projekt korzysta z kilku wariantów kompilacji, możesz teraz zoptymalizować synchronizacje projektów, ograniczając je tylko do obecnie wybranego wariantu.

    Aby włączyć tę optymalizację, musisz używać Androida Studio w wersji 3.3 lub nowszej z wtyczką Androida do obsługi Gradle w wersji 3.3.0 lub nowszej. Jeśli spełniasz te wymagania, IDE poprosi o włączenie tej optymalizacji podczas synchronizowania projektu. Optymalizacja jest też domyślnie włączona w nowych projektach.

    Aby włączyć tę optymalizację ręcznie, kliknij Plik > Ustawienia > Eksperymentalne > Gradle (Android Studio > Ustawienia > Eksperymentalne > Gradle na Macu) i zaznacz pole wyboru Synchronizuj tylko aktywny wariant.

    Uwaga: ta optymalizacja obecnie obsługuje projekty, które zawierają tylko język programowania Java. Jeśli na przykład IDE wykryje kod Kotlin lub C++ w Twoim projekcie, nie włączy automatycznie tej optymalizacji i nie należy włączać jej ręcznie.

    Więcej informacji znajdziesz w artykule o włączaniu synchronizacji projektu z jednym wariantem.

    Szybkie przesyłanie opinii

    Jeśli masz włączone udostępnianie statystyk użytkowania w celu ulepszania Androida Studio, na pasku stanu u dołu okna IDE zobaczysz te 2 nowe ikony:

    Po prostu kliknij ikonę, która najlepiej odzwierciedla Twoje bieżące korzystanie z IDE. Gdy to zrobisz, IDE wyśle statystyki użytkowania, które pomogą zespołowi Android Studio lepiej zrozumieć Twoje odczucia. W niektórych przypadkach, na przykład gdy wskażesz negatywne wrażenia z IDE, będziesz mieć możliwość przesłania dodatkowych opinii.

    Jeśli nie jest włączone udostępnianie statystyk użytkowania, otwórz okno Ustawienia Ustawienia na Macu, wybierz Wygląd i zachowanie > Ustawienia systemu > Udostępnianie danych i zaznacz Wysyłaj statystyki użytkowania do Google.

    3,2 (wrzesień 2018 r.)

    Android Studio 3.2 to duża wersja z wieloma nowymi funkcjami i ulepszeniami.

    3.2.1 (październik 2018 r.)

    Ta aktualizacja Androida Studio 3.2 obejmuje te zmiany i poprawki:

    • Dołączona wersja Kotlin to teraz 1.2.71.
    • Domyślna wersja narzędzi do kompilacji to teraz 28.0.3.
    • W bibliotece nawigacji typy argumentów zostały zmienione z type na argType.
    • Naprawiliśmy następujące błędy:
      • Podczas korzystania z biblioteki powiązań danych nazwy zmiennych ze podkreśleniami powodowały błędy kompilacji.
      • Proces CMake powodował awarię usługi IntelliSense i innych funkcji CLion.
      • Dodanie zasobu SliceProvider powodowało błędy kompilacji w projektach, które nie korzystały z bibliotek androidx.*.
      • Niektóre testy jednostkowe Kotlin nie zostały uruchomione.
      • Problem z powiązaniem danych spowodował błąd PsiInvalidElementAccessException.
      • <merge> elementu powodowało awarię edytora układu.

    3.2.0 znane problemy

    Uwaga: te problemy zostały rozwiązane w Android Studio w wersji 3.2.1

    • Zdecydowanie odradzamy korzystanie z Kotlin w wersji 1.2.70.

      Kotlin w wersji 1.2.61 zawiera poprawkę błędu, który może powodować zawieszenie Androida Studio, ale Kotlin 1.2.70 go nie zawiera.

      Kotlin w wersji 1.2.71 i nowszych uwzględnia jednak tę poprawkę.

    • Chociaż zazwyczaj 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 atrybutem renderscriptSupportModeEnabled ustawionym na true, w pliku build.gradle każdego modułu musisz umieścić te informacje:

      android.buildToolsVersion "28.0.3"

    Co nowego w Asystencie

    Nowy asystent informuje o najnowszych zmianach w Android Studio.

    Asystent uruchamia się po uruchomieniu Androida Studio po odinstalowaniu lub aktualizacji, gdy wykryje, że są dostępne nowe informacje. Asystenta możesz też otworzyć, wybierając Pomoc > Co nowego w Android Studio.

    Jetpack na Androida

    Android Jetpack pomaga przyspieszyć tworzenie aplikacji na Androida dzięki komponentom, narzędziom i wskazówkom, które eliminują powtarzalne zadania i pozwalają szybciej i łatwiej tworzyć wysokiej jakości aplikacje, które można przetestować. Android Studio zawiera opisane poniżej aktualizacje umożliwiające obsługę Jetpacka. Więcej informacji znajdziesz w dokumentacji Jetpacka.

    Nowy edytor nawigacji integruje się z komponentami nawigacji na Androidzie Jetpack, umożliwiając tworzenie w sposób graficzny struktury nawigacyjnej aplikacji. Edytor nawigacji upraszcza projektowanie i implementację nawigacji między miejscami docelowymi w aplikacji.

    W Android Studio 3.2 edytor nawigacji to funkcja eksperymentalna. Aby włączyć edytor nawigacji, kliknij Plik > Ustawienia (Android Studio > Ustawienia na Macu), wybierz w lewym panelu kategorię Eksperymentalne, zaznacz pole Włącz edytor nawigacji i ponownie uruchom Android Studio.

    Więcej informacji znajdziesz w dokumentacji Edytora nawigacji.

    Migracja AndroidX

    W ramach Jetpacka przenosimy biblioteki pomocy na Androida do nowej biblioteki rozszerzeń na Androida korzystającej z przestrzeni nazw androidx. Więcej informacji znajdziesz w omówieniu AndroidaX.

    Android Studio 3.2 pomaga Ci w tym procesie dzięki nowej funkcji migracji.

    Aby przenieść istniejący projekt na AndroidaX, wybierz Refaktor > Przenieś na AndroidaX. Jeśli masz jakieś zależności Maven, które nie zostały przeniesione do przestrzeni nazw AndroidX, system kompilacji Android Studio również 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: jeśli ustawisz wartość true, ta flaga oznacza, że chcesz od teraz zacząć korzystać z AndroidaX. Jeśli flaga nie jest określona, Android Studio działa tak, jakby flaga była ustawiona na false.
    • android.enableJetifier: gdy ustawiona jest wartość true, ta flaga oznacza, że chcesz zapewnić obsługę narzędzi (z wtyczki Androida do obsługi Gradle), aby automatycznie konwertować istniejące biblioteki innych firm tak, jakby były napisane na AndroidaX. Jeśli flaga nie jest określona, Android Studio działa tak, jakby flaga była ustawiona na false.

    Gdy używasz polecenia Przenieś na AndroidaX, obie flagi są ustawione na true.

    Jeśli chcesz od razu zacząć korzystać z 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 obejmujący cały skompilowany kod i zasoby aplikacji, ale opóźnia generowanie plików APK i podpisywanie ich w Sklepie Google Play.

    Nowy model obsługi aplikacji w Google Play wykorzystuje Twój pakiet aplikacji do generowania i udostępniania zoptymalizowanych plików APK dla konfiguracji urządzeń każdego użytkownika. Dzięki temu każdy użytkownik pobiera tylko kod i zasoby niezbędne do uruchomienia aplikacji. Nie musisz już tworzyć i podpisywać wielu plików APK ani nimi zarządzać, a użytkownicy będą otrzymywać mniejsze, lepiej zoptymalizowane pliki do pobrania.

    Dodatkowo możesz dodawać moduły funkcji do projektu aplikacji i uwzględniać je w pakiecie aplikacji. Użytkownicy będą mogli pobierać i instalować funkcje aplikacji na żądanie.

    Aby utworzyć pakiet, wybierz Build > Build Bundle / APK(s) > Build Bundle.

    Więcej informacji, w tym instrukcje tworzenia i analizowania pakietu Android App Bundle, znajdziesz w artykule Android App Bundle.

    Przykładowe dane w edytorze układu

    Wiele układów Androida zawiera dane w czasie działania, które mogą utrudniać wizualizację wyglądu i stylu na etapie projektowania aplikacji. Możesz teraz łatwo zobaczyć podgląd widoku w Edytorze układu, który zawiera przykładowe dane. Gdy dodasz widok, pod nim w oknie projektu pojawi się przycisk . Kliknij ten przycisk, aby ustawić atrybuty widoku danych w czasie projektowania. Możesz wybierać spośród wielu szablonów przykładowych danych i określać liczbę przykładowych elementów, które mają zostać wypełnione w widoku.

    Aby spróbować użyć przykładowych danych, dodaj RecyclerView do nowego układu, kliknij przycisk atrybutów czasu projektowania pod widokiem i wybierz opcję z karuzeli szablonów przykładowych danych.

    Wycinki

    Wycinki zapewniają nowy sposób umieszczania fragmentów funkcji aplikacji w innych interfejsach Androida. Wycinki umożliwiają na przykład wyświetlanie funkcji i treści aplikacji w sugestiach wyszukiwarki Google.

    Android Studio 3.2 ma wbudowany szablon, który pomoże Ci rozszerzyć aplikację o nowe interfejsy Slice Provider API, a także nowe testy lintowania, aby mieć pewność, że podczas tworzenia wycinków postępujesz zgodnie ze sprawdzonymi metodami.

    Aby rozpocząć, kliknij prawym przyciskiem myszy folder projektu i wybierz Nowy > Inne > Dostawca wycinka.

    Więcej informacji, m.in. o sposobie testowania interakcji z wycinkami, znajdziesz w przewodniku dla początkujących.

    Kotlin 1.2.61

    Android Studio 3.2 zawiera pakiet Kotlin w wersji 1.2.61, a nowy pakiet Android SDK lepiej integruje się z tą usługą. Więcej informacji znajdziesz na blogu dla deweloperów aplikacji na Androida.

    IntelliJ IDEA 2018.1.6

    Podstawowe środowisko IDE Android Studio zostało zaktualizowane o ulepszenia wprowadzone w wersji IntelliJ IDEA do wersji 2018.1.6.

    Programy profilujące Androida

    Wypróbuj nowe funkcje profilowania na Androida w Android Studio 3.2.

    Sesje

    Możesz teraz zapisywać dane z programu profilującego jako sesje, aby je później przeglądać i sprawdzać. Program profilujący przechowuje dane sesji do momentu ponownego uruchomienia IDE.

    Gdy rejestrujesz ślad metody lub przechwytujesz zrzut stosu, IDE dodaje te dane (wraz z aktywnością aplikacji w sieci) jako oddzielny wpis dla bieżącej sesji. Możesz łatwo przełączać się między nagraniami w celu porównywania danych.

    Śledzenie systemu

    W sekcji CPU Profiler (Program profilujący procesora) wybierz nową konfigurację Systemu Trace, aby sprawdzić aktywność procesora systemowego urządzenia i aktywność wątków. Ta konfiguracja śledzenia jest oparta na systrace i przydaje się przy badaniu problemów na poziomie systemu, takich jak zacinanie się interfejsu.

    Podczas korzystania z tej konfiguracji śledzenia możesz wizualnie oznaczyć ważne procedury kodu na osi czasu programu profilującego, instrumentując kod C/C++ za pomocą natywnego interfejsu API śledzenia lub kodu Java za pomocą klasy Trace.

    Sprawdzanie odwołań 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ł pamięci dla kodu JNI aplikacji za pomocą programu profilującego pamięci.

    Gdy aplikacja jest uruchomiona, wybierz fragment osi czasu, który chcesz sprawdzić, i wybierz stertę JNI z menu nad listą klas, jak pokazano poniżej. Możesz teraz w normalny sposób badać obiekty na stercie i kliknąć dwukrotnie obiekty na karcie Stos wywołań alokacji, aby zobaczyć, gdzie w kodzie są przydzielane i zwalniane odwołania do JNI.

    Importowanie, eksportowanie i sprawdzanie plików zrzutu pamięci

    Teraz możesz importować, eksportować i sprawdzać pliki zrzutu stosu pamięci .hprof utworzone przy użyciu programu do profilowania pamięci.

    Zaimportuj plik .hprof, klikając Rozpocznij nową sesję programu profilującego w panelu Sesje programu profilującego, a następnie wybierz Wczytaj z pliku. Możesz potem sprawdzić jego dane w narzędziu Memory Profiler tak samo jak w przypadku każdego innego zrzutu stosu.

    Aby zapisać dane zrzutu stosu do późniejszego sprawdzenia, użyj przycisku Eksportuj zrzut sterty po prawej stronie wpisu Heap Dump 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 Profiling wybranej konfiguracji uruchomienia zaznacz pole wyboru Rozpocznij rejestrowanie śledzenia metody podczas uruchamiania.
    3. Wybierz z menu konfigurację rejestrowania procesora, której chcesz używać.
    4. 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 jako plik .trace, aby udostępnić je innym lub sprawdzić później.

    Aby wyeksportować log czasu po zarejestrowaniu aktywności procesora:

    1. Kliknij prawym przyciskiem myszy nagranie, które chcesz wyeksportować z osi czasu procesora.
    2. W menu wybierz Eksportuj log czasu.
    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 sprawdzać pliki .trace utworzone za pomocą Debug API lub programu profilującego procesora. (Obecnie nie możesz importować nagrań systemu Trace).

    Zaimportuj plik śledzenia, klikając Rozpocznij nową sesję programu profilującego w panelu Sesje programu profilującego, a następnie wybierz Wczytaj z pliku. Możesz potem sprawdzić jego dane w narzędziu do profilowania procesora w podobny sposób jak zwykle, z tymi wyjątkami:

    • Aktywność procesora nie jest reprezentowana na osi czasu.
    • Oś czasu aktywności wątku wskazuje tylko miejsca, w których są dostępne dane śledzenia dla każdego wątku, a nie rzeczywiste stany wątków (np. działanie, oczekiwanie lub uśpienie).
    Rejestrowanie aktywności procesora przy użyciu interfejsu Debug API

    Możesz teraz uruchamiać i zatrzymywać rejestrowanie aktywności procesora w narzędziu do profilowania procesora, instrumentując aplikację za pomocą interfejsu Debug API. Po wdrożeniu aplikacji na urządzeniu program profilujący automatycznie zaczyna rejestrować aktywność CPU, gdy aplikacja wywołuje metodę startMethodTracing(String tracePath), a program profilujący przestaje rejestrować, gdy aplikacja wywołuje metodę stopMethodTracing(). Podczas rejestrowania aktywności procesora aktywowanej za pomocą tego interfejsu API program profilujący CPU wyświetla jako wybraną konfigurację rejestrowania procesora pole Debug API.

    Program profilujący energię

    Program profilujący energię wyświetla wizualizację szacowanego zużycia energii przez aplikację, a także zdarzeń systemowych wpływających na zużycie energii, np. blokad wybudzenia, alarmów i zadań.

    Narzędzie do profilu energetycznego wyświetla się jako nowy wiersz u dołu okna Profiler, gdy uruchamiasz aplikację na połączonym urządzeniu lub w emulatorze Androida z Androidem 8.0 (API 26) lub nowszym.

    Kliknij wiersz Energia, aby zmaksymalizować widok narzędzia Energy Profiler. Najedź kursorem na słupek na osi czasu, aby wyświetlić zestawienie zużycia energii według procesora, sieci i lokalizacji (GPS), a także odpowiednich zdarzeń systemowych.

    Zdarzenia systemowe, które wpływają na zużycie energii, są wymienione na osi czasu System pod osią czasu Energia. Szczegóły zdarzeń systemowych z określonego zakresu czasowego 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 wybudzenia, wybierz je w panelu zdarzeń. Aby przejść do kodu odpowiedzialnego za zdarzenie systemowe, kliknij dwukrotnie wpis w stosie wywołań.

    Likwidacja litrów

    Android Studio 3.2 zawiera wiele nowych i ulepszonych funkcji sprawdzania linsk.

    Nowe testy lintacyjne pomagają znaleźć i zidentyfikować typowe problemy z kodem, od ostrzeżeń o potencjalnych problemach z obsługą po błędy o wysokim priorytecie dotyczące potencjalnych luk w zabezpieczeniach.

    Testy Lint pod kątem interoperacyjności Javy z Kotlin

    Aby mieć pewność, że Twój kod w Javie będzie dobrze współdziałał z kodem Kotlin, nowe testy lintowania egzekwują sprawdzone metody opisane w przewodniku Kotlin Interop. Przykłady takich testów obejmują sprawdzenie, czy występują adnotacje nullability, użycie twardych słów kluczowych Kotlin czy umieszczenie parametrów lambda na końcu.

    Aby włączyć te testy, kliknij Plik > Ustawienia (Android Studio > Ustawienia na Macu) i otwórz okno Ustawienia, przejdź do sekcji Edytor > Inspekcje > Android > Lint > Współdziałanie > Współdziałanie Kotlin i wybierz reguły, które chcesz włączyć.

    Aby włączyć te sprawdzanie kompilacji wiersza poleceń, dodaj ten kod do pliku build.gradle:

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Sprawdzanie liści na wycinkach

    Nowe testy lintowania wycinków pomagają zapewnić prawidłowe tworzenie wycinków. Na przykład testy lintowania ostrzegają, jeśli do wycinka nie zostało przypisane działanie główne.

    Nowa wartość docelowa Gradle

    Użyj nowego zadania Gradle lintFix, aby zastosować wszystkie bezpieczne poprawki sugerowane przez testy lintowania bezpośrednio do kodu źródłowego. Przykład sprawdzenia lintera sugerującego bezpieczną poprawkę, którą można zastosować, to SyntheticAccessor.

    Aktualizacje metadanych

    Różne metadane, takie jak sprawdzanie przesyłania danych usługi, zostały zaktualizowane pod kątem zgodności z testami lintowymi, aby działały z Androidem 9 (poziom interfejsu API 28).

    Ostrzeżenie w przypadku korzystania z lintowania na nowym wariancie

    Lint rejestruje teraz, z którym wariantem i wersją jest rejestrowany punkt odniesienia, a lint ostrzega, jeśli zastosujesz go na innym wariancie niż ten, za pomocą którego utworzono punkt odniesienia.

    Ulepszenia istniejących kontroli lintowania

    Android Studio 3.2 zawiera wiele ulepszeń istniejących mechanizmów sprawdzania lintek. Na przykład sprawdzanie cyklu zasobów ma teraz zastosowanie do dodatkowych typów zasobów, a wzorzec do wykrywania translacji może na bieżąco znajdować w edytorze brakujące tłumaczenia.

    Łatwiejsze do znalezienia identyfikatory problemów

    Identyfikatory problemów są teraz wyświetlane w większej liczbie miejsc, w tym w oknie Wyniki inspekcji. Ułatwia to znajdowanie informacji potrzebnych do włączenia lub wyłączenia określonych testów w usłudze lintOptions w build.gradle.

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

    Wiązanie danych (wersja 2)

    Powią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 bibliotek skompilowane z wersją 1, możesz ich używać w projektach korzystających z usługi Data Binding V2. Pamiętaj jednak, że projekty korzystające z wersji 1 nie mogą wykorzystywać zależności skompilowanych do wersji 2.

    Odurzenie D8

    W Android Studio 3.1 zintegrowaliśmy proces usuwania w narzędziu D8 funkcji eksperymentalnej, co zmniejszyło ogólny czas kompilacji. W Androidzie Studio 3.2 odinstalowanie w wersji D8 jest domyślnie włączone.

    Nowy reduktor kodu

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

          android.enableR8 = true
        

    Zmieniono domyślne interfejsy ABI dla wielu plików APK.

    Gdy kompilujesz wiele plików APK, z których każdy jest kierowany na inny interfejs ABI, wtyczka nie generuje już domyślnie plików APK dla tych interfejsów ABI: mips, mips64 i armeabi.

    Jeśli chcesz tworzyć pliki APK kierowane na te interfejsy ABI, musisz użyć NDK r16b lub starszego i określić interfejsy ABI w pliku build.gradle w ten sposób:

        splits {
            abi {
                include 'armeabi', 'mips', 'mips64'
                ...
            }
        }
        
        splits {
            abi {
                include("armeabi", "mips", "mips64")
                ...
            }
        }
        

    Uwaga: ta zmiana działania jest też dostępna w Android Studio 3.1 w wersji RC1 i nowszych.

    Ulepszone funkcje edytora plików kompilacji CMake

    Jeśli używasz narzędzia CMake, aby dodać do projektu kod w językach C lub C++, Android Studio zawiera teraz ulepszone funkcje edytora ułatwiające edytowanie skryptów kompilacji CMake, takie jak:

    • Wyróżnianie składni i uzupełnianie kodu: IDE wyróżnia i sugeruje uzupełnienie kodu w przypadku popularnych poleceń CMake. Możesz także przejść do pliku, klikając go podczas naciśnięcia klawisza Ctrl (Command na Macu).
    • Ponowne formatowanie kodu: możesz teraz korzystać z opcji zmiany formatu kodu IntelliJ, aby stosować style kodu do skryptów kompilacji CMake.
    • Bezpieczne refaktoryzowanie: wbudowane narzędzia refaktoryzacyjne IDE sprawdzają teraz również, czy zmieniasz nazwy i usuwasz pliki, do których odwołujesz się w skryptach kompilacji CMake.

    Podczas korzystania z okna Projekt w poprzednich wersjach Android Studio można było przechodzić i sprawdzać tylko pliki nagłówka należące do bibliotek utworzonych przez Ciebie z projektu lokalnego. W tej wersji możesz też wyświetlać i sprawdzać pliki nagłówka uwzględnione w zewnętrznych zależnościach bibliotek C/C++, które importujesz do projektu aplikacji.

    Jeśli dołączasz do projektu kod i biblioteki C/C++, otwórz okno Projekt po lewej stronie IDE, wybierając z głównego menu Widok > Okna narzędziowe > Projekt, a następnie 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żdego lokalnego zależności biblioteki C/C++, jak pokazano poniżej.

    Natywny multidex jest domyślnie włączony

    Poprzednie wersje Android Studio korzystały z natywnej funkcji multidex podczas wdrażania aplikacji do debugowania na urządzeniu z interfejsem Android API na poziomie 21 lub wyższym. Teraz, niezależnie od tego, czy wdrażasz to urządzenie na urządzeniu, czy tworzysz pakiet APK do publikacji, wtyczka na Androida do obsługi Gradle umożliwia obsługę natywnego multidex we wszystkich modułach, które mają ustawiony pakiet minSdkVersion=21 lub wyższy.

    AAPT2 zostało przeniesione do repozytorium Google Maven

    Począwszy od Androida Studio 3.2 źródłem AAPT2 (Android Asset Packaging Tool 2) jest repozytorium Google Maven.

    Aby użyć AAPT2, sprawdź, czy w pliku build.gradle znajduje się 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 poprawioną obsługę znaków spoza ASCII w systemie Windows.

    Usuwanie konfiguracji na żądanie

    Ustawienie Skonfiguruj na żądanie zostało usunięte z Android Studio.

    Android Studio nie przekazuje już argumentu --configure-on-demand do Gradle.

    Asystent połączeń ADB

    Nowy asystent połączenia ADB zawiera szczegółowe instrukcje konfigurowania urządzenia i korzystania z niego przez połączenie Android Debug Bridge (ADB).

    Aby uruchomić Asystenta, wybierz Narzędzia > Asystent połączeń.

    Asystent połączeń ADB podaje instrukcje, dostępne w kontekście elementy sterujące i listę połączonych urządzeń na serii stron w panelu Asystenta.

    Ulepszenia emulatora

    Teraz w dowolnym momencie możesz zapisywać i wczytywać zrzuty AVD (wirtualnego urządzenia z Androidem) w emulatorze Androida. Dzięki temu możesz szybko i łatwo przywrócić emulowane urządzenie do znanego stanu do przetestowania. Gdy edytujesz plik AVD za pomocą Menedżera AVD, możesz określić, który zrzut AVD ma być ładowany po uruchomieniu AVD.

    Elementy sterujące zapisywaniem i wczytywaniem zrzutów AVD oraz zarządzanie nimi znajdują się teraz na karcie Zrzuty dysku w oknie Rozszerzone elementy sterujące emulatora.

    Szczegółowe informacje znajdziesz w sekcji Zrzuty dysku.

    Więcej informacji o nowościach i zmianach w emulatorze znajdziesz w artykule Informacje o wersji emulatora.

    3.1 (marzec 2018 r.)

    Android Studio 3.1.0 to duża wersja z wieloma nowymi funkcjami i ulepszeniami.

    3.1.4 (sierpień 2018 r.)

    Ta aktualizacja Androida Studio 3.1 zawiera te zmiany i poprawki:

    • W pakiecie Kotlin dostępna jest teraz wersja 1.2.50.
    • Nowe projekty są tworzone przy użyciu kotlin-stdlib-jdk* artifacts, a nie za pomocą wycofanych artefaktów kotlin-stdlib-jre*.
    • Ulepszono analizę R8 reguł ProGuard.
    • Naprawiliśmy następujące błędy:
      • Próba uruchomienia klasy Kotlin Main nie powiodła się z powodu błędu: "Error: Could not find or load main class..."
      • Podczas przeprowadzania pewnych optymalizacji model R8 wszedł w nieskończoną pętlę.
      • Użycie polecenia Ponownie uruchom testy zakończone niepowodzeniem w oknie Uruchom czasami powodowało nieprawidłowe wyświetlanie komunikatu „Nie znaleziono testów”.
      • D8 nie obsługiwał poprawnie instancji invoke-virtual, powodując awarię z VerifyError: invoke-super/virtual can't be used on private method
      • Kompilator wiązań danych korzystał ze starej wersji com.android.tools:annotations. Kompilator używa teraz adnotacji narzędzi z projektu podstawowego, gdy są dostępne.
      • Android Studio uległ awarii podczas przenoszenia fragmentów podczas korzystania z programów profilujących.
      • Debuger uległ awarii podczas debugowania układu z polem tekstowym.
      • D8 nie odczytał niektórych plików ZIP ze znakami specjalnymi.

    3.1.3 (czerwiec 2018 r.)

    Aktualizacja Androida Studio do wersji 3.1 zawiera poprawki tych błędów:

    • Wycieki pamięci spowodowały powolne działanie Android Studio i brak reakcji w przypadku korzystania z edytora układów. Ta aktualizacja zawiera poprawki większości tych problemów. Wkrótce zamierzamy opublikować kolejną aktualizację, która pozwoli rozwiązać dodatkowe wycieki pamięci.
    • Niektóre aplikacje oparte na D8 uległy awarii na niektórych tabletach Verizon Ellipsis.
    • Instalacja aplikacji utworzonych na bazie D8 nie powiodła się z powodu błędu INSTALL_FAILED_DEXOPT na urządzeniach z Androidem 5.0 lub 5.1 (poziom interfejsu API 21 lub 22).
    • Niektóre aplikacje, które korzystały z biblioteki OkHttp i zostały utworzone w wersji D8, uległy awarii na urządzeniach z Androidem 4.4 (poziom interfejsu API 19).
    • Czasami nie udało się uruchomić Android Studio z ProcessCanceledException podczas inicjowania klasy dla projektu com.intellij.psi.jsp.JspElementType.

    3.1.2 (kwiecień 2018 r.)

    Aktualizacja Androida Studio do wersji 3.1 zawiera poprawki tych błędów:

    • W niektórych przypadkach aplikacja Android Studio była zawieszona bezterminowo podczas zamykania aplikacji.
    • Kompilacje skonfigurowane za pomocą zbiorów źródłowych zakończyły się wyświetleniem tego komunikatu, gdy włączone było szybkie uruchamianie:

      "The SourceSet name is not recognized by the Android Gradle Plugin."

    • Gdy szybkie uruchamianie było włączone, kompilacje nowych projektów Kotlin kończyły się niepowodzeniem po aktywowaniu przez polecenie Uruchom.
    • Podczas edytowania pliku build.gradle występowało czasem zauważalne opóźnienie między wpisaniem znaku a pojawieniem się znaku na ekranie.
    • W niektórych projektach o dużej liczbie modułów lub zależności zewnętrznych wystąpiły błędy kompilacji. Pojawił się ten komunikat o błędzie:

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • Podczas obliczania głównej listy DEX D8 nie brano pod uwagę niektórych wywołań refleksyjnych.

    Ta aktualizacja obejmuje też zmiany, które w niektórych scenariuszach znacznie przyspieszają sprawdzanie lint w Gradle.

    3.1.1 (kwiecień 2018 r.)

    Aktualizacja Androida Studio do wersji 3.1 zawiera poprawki tych błędów:

    • W niektórych przypadkach, gdy projekt utworzony w Android Studio 3.0 został po raz pierwszy otwarty w Androidzie Studio 3.1, zadanie tworzenia Gradle-Aware zostało usunięte z obszaru Przed uruchomieniem w sekcji Konfiguracje uruchamiania/debugowania. W efekcie projekty nie zostały skompilowane po kliknięciu przycisku Uruchom lub Debuguj, co z kolei powodowało błędy, takie jak wdrażanie nieprawidłowych plików APK i awarie podczas korzystania z błyskawicznego uruchomienia.

      Aby rozwiązać ten problem, Android Studio 3.1.1 dodaje zadanie tworzenia Gradle-aware do konfiguracji uruchamiania w przypadku projektów, w których brakuje tego wpisu. Ta modyfikacja zachodzi po pierwszej synchronizacji Gradle podczas wczytywania projektu.

    • Debuger uległ awarii podczas debugowania układu za pomocą pola tekstowego, jeśli włączone było profilowanie zaawansowane.
    • Android Studio zawiesił się po kliknięciu Warianty kompilacji.
    • Pliki AAR (archiwum Androida) zostały wyodrębnione dwukrotnie: raz podczas procesu synchronizacji Gradle i raz w trakcie procesu kompilacji Gradle.
    • W niektórych obiektach rysowalnych w formacie wektorowym zaimportowanych z plików SVG brakuje elementów.
    • Ostrzeżenie dotyczące wycofania konfiguracji zależności compile zostało zaktualizowane o dokładniejsze wskazówki dotyczące konfiguracji implementation i api. Szczegóły migracji z konfiguracji compile znajdziesz w dokumentacji nowych konfiguracji zależności.

    Kodowanie/IDE

    IntelliJ 2017.3.3

    Podstawowe środowisko IDE Android Studio zostało zaktualizowane o ulepszenia wprowadzone w wersji IntelliJ IDEA do wersji 2017.3.3. Ulepszenia obejmują lepszą analizę przepływu kontroli w zbiorach i ciągach tekstowych, ulepszone wnioskowanie o wartości null, nowe szybkie poprawki i wiele innych.

    Szczegółowe informacje znajdziesz w informacjach o wersji JetBrains dla IntelliJ IDEA w wersjach 2017.2 i 2017.3, a także informacje o wersji JetBrains zawierające aktualizacje poprawek błędów.

    Ulepszenia edycji SQL w funkcji Pokoje

    Korzystając z biblioteki bazy danych sal, możesz korzystać z kilku ulepszeń edycji SQL:

    • Uzupełnianie kodu w obrębie obiektu Query rozumie tabele (elementy), kolumny, parametry zapytania, aliasy, złączenia, podzapytania i klauzule WITH.
    • Funkcja podświetlania składni SQL już działa.
    • Możesz kliknąć prawym przyciskiem myszy nazwę tabeli w SQL i zmienić jej nazwę. Spowoduje to również przepisanie odpowiedniego kodu Java lub Kotlin (w tym na przykład typu zwracanego zapytania). Zmiana nazwy działa też w odwrotnym kierunku, dlatego zmiana nazwy klasy lub pola w Javie przepisuje odpowiedni kod SQL.
    • Przypadki użycia SQL są widoczne, gdy używasz opcji Znajdź przypadki użycia (kliknij prawym przyciskiem myszy i wybierz Znajdź przypadki użycia z menu kontekstowego).
    • Aby przejść do deklaracji encji SQL w kodzie Java lub Kotlin, możesz przytrzymać naciśnięty klawisz Control (Command na Macu) i kliknąć element.

    Informacje o korzystaniu z SQL z użyciem pokoju znajdziesz w artykule o zapisywaniu danych w lokalnej bazie danych za pomocą funkcji Room.

    Aktualizacje wiązania danych

    Ta aktualizacja wprowadza kilka ulepszeń w zakresie wiązania danych:

    • Możesz teraz używać obiektu LiveData jako obserwowalnego pola w wyrażeniach wiązań danych. Klasa ViewDataBinding zawiera teraz nową metodę setLifecycle(), której używasz do obserwowania obiektów LiveData.

    • Klasa ObservableField może teraz akceptować inne obiekty Observable w swoim konstruktorze.

    • Możesz wyświetlić podgląd nowego kompilatora przyrostowego dla klas wiązań danych. Szczegółowe informacje na temat tego nowego kompilatora i instrukcje jego włączania znajdziesz w artykule Kompilator powiązań danych w wersji 2.

      Zalety nowego kompilatora:

      • Klasy ViewBinding są generowane przez wtyczkę Androida do Gradle przed kompilatorem Java.
      • Biblioteki zachowują wygenerowane klasy powiązania podczas kompilowania aplikacji, aby nie były za każdym razem ponownie generowane. Może to znacznie zwiększyć wydajność w przypadku projektów składających się z wielu modułów.

    Kompilator i Gradle

    D8 to domyślny kompilator DEX

    Kompilator D8 jest teraz domyślnie używany do generowania kodu bajtowego DEX.

    Ten nowy kompilator DEX zapewnia kilka korzyści, w tym:

    • Szybsze usuwanie
    • Mniejsze wykorzystanie pamięci
    • Ulepszone generowanie kodu (lepszy przydział rejestrów, inteligentniejsze tabele z ciągami znaków)
    • Lepsze debugowanie podczas analizowania kodu

    Aby korzystać z tych korzyści, nie musisz wprowadzać żadnych zmian w kodzie ani w przepływie pracy programistycznym, chyba że wyłączono wcześniej ręcznie kompilator D8.

    Jeśli ustawisz android.enableD8 na false w gradle.properties, usuń tę flagę lub ustaw ją na true:

            android.enableD8=true
          

    Więcej informacji znajdziesz w artykule Nowy kompilator DEX.

    Przyrostowe odurzenie

    W projektach, w których używane są funkcje językowe Java 8, domyślnie włączone jest stopniowe odpalanie, co może skrócić czas kompilacji.

    Usuwanie cukru konwertuje cukier składniowy do postaci, którą kompilator może przetworzyć wydajniej.

    Możesz wyłączyć odładowanie przyrostowe, określając te elementy w pliku gradle.properties projektu:

            android.enableIncrementalDesugaring=false
          
    Uproszczone okno danych wyjściowych

    Konsola Gradle została zastąpiona oknem kompilacji z kartami Synchronizacja i Kompilacja.

    Szczegółowe informacje o tym, jak korzystać z nowego, uproszczonego okna kompilacji, znajdziesz w artykuleMonitorowanie procesu kompilacji.

    Aktualizacje zbiorcze i równoczesność indeksowania

    Procesy synchronizacji i indeksowania IDE są teraz znacznie wydajniejsze, co skraca czas poświęcany na wiele nadmiarowych operacji indeksowania.

    C++ i LLDB

    Wprowadziliśmy wiele ulepszeń w zakresie jakości i wydajności na etapach kodowania, synchronizacji, tworzenia i debugowania w C++. Są to między innymi:

    • Jeśli pracujesz z dużymi projektami C++, możesz zauważyć znaczną skrócenie czasu poświęcanego na tworzenie symboli. W przypadku dużych projektów czas synchronizacji jest też znacznie skrócony.

    • Wydajność tworzenia i synchronizacji z CMake została ulepszona przez agresywne wykorzystywanie wyników z pamięci podręcznej.

    • Dodanie formaterów („ładnych drukarek”) do tworzenia większej liczby struktur danych w C++ ułatwia odczytanie danych wyjściowych LLDB.

    • LLDB działa teraz tylko z Androidem 4.1 (poziom interfejsu API 16) i nowszym.

    Uwaga: debugowanie natywne w Androidzie Studio w wersji 3.0 lub nowszej nie działa w 32-bitowym systemie Windows. Jeśli używasz 32-bitowego systemu Windows i chcesz debugować kod natywny, użyj Androida Studio 2.3.

    Kotlin

    Kotlin uaktualniony do wersji 1.2.30

    Android Studio 3.1 zawiera Kotlin w wersji 1.2.30.

    Kod Kotlin został teraz przeanalizowany za pomocą kontroli lintowania wiersza poleceń

    Uruchomienie narzędzia lint z poziomu wiersza poleceń analizuje teraz klasy Kotlin.

    W każdym projekcie, w którym chcesz uruchomić linter, do pliku build.gradle najwyższego poziomu musisz dodać repozytorium Google Maven. Repozytorium Maven jest już dostępne w projektach tworzonych w Androidzie Studio w wersji 3.0 lub nowszej.

    Narzędzia do mierzenia wydajności

    Przykładowe natywne procesy C++ z funkcją profilu procesora

    Program profilujący procesora zawiera teraz domyślną konfigurację do rejestrowania próbkowanych logów czasu wątków natywnych aplikacji. Aby użyć tej konfiguracji, możesz wdrożyć aplikację na urządzeniu z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, a następnie wybrać Próbkowane (Natywna) w menu konfiguracji nagrywania w programie profilującym CPU. Następnie zarejestruj i zbadaj log czasu w zwykły sposób.

    Możesz zmienić ustawienia domyślne, takie jak interwał próbkowania, tworząc konfigurację nagrywania.

    Aby wrócić do śledzenia wątków Javy, wybierz konfigurację Sampled (Java) lub Instrumented (Java).

    Filtruj ślady procesora, wyniki alokacji pamięci i zrzuty sterty

    Program do profilowania procesora i narzędzie do profilowania pamięci zawierają funkcję wyszukiwania, która umożliwia filtrowanie wyników dotyczących rejestrowania śladu metody, alokacji pamięci lub zrzutu stosu.

    Aby wyszukać, kliknij Filtr w prawym górnym rogu panelu, wpisz zapytanie i naciśnij Enter.

    Wskazówka: pole wyszukiwania możesz też otworzyć, naciskając Control + F (Command + F na Macu).

    Na karcie Wykres flame w programie profilowym CPU stosy wywołań zawierające metody powiązane z wyszukiwanym hasłem są wyróżnione i przenoszone na lewą stronę wykresu.

    Więcej informacji o filtrowaniu według metody, klasy lub nazwy pakietu znajdziesz w artykule Rejestrowanie i sprawdzanie logów czasu metod.

    Karta Żądanie w programie profilującym sieci

    Program profilujący sieci zawiera teraz kartę Żądanie, która zawiera szczegółowe informacje o żądaniach sieciowych w wybranym okresie. W poprzednich wersjach program profilujący sieci udostępniał tylko informacje o odpowiedziach sieci.

    Widok wątku w narzędziu do profilowania sieci

    Po wybraniu fragmentu osi czasu w programie profilującym sieci możesz wybrać jedną z tych kart, aby wyświetlić więcej informacji o aktywności sieci w tym okresie:

    • Widok połączenia: zawiera te same informacje co poprzednie wersje Androida Studio – zawiera listę plików wysłanych lub odebranych w wybranym fragmencie osi czasu we wszystkich wątkach procesora aplikacji. W przypadku każdego żądania możesz sprawdzić rozmiar, typ, stan i czas trwania transmisji.
    • Widok wątku: wyświetla aktywność sieciową każdego wątku procesora aplikacji. Ten widok pozwala sprawdzić, które wątki aplikacji są odpowiedzialne za każde żądanie sieciowe.

    Inspektor układu

    Inspektor układu otrzymał nowe funkcje, w tym te udostępniane wcześniej przez wycofane narzędzia Hierarchy Viewer i Pixel Perfect:

    • Przyciski powiększenia i skróty klawiszowe do poruszania się i sprawdzania układów
    • Nakładka siatki referencyjnej
    • Możliwość wczytania obrazu referencyjnego i użycia go jako nakładki (przydatna podczas porównywania układu z podglądem interfejsu)
    • podgląd drzewa podrzędnego renderowania w celu wyodrębnienia widoku w złożonym układzie,

    Edytor układu

    Paleta w edytorze układu ma wiele ulepszeń:

    Aby przekonwertować widok lub układ na inny typ widoku lub układu, możesz użyć nowego polecenia Przekonwertuj widok w drzewie komponentów lub w edytorze projektu.

    Możesz teraz łatwo tworzyć ograniczenia do elementów w pobliżu wybranego widoku za pomocą nowych przycisków Utwórz połączenie w inspektorze widoku u góry okna Atrybuty.

    Uruchom i błyskawicznie

    Działanie opcji Użyj tego samego wyboru przy kolejnych uruchomieniach w oknie Wybierz cel wdrożenia jest bardziej spójne. Jeśli opcja Użyj tego samego wyboru jest włączona, okno Wybierz miejsce docelowe wdrożenia pojawi się tylko przy pierwszym użyciu polecenia Uruchom, dopóki wybrane urządzenie nie będzie połączone.

    Jeśli kierujesz aplikację na urządzenie z Androidem 8.0 (poziom interfejsu API 26) lub nowszym, błyskawiczne uruchomienie może wdrażać zmiany w zasobach bez konieczności ponownego uruchamiania aplikacji. Jest to możliwe, ponieważ zasoby są zawarte w podzielonym pakiecie APK.

    Emulator

    Szczegółowe informacje o zmianach i zmianach w emulatorze od czasu wprowadzenia Androida Studio 3.0 znajdziesz w informacjach o wersji emulatora Androida od 27.0.2 do wersji 27.1.12.

    Najważniejsze ulepszenia to między innymi:

    • Szybkie uruchamianie zrzutów służących do zapisywania stanu emulatora i szybszego uruchamiania oraz z możliwością zapisania niestandardowego stanu uruchomienia za pomocą polecenia Save now (Zapisz teraz).
    • Ekran emulatora bez okien.
    • Obrazy systemowe dla Androida 8.0 (poziom interfejsu API 26), Androida 8.1 (poziom interfejsu API 27) i Androida P Developer Preview.

    Ulepszenia interfejsu i wygody użytkowania

    Więcej etykiet, skrótów klawiszowych i przydatnych komunikatów

    W wielu miejscach w Android Studio dodaliśmy etykietki i pomocne nakładki na wiadomości.

    Aby wyświetlić skróty klawiszowe dla wielu poleceń, najedź kursorem myszy na przycisk, aż pojawi się etykietka.

    Usunięto menu Narzędzia > Android

    Usunęliśmy menu Narzędzia > Android. Polecenia, które były wcześniej w tym menu, zostały przeniesione.

    • Wiele poleceń zostało przeniesionych bezpośrednio do menu Narzędzia.
    • Polecenie Zsynchronizuj projekt z plikami Gradle zostało przeniesione do menu Plik.
    • Polecenie Monitorowanie urządzeń zostało usunięte zgodnie z opisem poniżej.

    Monitor urządzeń dostępny z poziomu wiersza poleceń

    W Android Studio 3.1 Monitor urządzenia pełni w mniejszym stopniu funkcję. W wielu przypadkach funkcje dostępne w Monitorze urządzenia są teraz dostarczane przez nowe, ulepszone narzędzia.

    Instrukcje wywoływania Monitora urządzeń z poziomu wiersza poleceń znajdziesz w dokumentacji Monitora urządzeń. Znajdziesz tam też szczegółowe informacje o narzędziach dostępnych w Monitorze urządzeń.

    3.0 (październik 2017 r.)

    Android Studio 3.0.0 to duża wersja z wieloma nowymi funkcjami i ulepszeniami.

    Użytkownicy macOS: jeśli aktualizujesz starszą wersję Android Studio, możesz zobaczyć okno błędu aktualizacji z komunikatem „W obszarze instalacji znaleziono konflikty”. Zignoruj ten błąd i kliknij Anuluj, aby wznowić instalację.

    3.0.1 (listopad 2017 r.)

    To drobna aktualizacja Androida Studio 3.0, która zawiera ogólne poprawki błędów i ulepszenia działania aplikacji.

    Wtyczka Androida dla Gradle 3.0.0

    Nowa wtyczka do Androida dla Gradle zawiera różne ulepszenia i nowe funkcje, ale przede wszystkim zwiększa wydajność w przypadku projektów z dużą liczbą modułów. Podczas używania nowej wtyczki z tymi dużymi projektami będziesz mieć następujące skutki:

    • Krótszy czas konfiguracji kompilacji ze względu na nowe opóźnienie w rozwiązywaniu zależności.
    • Rozwiązywanie zależności z uwzględnieniem wariantów tylko w przypadku tworzonych projektów i wariantów.
    • Krótszy czas kompilacji przyrostowej przy stosowaniu prostych zmian w kodzie lub zasobach.

    Uwaga: te ulepszenia wymagały wprowadzenia istotnych zmian, które zakłóciły działanie niektórych działań wtyczki, DSL i interfejsy API. Przejście na wersję 3.0.0 może wymagać wprowadzenia zmian w plikach kompilacji i wtyczkach Gradle.

    W tej wersji:

    • Obsługa Androida 8.0.
    • Możliwość tworzenia oddzielnych plików APK na podstawie zasobów językowych.
    • Obsługa bibliotek Java 8 i funkcji językowych Java 8 (bez kompilatora Jacka).
    • Obsługa biblioteki Android Test Support Library 1.0 (Android Test Utility i narzędzie Android Test Orchestrator).
    • Zwiększona szybkość kompilacji i kompilacji ndk.
    • Zwiększono szybkość synchronizacji Gradle.
    • AAPT2 jest teraz domyślnie włączone.
    • Korzystanie z usługi ndkCompile jest teraz bardziej ograniczone. Zamiast tego użyj CMake lub ndk-build, aby skompilować kod natywny, który chcesz spakować do pliku APK. Więcej informacji znajdziesz w artykule o migracji z ndkbuild (w języku angielskim).

    Więcej informacji o zmianach znajdziesz w informacjach o wersji wtyczki Androida do obsługi Gradle.

    Jeśli chcesz zaktualizować wtyczkę do nowej wersji, przeczytaj artykuł o wtyczce do migracji do Androida dla Gradle 3.0.0.

    Zespół pomocy Kotlin

    Zgodnie z zapowiedzią na konferencji Google I/O 2017 język programowania Kotlin jest już oficjalnie obsługiwany na urządzeniach z Androidem. Dlatego w tej wersji Android Studio dodaliśmy obsługę języka Kotlin na potrzeby programowania aplikacji na Androida.

    Możesz włączyć Kotlin w swoim projekcie, konwertując plik w Javie na Kotlin (kliknij Kod > Konwertuj plik Java na plik Kotlin) lub utwórz nowy projekt obsługujący Kotlin za pomocą kreatora nowego projektu.

    Na początek przeczytaj, jak dodać Kotlin do projektu.

    Obsługa funkcji języka Java 8

    Możesz teraz używać określonych funkcji języka Java 8 i korzystać z bibliotek utworzonych w Javie 8. Jack nie jest już wymagany. Aby korzystać z ulepszonej obsługi języka Java 8 wbudowanej w domyślny łańcuch narzędzi, wyłącz Jack.

    Aby zaktualizować projekt tak, by obsługiwał nowy łańcuch narzędzi języka Java 8, w oknie Struktura projektu zmień wartości Source Compatibility (Zgodność źródła) i Target Compatibility (Zgodność docelowa) na 1.8 w oknie Project Structured (Plik > Struktura projektu). Aby dowiedzieć się więcej, przeczytaj, jak korzystać z funkcji językowych w języku Java 8.

    Program profilujący Androida

    Nowy program profilujący Androida zastępuje narzędzie Android Monitor i udostępnia nowy zestaw narzędzi do pomiaru wykorzystania procesora, pamięci i wykorzystania sieci przez aplikację w czasie rzeczywistym. Możesz przeprowadzać śledzenie metod na podstawie próbek w czasie wykonywania kodu, rejestrować zrzuty sterty, wyświetlać przydziały pamięci i sprawdzać szczegóły plików przesyłanych przez sieć.

    Aby go otworzyć, kliknij Widok > Narzędzia Okna > Profil profilu Androida (lub Android Profiler na pasku narzędzi).

    Oś czasu zdarzenia u góry okna pokazuje zdarzenia dotknięcia, naciśnięcia klawiszy i zmiany aktywności, dzięki czemu masz szerszy kontekst, aby zrozumieć inne zdarzenia związane ze skutecznością na osi czasu.

    Uwaga: widok Logcat również został przeniesiony do osobnego okna (wcześniej był to Android Monitor, który został usunięty).

    Na osi czasu programu profilującego Androida kliknij oś czasu Procesor, PAMIĘĆ lub SIEĆ, aby uzyskać dostęp do odpowiednich narzędzi do profilowania.

    Program profilujący procesora

    Program profilujący procesora pomaga analizować wykorzystanie wątków procesora w aplikacji przez aktywowanie przykładowego lub instrumentowanego śledzenia procesora. Następnie możesz rozwiązywać problemy z wydajnością procesora za pomocą różnych widoków danych i filtrów.

    Więcej informacji znajdziesz w przewodniku po narzędziu do profilowania procesorów.

    Program do profilowania pamięci

    Program do profilowania pamięci pomaga wykrywać wycieki pamięci i rezygnacje z niej, które mogą prowadzić do zacinania się, zawieszania się, a nawet awarii aplikacji. Pokazuje wykres w czasie rzeczywistym wykorzystania pamięci przez aplikację, umożliwia przechwytywanie zrzutu stosu, wymuszanie czyszczenia pamięci i śledzenie alokacji pamięci.

    Więcej informacji znajdziesz w przewodniku po narzędziu do profilowania pamięci.

    Program profilujący sieci

    Program profilujący sieci umożliwia monitorowanie aktywności sieciowej aplikacji, sprawdzanie ładunku każdego żądania sieciowego i tworzenie linków do kodu, który wygenerował żądanie sieciowe.

    Więcej informacji znajdziesz w przewodniku po usłudze Profilowanie sieci.

    Profilowanie i debugowanie plików APK

    Android Studio umożliwia teraz profilowanie i debugowanie wszystkich plików APK bez konieczności tworzenia ich z poziomu projektu Android Studio – pod warunkiem, że pakiet ten umożliwia debugowanie i masz dostęp do symboli debugowania oraz plików źródłowych.

    Aby rozpocząć, kliknij Plik APK do profilu lub debugowania na ekranie powitalnym w Android Studio. Jeśli masz już otwarty projekt, na pasku menu kliknij Plik > Profil lub plik APK debugowania. Powoduje to wyświetlenie rozpakowanych plików APK, ale kod nie jest dekompilowany. Aby prawidłowo dodawać punkty przerwania i wyświetlać zrzuty stosu, musisz dołączyć pliki źródłowe Java i symbole debugowania natywne.

    Więcej informacji znajdziesz w artykule o profilach i debugowaniu gotowych plików APK.

    Eksplorator plików na urządzeniu

    Nowy Eksplorator plików urządzenia umożliwia sprawdzenie systemu plików podłączonego urządzenia i przenoszenie plików między urządzeniem a komputerem. Zastępuje narzędzie systemu plików dostępne w DDMS.

    Aby go otworzyć, kliknij Widok > Okna narzędzi > Eksplorator plików urządzenia.

    Więcej informacji znajdziesz w przewodniku po Eksploratorze plików urządzenia.

    Obsługa aplikacji błyskawicznych

    Nowa obsługa aplikacji błyskawicznych na Androida umożliwia tworzenie aplikacji błyskawicznych w projekcie przy użyciu 2 nowych typów modułów: modułów aplikacji błyskawicznych i modułów funkcji (wymagają one zainstalowania pakietu SDK dla programistów aplikacji błyskawicznych).

    Android Studio zawiera też nową funkcję refaktoryzacji modułowej, która ułatwia dodanie obsługi aplikacji błyskawicznych w istniejącym projekcie. Jeśli na przykład chcesz refaktoryzować projekt, aby umieścić niektóre klasy w module funkcji aplikacji błyskawicznej, wybierz je w oknie Projekt i kliknij refaktoryzuj > Modułularyzuj. W wyświetlonym oknie wybierz moduł, do którego mają się znaleźć zajęcia, i kliknij OK.

    Gdy zechcesz przetestować swoją aplikację błyskawiczną, możesz utworzyć i uruchomić moduł aplikacji błyskawicznej na połączonym urządzeniu, podając adres URL aplikacji błyskawicznej w opcjach uruchamiania konfiguracji: kliknij Uruchom > Edytuj konfiguracje, wybierz moduł aplikacji błyskawicznej i ustaw adres URL w sekcji Opcje uruchamiania.

    Więcej informacji znajdziesz w artykule o aplikacjach błyskawicznych na Androida.

    Moduły Android Things

    Nowe szablony Android Things w kreatorach nowego projektu i nowego modułu, które ułatwiają rozpoczęcie tworzenia aplikacji na urządzenia z Androidem z Androidem.

    Więcej informacji znajdziesz w artykule Tworzenie projektu Android Things.

    Kreator ikon adaptacyjnych

    Image Asset Studio obsługuje teraz elementy rysowalne wektorowe i umożliwia tworzenie adaptacyjnych ikon programu uruchamiającego na Androida 8.0, a jednocześnie tworzenie tradycyjnych ikon (ikon „Starsze”) na starszych urządzeniach.

    Aby rozpocząć, kliknij prawym przyciskiem myszy folder res w projekcie, a następnie kliknij Nowy > Zasób obrazu. W oknie Asset Studio jako typ ikony wybierz Ikony uruchamiające (adaptacyjne i starsze).

    Uwaga: aby używać ikon adaptacyjnego programu uruchamiającego, musisz ustawić compileSdkVersion na 26 lub więcej.

    Więcej informacji znajdziesz w artykule o ikonach adaptacyjnych.

    Obsługa zasobów czcionek

    Aby zapewnić obsługę nowych zasobów czcionek w Androidzie 8.0, Android Studio zawiera selektor zasobów czcionek, który ułatwia łączenie czcionek z aplikacją lub konfigurowanie projektu tak, aby pobierały je na urządzenie (jeśli są dostępne). Edytor układu może też wyświetlać podgląd czcionek w układzie.

    Aby wypróbować czcionki do pobrania, upewnij się, że na urządzeniu lub w emulatorze działają Usługi Google Play w wersji 11.2.63 lub nowszej. Więcej informacji znajdziesz w artykule o czcionkach do pobrania.

    Asystent indeksowania aplikacji Firebase

    Do Asystenta Firebase dodaliśmy nowy samouczek pozwalający przetestować Indeksowanie aplikacji. Aby otworzyć Asystenta, wybierz Narzędzia > Firebase. Następnie kliknij Indeksowanie aplikacji > Test indeksowania aplikacji.

    Samouczek zawiera nowe przyciski do testowania indeksowania treści publicznych i osobistych:

    • W kroku 2 kliknij Podgląd wyników wyszukiwania, aby sprawdzić, czy Twoje adresy URL wyświetlają się w wynikach wyszukiwania Google.
    • W kroku 3 kliknij Sprawdź, czy nie ma błędów, aby sprawdzić, czy możliwe do indeksowania obiekty w Twojej aplikacji zostały dodane do indeksu treści osobistych.

    Zaktualizowaliśmy Asystenta linków aplikacji, dodając do niego te nowe funkcje:

    • Dodaj testy adresów URL dla każdego mapowania adresów URL, aby mieć pewność, że filtry intencji obsługują rzeczywiste adresy URL.

      Testy adresów URL możesz też zdefiniować ręcznie za pomocą opisanego poniżej tagu <tools:validation>.

    • Utwórz plik Digital Asset Links z odpowiednim wpisem obiektu na potrzeby obsługi Google Smart Lock i dodaj odpowiedni tag asset_statements <meta-data> do pliku manifestu.

    Walidator intencji/filtrowania adresów URL

    Android Studio obsługuje teraz specjalny tag w pliku manifestu, który umożliwia przetestowanie adresów URL filtrów intencji. To te same tagi, które Asystent linków do aplikacji może utworzyć dla Ciebie.

    Aby zadeklarować testowy adres URL dla filtra intencji, dodaj element <tools:validation> obok odpowiedniego elementu <intent-filter>. Na przykład:

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    Pamiętaj, aby w tagu <manifest> uwzględnić też właściwość xmlns:tools="http://schemas.android.com/tools".

    Jeśli dowolny z testowych adresów URL nie spełnia definicji filtra intencji, pojawi się błąd linta. Taki błąd nadal pozwala tworzyć warianty do debugowania, ale zakłóca kompilacje wersji.

    Edytor układu

    Do edytora układu wprowadziliśmy szereg ulepszeń, takich jak:

    • Nowy układ i ikony paska narzędzi.
    • Zaktualizowano układ w drzewie komponentów.
    • Ulepszyliśmy wstawianie widoków metodą „przeciągnij i upuść”.
    • Nowy panel błędów pod edytorem, w którym widać wszystkie problemy i sugestie do rozwiązania (jeśli są dostępne).
    • Różne ulepszenia interfejsu użytkownika dotyczące tworzenia treści za pomocą ConstraintLayout, w tym:
      • Nowa obsługa tworzenia barier.
      • Nowa obsługa tworzenia grup: na pasku narzędzi wybierz Wskazówki > Dodaj grupę (wymaga ConstraintLayout 1.1.0 w wersji 2 lub nowszej).
      • Nowy interfejs tworzenia sieci: wybierz wiele widoków, a następnie kliknij prawym przyciskiem myszy i wybierz Sieć.

    Inspektor układu

    Inspektor układu zawiera ulepszenia ułatwiające debugowanie problemów z układami aplikacji, w tym grupowanie usług według wspólnych kategorii i nowe funkcje wyszukiwania w panelach Wyświetl drzewo i Właściwości.

    Analizator plików APK

    Możesz teraz użyć Analizatora plików APK z poziomu wiersza poleceń przy użyciu narzędzia apkanalyzer.

    Analizator plików APK został też zaktualizowany o te ulepszenia:

    • W przypadku pakietów APK utworzonych przy użyciu ProGuard możesz wczytać pliki mapowania ProGuard, które zwiększają możliwości przeglądarki DEX, takie jak:
      • Węzły są pogrubione, aby wskazać, że nie należy ich usuwać podczas zmniejszania kodu.
      • Przycisk wyświetlający węzły, które zostały usunięte podczas procesu zmniejszania.
      • Przycisk, który przywraca w widoku drzewa oryginalne nazwy węzłów zaciemnionych przez ProGuard.
    • Przeglądarka plików DEX pokazuje teraz szacowany wpływ na rozmiar każdego pakietu, klasy i metody.
    • Nowe opcje filtrowania u góry umożliwiające wyświetlanie i ukrywanie pól oraz metod.
    • W widoku drzewa węzły, które są odwołaniami niezdefiniowanymi w pliku DEX, są wyróżnione kursywą.

    Więcej informacji znajdziesz w artykule Analizowanie kompilacji przy użyciu Analizatora plików APK.

    Podgląd kompilatora D8 DEX

    Android Studio 3.0 zawiera nowy, opcjonalny kompilator DEX o nazwie D8. Zastąpi on kompilator DX, ale już teraz możesz wyrazić zgodę na używanie nowego kompilatora D8.

    Kompilacja plików DEX wpływa bezpośrednio na czas kompilacji aplikacji, rozmiar pliku .dex oraz wydajność środowiska wykonawczego. Jeśli porównamy nowy kompilator D8 z obecnym kompilatorem D8, D8 kompiluje szybciej i generuje mniejsze pliki .dex, zachowując przy tym taką samą lub lepszą wydajność działania aplikacji.

    Aby wypróbować tę funkcję, skonfiguruj te ustawienia w pliku gradle.properties projektu:

    android.enableD8=true
        

    Więcej informacji znajdziesz w poście na blogu o kompilatorze D8.

    Repozytorium Google Maven

    Android Studio używa teraz domyślnie repozytorium Maven Google, a nie – w zależności od menedżera pakietów Android SDK Manager – do pobierania aktualizacji Biblioteki pomocy Androida, Usług Google Play, Firebase i innych zależności. Ułatwia to zapewnienie aktualności bibliotek, zwłaszcza gdy korzystasz z systemu ciągłej integracji (CI).

    Wszystkie nowe projekty domyślnie zawierają teraz repozytorium Google Maven. Aby zaktualizować istniejący projekt, dodaj google() w bloku repositories pliku build.gradle najwyższego poziomu:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Dowiedz się więcej o repozytorium Google Maven.

    Inne zmiany

    • Debugowanie natywne w Android Studio nie obsługuje już 32-bitowych wersji systemu Windows. Zdecydowaliśmy się skupić na innych platformach, ponieważ z niej korzysta niewielu deweloperów. Jeśli używasz 32-bitowego systemu Windows i chcesz debugować kod natywny, nadal korzystaj z Androida 2.3.
    • Zaktualizowaliśmy podstawowe środowisko IDE do wersji IntelliJ 2017.1.2, która dodaje wiele nowych funkcji z wersji 2016.3 i 2017.1, takich jak refaktoryzowanie języka Java 8, wskazówki parametrów, wyróżnianie semantyczne, przeciągane punkty przerwania, błyskawiczne wyniki w wyszukiwarce i wiele innych.
    • Dodano wiele nowych testów lintowania.
    • Zobacz też najnowsze aktualizacje emulatora Androida.

    2.3 (marzec 2017 r.)

    Android Studio 2.3.0 to przede wszystkim poprawki błędów i zwiększenie stabilności, ale zawiera też wiele nowych funkcji.

    2.3.3 (czerwiec 2017 r.)

    To jest drobna aktualizacja dodająca obsługę Androida O (poziom interfejsu API 26).

    2.3.2 (kwiecień 2017 r.)

    Jest to drobna aktualizacja Androida Studio 2.3, która wprowadza następujące zmiany:

    • Aktualizacje Menedżera AVD umożliwiające obsługę Google Play w obrazach systemu.
    • Poprawki błędów w kompilacjach NDK z wersji R14+.

    Zobacz też odpowiednie aktualizacje dla Emulatora Androida 26.0.3.

    2.3.1 (kwiecień 2017 r.)

    To jest drobna aktualizacja Androida Studio 2.3, która rozwiązuje problem z niektórymi fizycznymi urządzeniami z Androidem, które nie działają prawidłowo z błyskawicznym uruchamianiem (patrz problem nr 235879).

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your project’s
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    2,2 (wrzesień 2016 r.)

    2.2.3 (grudzień 2016 r.)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    2.2.2 (październik 2016 r.)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    2.2.1 (październik 2016 r.)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    Nowość

    • Całkowicie nowy Edytor układu z niestandardowymi narzędziami do obsługi ConstraintLayout.
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    Zmiany

    • Baza kodu IDE została zaktualizowana z IntelliJ 15 na IntelliJ 2016.1
    • Funkcja błyskawicznego uruchomienia wymaga teraz zainstalowania pakietu SDK platformy odpowiadającego poziomowi interfejsu API urządzenia docelowego.
    • Szybkie uruchamianie zostanie automatycznie wyłączone, jeśli użytkownik uruchomi aplikację w profilu służbowym lub jako użytkownik pomocniczy.
    • Rozwiązaliśmy wiele problemów z niezawodnością natychmiastowego uruchamiania, które powodowały, że zmiany nie były wdrażane lub aplikacja ulegała awarii:
      • Niektóre komponenty z linkami do aplikacji nie zostały wdrożone w bieżącej aplikacji. ( Błąd: #213454)
      • Aplikacja ulega awarii, gdy użytkownik przechodzi między sesjami błyskawicznymi i innymi niż błyskawicznymi, w których klasa możliwej do serializacji nie ma zdefiniowanej wartości serialVersionUID. (Błąd: #209006)
      • Zmiany stylu nie są odzwierciedlane w przypadku błyskawicznego uruchamiania. (Błąd: #210851)
      • Sesja szybkiego uruchamiania jest zawodna i powoduje wystąpienie wyjątku FileNotFoundException. (Błąd: #213083)
      • Zmiany w elementach rysowalnych nie są odzwierciedlane, dopóki nie zostanie przeprowadzone pełne przebudowanie w systemie KitKat. (Błąd: #21530)
      • Gdy niestandardowe zestawy źródeł zawierają zagnieżdżone ścieżki, zmiany zasobów nie są odzwierciedlane w przypadku szybkiego uruchomienia. (Błąd: #219145)
      • Zamiana „na gorąco” i „częściowo” nie działa, jeśli zmieniona klasa zawiera adnotację z wartością wyliczeniową. (Błąd: #209047)
      • Zmiany w danych adnotacji nie są odzwierciedlane w przypadku szybkiego uruchamiania. (Błąd: #210089)
      • Błyskawiczne uruchomienie nie wykryje zmian kodu, jeśli wprowadzisz zmiany poza IDE. (Błąd: #213205)
      • Sesja błyskawicznego uruchomienia jest niewiarygodna z powodu niezgodnego tokena zabezpieczeń. (Błąd: #211989
      • Zamiana „na zimno” nie działa w przypadku urządzeń, które nie obsługują pracy jako uruchomionej. (Błąd: #210875)
      • Po ponownym uruchomieniu aplikacji wystąpiła awaria aplikacji. (Błąd: #219744)
      • Podczas przełączania z błyskawicznego uruchomienia na błyskawiczny debugowanie zaobserwowano ClassNotFoundException. (Błąd: #215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you won’t be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    2.1 (kwiecień 2016 r.)

    Główne zmiany w tej aktualizacji umożliwiają tworzenie wersji przedpremierowej Androida N.

    2.1.3 (sierpień 2016 r.)

    Ta aktualizacja zwiększa zgodność z Gradle 2.14.1, w tym ulepszenia wydajności, nowe funkcje i ważną poprawkę zabezpieczeń. Więcej informacji znajdziesz w informacjach o wersji Gradle.

    Domyślnie nowe projekty w Android Studio 2.1.3 korzystają z Gradle 2.14.1. W przypadku istniejących projektów IDE prosi o uaktualnienie do Gradle 2.14.1 i wtyczki do Androida dla Gradle 2.1.3, co jest wymagane w przypadku korzystania z Gradle w wersji 2.14.1 lub nowszej.

    2.1.2 (czerwiec 2016 r.)

    Ta aktualizacja obejmuje kilka drobnych zmian i poprawek błędów:

    • Aktualizacje i poprawki błędów dotyczące błyskawicznego uruchomienia.
    • Ulepszenia wydajności LLDB i powiadomień o awariach.
    • Naprawiliśmy regresję w aktualizacji zabezpieczeń Androida Studio 2.1.1, która powodowała błąd git rebase.

    2.1.1 (maj 2016 r.)

    Aktualizacja wersji zabezpieczeń.

    Platforma Android N dodaje obsługę funkcji języka Java 8, które wymagają nowego, eksperymentalnego kompilatora o nazwie Jack. Najnowsza wersja Jacka jest obecnie obsługiwana tylko w Android Studio 2.1. Jeśli chcesz wykorzystać funkcje językowe Java 8, musisz utworzyć aplikację w Android Studio 2.1.

    Uwaga: błyskawiczne uruchamianie jest wyłączone po włączeniu kompilatora Jack, ponieważ obecnie nie jest on zgodny.

    Chociaż Android Studio 2.1 jest teraz stabilny, kompilator Jack jest nadal w fazie eksperymentalnej i musisz go włączyć za pomocą właściwości jackOptions w pliku build.gradle.

    Poza zmianami dotyczącymi obsługi wersji przedpremierowej Android Studio 2.1 zawiera drobne poprawki błędów i te ulepszenia:

    • Debuger Java C++ debuger jest teraz domyślnie włączony, gdy używasz urządzenia lub emulatora N i wybierzesz tryb Natywny debugera (na karcie Debugger swojej konfiguracji uruchamiania/debugowania).

    Jeśli chcesz korzystać z innych ulepszeń kompilacji, np. przyrostowej kompilacji kodu Java i dexing w procesie,zaktualizuj wtyczkę do Androida dla Gradle do wersji 2.1.0.

    2.0 (kwiecień 2016 r.)

    Uwaga: jeśli tworzysz wersję przedpremierową dla programistów w wersji N, korzystaj z wersji testowej Android Studio 2.1. Android Studio 2.0 nie obsługuje wszystkich funkcji wymaganych do kierowania aplikacji na wersję przedpremierową N.

    Błyskawiczne uruchamianie:

    • Android Studio wdraża teraz przejrzyste kompilacje szybciej niż kiedykolwiek wcześniej. Dodatkowo wprowadzanie przyrostowych zmian kodu do emulatora lub urządzenia fizycznego jest teraz niemal natychmiastowe. Sprawdź aktualizacje bez ponownego wdrażania nowej kompilacji do debugowania lub w wielu przypadkach bez ponownego uruchamiania aplikacji.
    • Szybkie uruchamianie obsługuje przekazywanie tych zmian do uruchomionej aplikacji:
      • Zmiany w implementacji istniejącej metody instancji lub metody statycznej
      • Zmiany w istniejącym zasobie aplikacji
      • Zmiany w kodzie strukturalnym, takie jak podpis metody lub pole statyczne (wymaga urządzenia docelowego z interfejsem API na poziomie 21 lub wyższym).
    • Więcej informacji o błyskawicznym uruchomieniu znajdziesz w dokumentacji.

      Uwaga: błyskawiczne uruchamianie jest obsługiwane tylko wtedy, gdy wdrażasz wariant kompilacji do debugowania, używasz wtyczki do Androida dla Gradle w wersji 2.0.0 lub nowszej i skonfigurujesz plik build.gradle na poziomie modułu aplikacji na poziomie minSdkVersion 15 lub nowszego. Aby uzyskać najlepszą wydajność, skonfiguruj aplikację na poziomie minSdkVersion 21 lub wyższym.

    Nowości w Lint:

    • Sprawdzenie instrukcji switch z użyciem liczb całkowitych z adnotacją @IntDef w celu sprawdzenia, czy obsługiwane są wszystkie stałe. Aby szybko dodać brakujące instrukcje, użyj menu działania intencji i wybierz Dodaj brakujące stałe @IntDef.
    • Flagi nieprawidłowych prób użycia interpolacji ciągów znaków do wstawienia numerów wersji w pliku build.gradle.
    • Flagi anonimowych klas, które rozszerzają klasę Fragment.
    • Flagi kodu natywnego w niebezpiecznych lokalizacjach, takich jak foldery res/ i asset/. Ta flaga zachęca do przechowywania kodu natywnego w folderze libs/, który jest następnie bezpiecznie spakowany do folderu data/app-lib/ aplikacji podczas instalacji. AOSP: #169950
    • Flagi w przypadku niebezpiecznych połączeń z numerami Runtime.load() i System.load(). AOSP: #179980
    • Aby znaleźć i usunąć nieużywane zasoby, wybierz na pasku menu Refaktor > Usuń nieużywane zasoby. Wykrywanie nieużywanych zasobów obsługuje teraz tylko zasoby, do których odwołują się nieużywane zasoby, odwołania w nieprzetworzonych plikach, takie jak odwołania do obrazów .html oraz atrybuty tools:keep i tools:discard używane przez ograniczanie zasobów Gradle, przy czym uwzględnia się nieaktywne zbiory źródłowe (takie jak zasoby używane w innych rodzajach kompilacji) i prawidłową obsługę importów pól statycznych.
    • Sprawdza, czy niejawne odwołania do interfejsu API są obsługiwane na wszystkich platformach, na które kierowany jest element minSdkVersion.
    • Informuje o nieprawidłowym użyciu elementów RecyclerView i Parcelable.
    • Inspekcje @IntDef, @IntRange i @Size są teraz sprawdzane także pod kątem tablic i zmiennych int.

    Dodatkowe ulepszenia:

    • Zoptymalizowany pod kątem emulatora Androida 2.0, który jest szybszy niż kiedykolwiek wcześniej, obsługuje większą liczbę urządzeń wirtualnych i oferuje znacznie ulepszony interfejs. Więcej informacji o nowym emulatorze znajdziesz w informacjach o wersji narzędzi SDK.
    • Ulepszenia Menedżera urządzeń wirtualnych Android:
      • Obrazy systemowe są teraz dzielone na te karty: Zalecane, x86 i Inne.
      • W ustawieniach zaawansowanych możesz włączyć obsługę wielu rdzeni i określić liczbę rdzeni, których emulator może używać.
      • W ustawieniach zaawansowanych możesz określić sposób renderowania grafiki w emulatorze, wybierając jedną z tych opcji:
        • Sprzęt: użyj karty graficznej komputera, aby przyspieszyć renderowanie.
        • Oprogramowanie: korzysta z renderowania programowego.
        • Automatycznie: pozwól emulatorowi wybrać najlepszą opcję. Jest to ustawienie domyślne.
    • Skrócenie czasu pakowania AAPT przez określenie miejsca docelowego wdrożenia przed skompilowaniem aplikacji. Dzięki temu Android Studio może efektywnie pakować tylko zasoby wymagane przez określone urządzenie.
    • Dodano integrację z Cloud Test Lab, aby umożliwić testowanie aplikacji na żądanie z wygodą i skalowalnością usługi w chmurze. Dowiedz się więcej o tym, jak używać Cloud Test Lab z Androidem Studio.
    • Dodaliśmy podgląd nowego narzędzia GPU Debugger. W przypadku aplikacji o rozbudowanej grafice możesz teraz wyświetlić wizualnie kod OpenGL ES, aby zoptymalizować aplikację lub grę.
    • Dodano test indeksowania aplikacji Google. Dodaj obsługę adresów URL, indeksowania aplikacji i funkcji wyszukiwania, aby zwiększyć ruch w aplikacji, sprawdzić, które treści są najczęściej używane, i przyciągnąć nowych użytkowników. Testowanie i weryfikowanie adresów URL w aplikacji bezpośrednio w Android Studio. Zapoznaj się z artykułem Obsługa adresów URL i indeksowania aplikacji w Android Studio.
    • Uaktualnienia z najnowszej wersji IntelliJ 15, w tym ulepszona analiza kodu i wydajność. Pełny opis nowych funkcji i ulepszeń znajdziesz w sekcji Co nowego w IntelliJ.
    • Funkcja autouzupełniania w edytorze XML dodaje teraz cudzysłowy podczas uzupełniania atrybutów. Aby sprawdzić, czy ta opcja jest włączona, otwórz okno Ustawienia lub Preferencje, kliknij Edytor > Ogólne > Klucze inteligentne i zaznacz pole Dodawaj cudzysłowy dla wartości atrybutu przy uzupełnieniu atrybutu. Numer sprawy: 195113
    • Edytor XML obsługuje teraz uzupełnianie kodu w wyrażeniach wiązania danych.

    Android Studio w wersji 1.5.1 (grudzień 2015 r.)

    Poprawki i ulepszenia:

    • Naprawiono błąd renderowania w edytorze układu. Problem: 194612
    • Dodano możliwość różnicowania atrybutów pliku manifestu description w zależności od konfiguracji. Problem: 194705
    • Poprawiliśmy kontrast motywu wyglądu Darcula w narzędziu Vector Asset Studio. Wydanie: 191819
    • Dodaliśmy obsługę przycisku Pomoc w narzędziu Vector Asset Studio.
    • Dodano obsługę wiązania danych z operatorem %. Problem: 194045
    • Rozwiązaliśmy problem, który powodował, że uruchomienie aplikacji w celu debugowania powodowało połączenie się debugera z niewłaściwym urządzeniem. Wydanie: 195167
    • Naprawiliśmy wyjątek wskaźnika o wartości null, który mógł występować podczas próby uruchomienia aplikacji w określonych scenariuszach.

    Android Studio w wersji 1.5.0 (listopad 2015 r.)

    Poprawki i ulepszenia:

    • Dodaliśmy nowe możliwości analityczne Monitorowania pamięci do Android Monitor. Gdy wyświetlisz plik HPROF przechwycony na tym monitorze, wyświetlacz staje się bardziej pomocny i pozwala szybciej znaleźć problemy, takie jak wycieki pamięci. Aby go używać, kliknij Monitor Android u dołu okna głównego. W Android Monitor kliknij kartę Pamięć. Gdy monitor jest uruchomiony, kliknij ikonę Dump Java Heap (Dump Java Heap), a następnie kliknij Captures w głównym oknie i kliknij dwukrotnie plik, aby go wyświetlić. Po prawej stronie kliknij Capture Analysis (Analiza przechwytywania). (Monitora urządzenia z Androidem nie można uruchomić jednocześnie z Monitorem Android).
    • Dodano obsługę precyzyjnego linku i linku do aplikacji. Edytor kodu może automatycznie utworzyć filtr intencji na potrzeby precyzyjnych linków w pliku AndroidManifest.xml. Może też generować kod ułatwiający integrację z interfejsem API indeksowania aplikacji w aktywności w pliku Javy. Funkcja testowania precyzyjnych linków pomaga sprawdzić, czy określony precyzyjny link może uruchomić aplikację. Na karcie Ogólne okna dialogowego Konfiguracje uruchamiania/debugowania możesz określić opcje uruchamiania precyzyjnych linków. Możesz też przetestować wywołania interfejsu API indeksowania aplikacji w aktywności, używając wyświetlacza logcat w Android Monitor. Narzędzie lint na Androida wyświetla teraz ostrzeżenia dotyczące niektórych problemów związanych z precyzyjnymi linkami i interfejsem API indeksowania aplikacji.
    • Dodaliśmy możliwość używania krótkich nazw podczas wypełniania niestandardowych widoków w edytorze kodu.
    • W Vector Asset Studio dodaliśmy obsługę większej liczby elementów VectorDrawable, by zapewnić zgodność wsteczną. Studio zasobów wektorowych może używać tych elementów do konwertowania elementów rysowalnych wektorowych na obrazy rastrowe w formacie PNG, z których można korzystać na Androidzie 4.4 (poziom interfejsu API 20) lub starszym.
    • Dodaliśmy nowe testy lint dotyczące Androida TV i Androida Auto, aby zapewnić natychmiastowe działania w Android Studio i udostępnić Ci kilka szybkich poprawek. Na przykład w przypadku Androida TV może zgłosić problem z uprawnieniami, nieobsługiwanym sprzętem, element uses-feature i brakujący baner oraz szybko rozwiązać problem z banerem. W przypadku Androida Auto może sprawdzać poprawność użycia w pliku deskryptora, do którego odwołuje się plik AndroidManifest.xml, zgłaszać, jeśli nie ma filtra intencji dla klasy MediaBrowserService, oraz identyfikować problemy z komendami głosowymi.
    • Dodano nowe testy lint pod kątem niezabezpieczonych odbiorników transmisji, użycia klas SSLCertificateSocketFactory i HostnameVerifier oraz połączeń File.setReadable() i File.setWritable(). Wykrywa również nieprawidłowe wyszukiwania zasobów manifestu, zwłaszcza w przypadku zasobów, które różnią się w zależności od konfiguracji.
    • Naprawiono kilka problemów ze stabilnością.

    Android Studio w wersji 1.4.1 (październik 2015 r.)

    Poprawki i ulepszenia:

    • Rozwiązaliśmy problem z buforowaniem modelu Gradle, który mógł prowadzić do nadmiernej synchronizacji Gradle po ponownym uruchomieniu IDE.
    • Usunięto problem z blokadą wzajemną na potrzeby debugowania natywnego.
    • Rozwiązaliśmy problem blokujący użytkowników systemu kontroli wersji Subversion 1.9.
    • Rozwiązaliśmy problem z oknem wyboru urządzenia, który powodował, że po podłączeniu nieautoryzowanego urządzenia nie można było już wybrać emulatora. Problem: 189658
    • Naprawiono nieprawidłowe raportowanie błędów tłumaczenia w przypadku języków, które mają kwalifikator regionu i tłumaczenie w danym regionie (ale nie w języku podstawowym). Problem: 188577
    • Naprawiono problem z zakleszczeniem w edytorze motywów związany z jego interakcją z edytorem układu. Problem: 188070
    • Naprawiono konflikt edycji i ponowne załadowanie edytora motywów, które powodowały, że atrybuty nie były prawidłowo aktualizowane. Problem: 187726
    • Zwiększono wydajność edytora motywów.
    • Rozwiązaliśmy problem z ignorowaniem atrybutu android:required w pliku manifestu. Problem: 187665

    Android Studio w wersji 1.4.0 (wrzesień 2015 r.)

    Poprawki i ulepszenia:

    • Dodano narzędzie Vector Asset Studio, które umożliwia importowanie grafiki wektorowej, np. ikon materiałowych i plików SVG. Aby użyć tego narzędzia, w oknie projektu w widoku Androida kliknij prawym przyciskiem myszy folder res i wybierz Nowy > Zasób wektorowy.
    • Dodaliśmy nowe funkcje Android Monitor, GPU i sieć. Aby używać tych monitorów, kliknij Monitor Android u dołu okna głównego. Aplikacja Android Device Monitor nie może być uruchomiona jednocześnie z Androidem Monitor.
    • Dodaliśmy wczesną wersję przedpremierową nowego edytora motywów. Aby użyć tej funkcji, wybierz Narzędzia > Android > Edytor motywów.
    • Zaktualizowano szablony Androida dla biblioteki pomocy dotyczącej projektowania. Szablony obsługują teraz specyfikację Material Design, a także bibliotekę pomocy appcompat, która zapewnia zgodność wsteczną.

    Android Studio w wersji 1.3.2 (sierpień 2015 r.)

    Poprawki i ulepszenia:

    • Dodaliśmy obsługę Androida 6.0 (poziom interfejsu API 23), w tym nowe ikony i obsługę tworzenia urządzeń z nową gęstością ekranu przez narzędzie AVD Manager.
    • Naprawiono wyjątek, który występował podczas sprawdzania dostępności aktualizacji. Problem: 183068
    • Rozwiązaliśmy problem polegający na tym, że nierozwiązane współrzędne widoku mogły powodować awarię edytora układu. Problem: 178690
    • Rozwiązaliśmy problem z ostrzeżeniami o nieprawidłowym typie zasobów. Problem: 182433
    • Naprawiono kontrolę lintowania, która błędnie oznaczała zasoby jako prywatne. Problem: 183120

    Android Studio w wersji 1.3.1 (sierpień 2015 r.)

    Poprawki i ulepszenia:

    • Naprawiono obsługę tworzenia wirtualnego urządzenia Android Wear na Androida (AVD) w systemie Windows.
    • Zaktualizowano Kreatora projektów, korzystając z podanej nazwy projektu.
    • Dodaliśmy obsługę przechowywania pakietu Android SDK w katalogu tylko do odczytu.
    • Zaktualizowana wtyczka Androida do obsługi Gradle do wersji 1.3.0.
    • Rozwiązaliśmy problemy z uruchamianiem sesji debugowania z powłoki uniksowej Android Debug Bridge (adb).
    • Naprawiliśmy komunikat o zmianie nazwy pakietu Java, aby wyświetlać prawidłową nazwę pakietu.

    Android Studio w wersji 1.3.0 (lipiec 2015 r.)

    Poprawki i ulepszenia:

    • Dodaliśmy opcje włączania w aplikacji usług dla deweloperów, takich jak Google AdMob i Analytics, z poziomu Androida Studio.
    • Dodaliśmy dodatkowe adnotacje, np. @RequiresPermission, @CheckResults i @MainThread.
    • Dodaliśmy możliwość generowania zrzutów stosu Javy i analizowania przydziałów wątków w narzędziu Memory Monitor. Możesz też przekonwertować pliki binarne HPROF właściwe dla Androida na standardowy format HPROF z poziomu Androida Studio.
    • Zintegrowaliśmy Menedżera SDK z Androidem Studio, aby uprościć dostęp do pakietów i narzędzi oraz dostarczać powiadomienia o aktualizacjach.

      Uwaga: samodzielny pakiet SDK Manager jest nadal dostępny z poziomu wiersza poleceń, ale zalecany do użycia tylko w przypadku samodzielnych instalacji pakietu SDK.

    • Dodano polecenie finger w konsoli emulatora, aby symulować uwierzytelnianie za pomocą odcisku palca.
    • Dodano deklarację zasobu <public>, aby oznaczyć zasoby biblioteki jako publiczne i prywatne.

      Uwaga: wymaga wtyczki do Androida dla Gradle w wersji 1.3 lub nowszej.

    • Dodaliśmy obsługę wiązania danych, aby tworzyć układy deklaratywne, które łączą logikę aplikacji z elementami układu.
    • Dodaliśmy obsługę osobnego modułu do testowania plików APK do tworzenia testowych plików APK w Android Studio.
    • Zaktualizowaliśmy Menedżera AVD, dodając do niego optymalizację HAXM i ulepszone powiadomienia.
    • Dodano obsługę 64-bitowego emulatora ARM i MIPS w QEMU 2.1.
    • Uprościliśmy rozwiązywanie ostrzeżeń Lint przez dodanie szybkich poprawek, takich jak automatyczne generowanie implementacji Parcelable.
    • Dodaliśmy obsługę aktywnego szablonu, co umożliwia szybkie wstawianie fragmentów kodu.

    Android Studio w wersji 1.2.2(czerwiec 2015 r.)

    Poprawki i ulepszenia:

    • Rozwiązaliśmy problemy z kompilacjami, które uniemożliwiały ukończenie kompilacji.

    Android Studio 1.2.1 (maj 2015 r.)

    Poprawki i ulepszenia:

    • Naprawiono drobne problemy z wydajnością i funkcjami.

    Android Studio w wersji 1.2.0 (kwiecień 2015 r.)

    Poprawki i ulepszenia:

    • Zaktualizowaliśmy okno środowiska wykonawczego Androida, aby obejmowało narzędzie Memory Monitor, i dodaliśmy kartę do monitorowania wydajności procesora.
    • Na lewym marginesie dodaliśmy kartę Zapisy, aby wyświetlać przechwycone pliki z danymi o pamięci i wydajności procesora, takie jak śledzenie metod procesora i zrzuty stosu pamięci.
    • Rozszerzona obsługa adnotacji o dodatkowe adnotacje metadanych i domniemaną wartość null.
    • Ulepszyliśmy Edytor tłumaczeń o dodatkową obsługę Best Current Practice (BCP) 47, która używa 3-literowych kodów języków i regionów.
    • Zintegrowane funkcje IntelliJ 14 i 14.1 umożliwiają ulepszoną analizę kodu i wydajność:
      • Ulepszone debugowanie umożliwiające wyświetlanie wartości w tekście zmiennych i obiektów odsyłających, a także wbudowane ocenianie wyrażeń lambda i operatorów.
      • Dodaliśmy wykrywanie stylu kodu dla rozmiarów tabulacji i wcięcia.
      • Dodano pliki tymczasowe do eksperymentów z kodem i prototypowania bez plików projektu.
      • Dodaliśmy jednoczesne wstawianie tagów otwierających i zamykających do plików HTML i XML.
      • Dodaliśmy wbudowany program do dekompilacji klas w Javie, dzięki któremu można obejrzeć zawartość biblioteki, dla której nie ma dostępnego kodu źródłowego.

      Pełny opis nowych funkcji i ulepszeń znajdziesz w sekcji Co nowego w IntelliJ.

    • Dodaliśmy dodatkowe widoki projektu dla zdrapek, plików projektu, problemów, produkcji i testów, aby usprawnić zarządzanie projektem i dostęp do niego.
    • Ulepszyliśmy menu i okna Plik > Ustawienia, aby poprawić dostęp do ustawień i zarządzanie nimi.
    • Dodaliśmy obsługę wyświetlaczy o dużej gęstości w systemach Windows i Linux.
    • W folderze res/drawable-280dpi/ dodaliśmy obsługę zasobów o rozdzielczości 280 dpi.

    Android Studio w wersji 1.1.0 (luty 2015 r.)

    Różne poprawki i ulepszenia:

    • Dodaliśmy obsługę szablonu zegarka Android Wear.
    • Zmodyfikowaliśmy tworzenie nowego projektu i modułu, aby uwzględnić foldery res/mipmap w przypadku ikon programu uruchamiającego o określonej gęstości. Te foldery res/mipmap zastępują foldery res/drawable w przypadku ikon programu uruchamiającego.
    • Zaktualizowaliśmy ikony programu uruchamiającego, aby miały wygląd Material Design, i dodaliśmy ikonę programu uruchamiającego xxxhdpi.
    • Dodaliśmy i ulepszone testy Lint pod kątem kombinacji regionu i języka, ikon programu uruchamiającego, nazw zasobów i innych typowych problemów z kodem.
    • Dodaliśmy obsługę tagu języka Best Current Practice (BCP) do języka 47.

    Android Studio w wersji 1.0.1 (grudzień 2014 r.)

    Różne poprawki i ulepszenia:

    • Usunięto problem z blokadą plików w Menedżerze AVD i device.xml.
    • Naprawiono dziennik emulatora w systemach Windows.
    • Rozwiązanie problemu z tworzeniem AVD za pomocą pakietu Android Studio i pakietu SDK do Androida zainstalowanego na różnych dyskach w systemie Windows.
    • Ustawia domyślny kanał aktualizacji nowo pobranych plików na Stabilny. Jeśli masz zainstalowaną wersję 1.0.0 Android Studio i chcesz otrzymywać stabilną, gotową do wdrożenia wersję produkcyjną, kliknij Plik > Ustawienia > Aktualizacje, aby przejść na kanał stabilny.

    Android Studio w wersji 1.0 (grudzień 2014 r.)

    Pierwsza wersja Android Studio.

    Android Studio w wersji 0.8.14 (październik 2014 r.)

    Pełną listę zmian znajdziesz na stronie tools.android.com.

    Android Studio w wersji 0.8.6 (sierpień 2014 r.)

    Pełną listę zmian znajdziesz na tools.android.com.

    Android Studio w wersji 0.8.0 (czerwiec 2014)

    Dodaliśmy obsługę projektów Android Wear.

    Pełną listę zmian znajdziesz na tools.android.com.

    Android Studio v0.5.2 (maj 2014 r.)

    Android Studio w wersji 0.4.6 (marzec 2014 r.)

    Android Studio w wersji 0.4.2 (styczeń 2014)

    Android Studio w wersji 0.3.2 (październik 2013 r.)

    Android Studio w wersji 0.2.x (lipiec 2013 r.)

    • Scalono w najnowszych zmianach w bazie kodu IntelliJ. Zawiera poprawki błędów zgłaszanych przez użytkowników Studio, takie jak poprawki rozmiarów i renderowania czcionek w systemie Linux.
    • Wtyczka Androida do obsługi Gradle została zaktualizowana do wersji 0.5.0.

      Uwaga: ta nowa wersja nie jest zgodna wstecznie. Gdy otworzysz projekt, który używa starszej wersji wtyczki, Studio wyświetli błąd z informacją Nie udało się odświeżyć projektu Gradle <nazwa_projektu>.

      Zaktualizowana wtyczka Gradle zawiera te zmiany:

      • Poprawiono model IDE tak, aby zawierał plik wyjściowy, nawet jeśli został dostosowany przy użyciu DSL. Poprawiliśmy też DSL, aby pobrać/ustawić plik wyjściowy w obiekcie wariantu, dzięki czemu nie trzeba używać variant.packageApplication or variant.zipAlign
      • Naprawiono rozpoznawanie zależności, dzięki czemu rozwiązaliśmy połączenie (konfiguracja domyślna, typy kompilacji, smaki) razem, a nie oddzielnie.
      • Poprawiono zależność testów projektu biblioteki, która prawidłowo uwzględniała wszystkie zależności samej biblioteki.
      • Naprawiono przypadek, w którym 2 zależności mają taką samą nazwę liścia.
      • Rozwiązaliśmy problem polegający na tym, że do smaków nie można było stosować pliku reguł ProGuard.

      Wszystkie informacje o wersji wtyczki Gradle są dostępne tutaj: http://tools.android.com/tech-docs/new-build-system.

    • Błędy Gradle z aapt nie wskazują już na scalone pliki wyjściowe w folderze Build/, tylko wskazują rzeczywiste lokalizacje źródłowe.
    • kompilacje równoległe. Teraz możesz korzystać z równoległych kompilacji Gradle. Pamiętaj, że kompilacje równoległe znajdują się w sekcji „incubation” (zobacz dokumentację Gradle). Ta funkcja jest domyślnie wyłączona. Aby ją włączyć, kliknij Preferencje > Kompilator i zaznacz pole Kompiluj niezależne moduły równolegle.
    • Kontynuuj pracę nad nowym repozytorium zasobów służącym do renderowania układu, zwijania zasobów w edytorze i nie tylko:
      • Podstawowa obsługa zależności z biblioteką .aar (np. korzystanie z biblioteki bez lokalnej kopii źródeł). Nadal nie działa sprawdzanie poprawności kodu XML zasobów ani nawigację w edytorach źródeł.
      • Wykrywanie cykli w odwołaniach do zasobów.
      • Szybka dokumentacja (F1), która może wyświetlać wszystkie tłumaczenia ciągu znaków znajdującego się pod daszkiem, wyświetla teraz również wszystkie nakładki zasobów z różnych smaków i typów kompilacji Gradle, a także biblioteki. Są one wymienione w odwrotnej kolejności nakładania zasobów, z przekreśleniem w przypadku wersji ciągu znaków, które są zamaskowane.
      • Poprawki związane z aktualizowaniem scalonych zasobów w przypadku zmiany zestawu zależności modułów.
      • Poprawki związane z renderowaniem XML, które poprawiają prawidłową obsługę deklaracji encji znaków oraz znaków modyfikacji kodu XML i Unicode.
    • Zapisz obsługę zrzutów ekranu dla okien podglądu układu i edytora układu.
    • Poprawki błędów w szablonach.
    • Poprawki błędów Lint.
    • Naprawiono raporty o awariach. Dziękujemy i prosimy o dalsze zgłaszanie raportów o awariach!

    Android Studio v0.1.x (maj 2013 r.)

    • Poprawki różnych błędów, w tym poprawka typowych problemów z instalacją w systemie Windows.

    Starsze wersje wtyczki Androida do obsługi Gradle

    3.6.0 (luty 2020 r.)

    Ta wersja wtyczki na Androida wymaga:

    Nowe funkcje

    Ta wersja wtyczki Androida do obsługi Gradle zawiera te nowe funkcje.

    Wyświetl powiązanie

    Powiązanie widoku zapewnia bezpieczeństwo w czasie kompilowania podczas odwoływania się do widoków w kodzie. Możesz teraz zastąpić findViewById() wygenerowanym automatycznie odwołaniem do klasy wiązania. Aby zacząć korzystać z powiązania widoku danych, w pliku build.gradle każdego modułu umieść te elementy:

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    Więcej informacji znajdziesz w dokumentacji powiązań.

    Obsługa wtyczki Maven Publish

    Wtyczka Androida do obsługi Gradle obsługuje wtyczkę Maven Publish Gradle, która umożliwia publikowanie artefaktów kompilacji w repozytorium Apache Maven. Wtyczka Androida do obsługi Gradle tworzy komponent dla każdego artefaktu wersji kompilacji w aplikacji lub module biblioteki, którego możesz użyć, aby dostosować publikację do repozytorium Maven.

    Aby dowiedzieć się więcej, wejdź na stronę o tym, jak korzystać z wtyczki Maven Publish.

    Nowe domyślne narzędzie do tworzenia pakietów

    Gdy tworzysz wersję aplikacji do debugowania, korzysta ona z nowego narzędzia do tworzenia pakietów o nazwie zipflinger, aby utworzyć plik APK. To nowe narzędzie powinno zapewnić szybsze kompilacje. Jeśli nowe narzędzie do tworzenia pakietów nie działa zgodnie z oczekiwaniami, zgłoś błąd. Aby wrócić do starego narzędzia do tworzenia pakietów, umieść w pliku gradle.properties te informacje:

            android.useNewApkCreator=false
          
    Atrybucja tworzenia kreacji natywnych

    Możesz teraz określić czas potrzebny Clang na skompilowanie i połączenie poszczególnych plików C/C++ w projekcie. Gradle może wyświetlić log czasu Chrome zawierający sygnatury czasowe zdarzeń kompilatora, aby umożliwić Ci lepsze poznanie czasu potrzebnego na utworzenie projektu. Aby wyświetlić wyjściowy plik atrybucji kompilacji, wykonaj te czynności:

    1. Podczas uruchamiania kompilacji Gradle dodaj flagę -Pandroid.enableProfileJson=true. Na przykład:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Otwórz przeglądarkę Chrome i wpisz chrome://tracing na pasku wyszukiwania.

    3. Kliknij przycisk Wczytaj i przejdź do <var>project-root</var>/build/android-profile, aby znaleźć plik. Plik będzie miał nazwę profile-<var>timestamp</var>.json.gz.

    Dane o atrybucji kompilacji natywnych możesz zobaczyć u góry okna użytkownika:

    Śledzenie atrybucji kompilacji natywnej w Chrome

    Zmiany w działaniu

    Podczas korzystania z tej wersji wtyczki możesz zauważyć opisane poniżej zmiany w działaniu.

    Biblioteki natywne w pakietach domyślnie nieskompresowanych

    Gdy tworzysz aplikację, wtyczka domyślnie ustawia dla parametru extractNativeLibs wartość "false". Oznacza to, że Twoje biblioteki natywne są wyrównane do strony i spakowane bez kompresji. Powoduje to wzrost rozmiaru przesyłanych plików, ale zapewniają użytkownikom następujące korzyści:

    • Mniejszy rozmiar instalacji aplikacji, ponieważ platforma może uzyskiwać dostęp do bibliotek natywnych bezpośrednio z zainstalowanego pliku APK, bez konieczności tworzenia kopii bibliotek.
    • Mniejszy rozmiar pobieranego pliku, ponieważ kompresja Sklepu Play jest zwykle lepsza, gdy do pliku APK lub pakietu Android App Bundle dołączysz nieskompresowane biblioteki natywne.

    Jeśli chcesz, aby wtyczka Androida do obsługi Gradle zamiast skompresowanych bibliotek natywnych umieścić w pliku manifestu aplikacji ten kod:

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    Uwaga: atrybut pliku manifestu extractNativeLibs został zastąpiony opcją DSL useLegacyPackaging. Więcej informacji znajdziesz w informacjach o wersji: Używanie DSL do pakowania skompresowanych bibliotek natywnych.

    Domyślna wersja NDK

    Jeśli pobierzesz kilka wersji pakietu NDK, wtyczka Androida do obsługi Gradle wybiera teraz wersję domyślną używaną podczas kompilowania plików z kodem źródłowym. Wcześniej wtyczka wybierała ostatnio pobraną wersję pakietu NDK. Użyj właściwości android.ndkVersion w pliku build.gradle modułu, aby zastąpić ustawienie domyślne wybrane przez wtyczkę.

    Uproszczone generowanie klasy R

    Wtyczka Androida do obsługi Gradle upraszcza kompilację ścieżki klasy, generując tylko 1 klasę R dla każdego modułu biblioteki w projekcie i udostępniając te klasy R różnym zależnościom modułów. Ta optymalizacja powinna przyspieszyć kompilacje, ale wymaga rozważenia tych kwestii:

    • Kompilator współużytkuje klasy R z zależnościami modułu nadrzędnego, dlatego każdy moduł w projekcie musi używać unikalnej nazwy pakietu.
    • Widoczność klasy R biblioteki w odniesieniu do innych zależności projektu zależy od konfiguracji użytej do uwzględnienia biblioteki jako zależności. Jeśli na przykład biblioteka A uwzględnia Bibliotekę B jako zależność „api”, biblioteka A i inne biblioteki zależne od biblioteki A mają dostęp do klasy R biblioteki B. Inne biblioteki mogą jednak nie mieć dostępu do klasy R biblioteki B. Jeśli biblioteka A korzysta z konfiguracji zależności implementation. Aby dowiedzieć się więcej, poczytaj o konfiguracjach zależności.
    Usuń zasoby, których brakuje w konfiguracji domyślnej

    Jeśli w przypadku modułów biblioteki uwzględnisz zasób dla języka, którego nie uwzględnisz w domyślnym zbiorze zasobów – na przykład jeśli uwzględnisz hello_world jako zasób tekstowy w /values-es/strings.xml, ale nie zdefiniujesz tego zasobu w /values/strings.xml – wtyczka Androida do obsługi Gradle nie będzie już zawierać tego zasobu podczas kompilowania projektu. Ta zmiana działania powinna skutkować mniejszą liczbą wyjątków środowiska wykonawczego Resource Not Found i zwiększyć szybkość kompilacji.

    D8 przestrzega teraz zasady przechowywania CLASS dla adnotacji

    Podczas kompilacji aplikacji D8 respektuje teraz, kiedy adnotacje stosują zasady przechowywania CLASS, a adnotacje nie są już dostępne w czasie działania. Dzieje się tak również wtedy, gdy docelowy pakiet SDK aplikacji jest ustawiony na interfejs API na poziomie 23, co wcześniej umożliwiało dostęp do tych adnotacji w trakcie działania podczas kompilowania aplikacji przy użyciu starszych wersji wtyczki Androida do obsługi Gradle i wersji D8.

    Inne zmiany w działaniu
    • Parametr aaptOptions.noCompress nie uwzględnia już wielkości liter na wszystkich platformach (zarówno w przypadku plików APK, jak i pakietów) i uwzględnia ścieżki, w których występują wielkie litery.
    • Powiązanie danych jest teraz domyślnie przyrostowe. Więcej informacji znajdziesz w problemie nr 110061530.

    • Wszystkie testy jednostkowe, w tym testy jednostkowe RoboElectric, można teraz w pełni zapisywać w pamięci podręcznej. Więcej informacji znajdziesz w problemie nr 115873047.

    Poprawki błędów

    Ta wersja wtyczki Androida do obsługi Gradle zawiera te poprawki:

    • Robolectryczne testy jednostkowe są teraz obsługiwane w modułach biblioteki, które korzystają z wiązania danych. Więcej informacji znajdziesz w problemie nr 126775542.
    • Możesz teraz uruchamiać zadania connectedAndroidTest w wielu modułach, gdy włączony jest tryb wykonywania równoległego Gradle.

    Znane problemy

    W tej sekcji opisujemy znane problemy, które występują we wtyczce Androida do obsługi Gradle w wersji 3.6.0.

    Niska wydajność zadania Android Lint

    W niektórych projektach narzędzie Android Lint może potrwać znacznie dłużej ze względu na regresję w infrastrukturze analizy, co skutkuje wolniejszym obliczaniem przewidywanych typów lambda w niektórych konstrukcjach kodu.

    Problem jest zgłoszony jako błąd w IDEA i zostanie rozwiązany we wtyczce Androida do obsługi Gradle w wersji 4.0.

    Brak klasy pliku manifestu {:#agp-missing-manifest}

    Jeśli Twoja aplikacja określa w swoim pliku manifestu uprawnienia niestandardowe, wtyczka Androida do obsługi Gradle zwykle generuje klasę Manifest.java, która zawiera Twoje niestandardowe uprawnienia w postaci stałych ciągów znaków. Wtyczka spakuje tę klasę z Twoją aplikacją, dzięki czemu możesz łatwiej odwoływać się do tych uprawnień w czasie działania.

    Generowanie klasy pliku manifestu nie działa we wtyczce Androida do obsługi Gradle w wersji 3.6.0. Jeśli kompilujesz aplikację przy użyciu tej wersji wtyczki, która odwołuje się do klasy pliku manifestu, możesz zauważyć wyjątek ClassNotFoundException. Aby rozwiązać ten problem, wykonaj jedną z tych czynności:

    • Wskaż uprawnienia niestandardowe, podając ich pełną i jednoznaczną nazwę. Przykład: "com.example.myapp.permission.DEADLY_ACTIVITY".

    • Zdefiniuj własne stałe, jak poniżej:

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    3.5.0 (sierpień 2019 r.)

    Wtyczka Androida do obsługi Gradle w wersji 3.5.0 wraz z Androidem Studio 3.5 to duża wersja dostępna w ramach projektu Marble, który koncentruje się na ulepszaniu 3 głównych obszarów narzędzi dla programistów Androida: stanu systemu, dopracowania funkcji i naprawiania błędów. W szczególności głównym celem tej aktualizacji było poprawienie szybkości kompilacji projektu.

    Informacje o tych i innych zmianach dotyczących Project Marble znajdziesz w poście na blogu dla deweloperów aplikacji na Androida i w sekcjach poniżej.

    Ta wersja wtyczki na Androida wymaga:

    3.5.4 (lipiec 2020 r.)

    Ta drobna aktualizacja zapewnia zgodność z nowymi domyślnymi ustawieniami i funkcjami widoczności pakietów w Androidzie 11.

    Szczegóły znajdziesz w informacjach o wersji 4.0.1.

    3.5.3 (grudzień 2019 r.)

    Ta drobna aktualizacja obsługuje Androida Studio w wersji 3.5.3 i zawiera różne poprawki błędów oraz ulepszenia wydajności.

    3.5.2 (listopad 2019 r.)

    Ta drobna aktualizacja obsługuje Androida Studio w wersji 3.5.2 i zawiera różne poprawki błędów oraz ulepszenia wydajności. Listę istotnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    3.5.1 (październik 2019 r.)

    Ta drobna aktualizacja obsługuje Androida Studio w wersji 3.5.1 i zawiera różne poprawki błędów oraz ulepszenia wydajności. Listę istotnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    Przyrostowe przetwarzanie adnotacji

    Procesor adnotacji Powiązanie danych obsługuje przyrostowe przetwarzanie adnotacji, jeśli w pliku gradle.properties ustawisz android.databinding.incremental=true. Ta optymalizacja przynosi poprawę przyrostowej wydajności kompilacji. Pełną listę zoptymalizowanych procesorów adnotacji znajdziesz w tabeli procesorów przyrostowych adnotacji.

    Dodatkowo KAPT w wersji 1.3.30 i nowszych obsługuje również przyrostowe procesory adnotacji, które możesz włączyć, umieszczając kapt.incremental.apt=true w pliku gradle.properties.

    Testy jednostkowe z pamięci podręcznej

    Gdy włączysz w testach jednostkowych zasoby, zasoby i pliki manifestu Androida, ustawiając dla parametru includeAndroidResources wartość true, wtyczka Androida do obsługi Gradle wygeneruje testowy plik konfiguracyjny zawierający ścieżki bezwzględne, co spowoduje brak możliwości ponownej relokacji pamięci podręcznej. Możesz poinstruować wtyczkę, aby zamiast tego generowała konfigurację testową przy użyciu ścieżek względnych, dzięki czemu zadanie AndroidUnitTest może być w pełni buforowane. W tym celu umieść ten kod w pliku gradle.properties:

          android.testConfig.useRelativePath = true
        

    Znane problemy

    • Jeśli używasz wtyczki Kotlin Gradle w wersji 1.3.31 lub starszej, podczas tworzenia lub synchronizowania projektu możesz zobaczyć to ostrzeżenie:

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      Aby rozwiązać ten problem, uaktualnij wtyczkę do wersji 1.3.40 lub nowszej.

    3.4.0 (kwiecień 2019 r.)

    Ta wersja wtyczki na Androida wymaga:

    3.4.3 (lipiec 2020 r.)

    Ta drobna aktualizacja zapewnia zgodność z nowymi domyślnymi ustawieniami i funkcjami widoczności pakietów w Androidzie 11.

    Szczegóły znajdziesz w informacjach o wersji 4.0.1.

    3.4.2 (lipiec 2019 r.)

    Ta drobna aktualizacja obsługuje Androida Studio w wersji 3.4.2 i zawiera różne poprawki błędów oraz ulepszenia wydajności. Listę istotnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    3.4.1 (maj 2019 r.)

    Ta drobna aktualizacja obsługuje Androida Studio w wersji 3.4.1 i zawiera różne poprawki błędów oraz ulepszenia wydajności. Listę istotnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    Nowe funkcje

    • Nowe konfiguracje zależności lintowania: zmieniliśmy działanie lintChecks i wprowadziliśmy nową konfigurację zależności lintPublish, aby zapewnić Ci większą kontrolę nad tym, które testy lintowania są umieszczane w pakietach w bibliotekach Androida.

      • lintChecks: to jest istniejąca konfiguracja, której należy używać do testów lintowania, które chcesz przeprowadzać wyłącznie podczas tworzenia projektu lokalnie. Jeśli wcześniej korzystano z konfiguracji zależności lintChecks do uwzględniania testów lint w opublikowanym narzędziu AAR, musisz przenieść te zależności, aby zamiast nich używać opisanej poniżej nowej konfiguracji lintPublish.
      • lintPublish: użyj tej nowej konfiguracji w projektach biblioteki na potrzeby testów lintowania, które chcesz uwzględnić w opublikowanym pliku AAR, jak pokazano poniżej. Oznacza to, że projekty, które wykorzystują Twoją bibliotekę, również stosują te testy lintowania.

      Poniższy przykładowy kod używa obu konfiguracji zależności w projekcie lokalnej biblioteki na Androida.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • Ogólnie zadania pakowania i podpisywania powinny powodować ogólną poprawę szybkości kompilacji. Jeśli zauważysz pogorszenie wydajności związane z tymi zadaniami, zgłoś błąd.

    Zmiany w działaniu

    • Ostrzeżenie o wycofaniu wtyczki funkcji aplikacji błyskawicznych na Androida: jeśli nadal używasz wtyczki com.android.feature do tworzenia aplikacji błyskawicznej, wtyczka Androida do obsługi Gradle w wersji 3.4.0 wyświetli ostrzeżenie o wycofaniu. Aby mieć pewność, że nadal będziesz w stanie tworzyć aplikacje błyskawiczne z wykorzystaniem przyszłych wersji wtyczki, przenieś swoją aplikację błyskawiczną do wtyczki funkcji dynamicznej, która umożliwia publikowanie zarówno aplikacji zainstalowanych, jak i błyskawicznych z poziomu 1 pakietu Android App Bundle.

    • Domyślnie włączony R8: R8 integruje w jednym kroku odpalanie, zmniejszanie, zaciemnianie, zaciemnianie, optymalizację i usuwanie szczegółów, co daje zauważalne ulepszenia wydajności kompilacji. Usługa R8 została wprowadzona we wtyczce Androida do obsługi Gradle w wersji 3.3.0 i jest teraz domyślnie włączona w projektach z bibliotekami w aplikacjach i na Androidzie za pomocą wtyczki w wersji 3.4.0 lub nowszej.

    Na ilustracji poniżej przedstawiono ogólny przegląd procesu kompilacji przed wprowadzeniem R8.

    Przed R8 ProGuard był innym etapem kompilacji niż dexing i deugarowanie.

    W przypadku R8 usuwanie odblasków, zmniejszanie, zaciemnianie, optymalizowanie i usuwanie (D8) można wykonać w jednym kroku, jak widać na przykładzie poniżej.

    W przypadku R8 usuwanie odblasku, kurczenie, zaciemnianie, optymalizacja i usuwanie dexing jest wykonywane w jednym kroku kompilacji.

    Pamiętaj, że R8 zostało zaprojektowane do współpracy z Twoimi istniejącymi regułami ProGuard, więc prawdopodobnie nie musisz podejmować żadnych działań, aby skorzystać z R8. Ponieważ jednak jest to inna technologia niż ProGuard, która została opracowana specjalnie na potrzeby projektów na Androida, pomniejszenie i optymalizacja może spowodować usunięcie kodu, którego ProGuard może nie. W tej mało prawdopodobnej sytuacji konieczne może być dodanie kolejnych reguł, aby zachować ten kod w danych wyjściowych kompilacji.

    Jeśli masz problemy z R8, przeczytaj Najczęstsze pytania na temat zgodności z R8, aby sprawdzić, czy można tam znaleźć rozwiązanie. Jeśli rozwiązania nie ma w dokumentacji, 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 przypadku danego typu kompilacji ustawisz useProguard na false w pliku build.gradle modułu aplikacji, wtyczka Androida do obsługi Gradle użyje R8 do zmniejszania kodu aplikacji pod kątem tego typu kompilacji niezależnie od tego, czy wyłączysz R8 w pliku gradle.properties projektu.

    • Usługa ndkCompile została wycofana: jeśli spróbujesz użyć języka ndkBuild do skompilowania bibliotek natywnych, wystąpi błąd kompilacji. Aby dodać do projektu kod C i C++, użyj CMake lub ndk-build.

    Znane problemy

    • Prawidłowe użycie unikalnych nazw pakietów nie jest obecnie wymuszane, ale w nowszych wersjach wtyczki będzie bardziej rygorystyczne. We wtyczce do obsługi Gradle na Androida w wersji 3.4.0 możesz włączyć funkcję sprawdzania, czy Twój projekt określa dopuszczalne nazwy pakietów. Aby to zrobić, dodaj poniższy wiersz do pliku gradle.properties.

                android.uniquePackageNames = true
                
              

      Więcej informacji o ustawianiu nazwy pakietu za pomocą wtyczki Androida do obsługi Gradle znajdziesz w artykule Ustawianie identyfikatora aplikacji.

    3.3.0 (styczeń 2019 r.)

    Ta wersja wtyczki na Androida wymaga:

    3.3.3 (lipiec 2020 r.)

    Ta drobna aktualizacja zapewnia zgodność z nowymi domyślnymi ustawieniami i funkcjami widoczności pakietów w Androidzie 11.

    Szczegóły znajdziesz w informacjach o wersji 4.0.1.

    3.3.2 (marzec 2019 r.)

    Ta drobna aktualizacja obsługuje Androida Studio w wersji 3.3.2 i zawiera różne poprawki błędów oraz ulepszenia wydajności. Listę istotnych poprawek błędów znajdziesz w odpowiednim poście na blogu o aktualizacjach wersji.

    3.3.1 (luty 2019 r.)

    Ta drobna aktualizacja obsługuje Androida Studio w wersji 3.3.1 i zawiera różne poprawki błędów oraz ulepszenia wydajności.

    Nowe funkcje

    • Ulepszona synchronizacja ścieżki klasy: podczas rozwiązywania zależności od środowiska wykonawczego i kompilowania ścieżek klasy czasowych wtyczka Androida do obsługi Gradle próbuje rozwiązać określone konflikty kolejnych wersji w odniesieniu do zależności, które występują w wielu ścieżkach klas.

      Jeśli na przykład ścieżka klasy w środowisku wykonawczym zawiera bibliotekę A w wersji 2.0, a ścieżka klasyowa kompilacji zawiera bibliotekę A w wersji 1.0, wtyczka automatycznie zaktualizuje zależność od ścieżki klasy kompilowania do biblioteki A w wersji 2.0, aby uniknąć błędów.

      Jeśli jednak ścieżka klasy w środowisku wykonawczym zawiera bibliotekę A w wersji 1.0, a kompilacja zawiera bibliotekę A w wersji 2.0, wtyczka nie obniży zależności ze ścieżki klasy kompilowania do wersji 1.0 biblioteki A i wystąpi błąd. Więcej informacji znajdziesz w artykule o rozwiązywaniu konfliktów między ścieżkami klas.

    • Ulepszona przyrostowa kompilacja Javy w przypadku korzystania z procesorów adnotacji: ta aktualizacja skraca czas kompilacji przez ulepszenie obsługi przyrostowej kompilacji Java w przypadku procesorów adnotacji.

      Uwaga: ta funkcja jest zgodna z Gradle w wersji 4.10.1 i nowszych z wyjątkiem Gradle 5.1 z powodu problemu 8194 Gradle.

      • W projektach korzystających z Kapt (większość projektów obejmujących tylko Kotlin i projektów hybrydowych Kotlin-Java): włączona jest przyrostowa kompilacja w języku Java, nawet jeśli używasz wiązania danych lub wtyczki retro-lambda. Przetwarzanie adnotacji przez zadanie Kapt nie jest jeszcze przyrostowe.

      • W przypadku projektów, które nie korzystają z Kapt (projekty działające tylko w języku Java): jeśli procesory adnotacji, których używasz, obsługują przyrostowe przetwarzanie adnotacji, domyślnie włączona jest przyrostowa kompilacja w języku Java. Aby monitorować przyrostowe rozpowszechnienie procesora adnotacji, obejrzyj problem 5277 z Gradle.

        Jeśli jednak co najmniej 1 procesor adnotacji nie obsługuje kompilacji przyrostowych, przyrostowa kompilacja w Javie nie jest włączona. Zamiast tego możesz umieścić w pliku gradle.properties tę flagę:

        android.enableSeparateAnnotationProcessing=true
                    

        Jeśli dodasz tę flagę, wtyczka Androida do obsługi Gradle uruchamia procesory adnotacji w osobnym zadaniu i umożliwia stopniowe uruchamianie zadania kompilacji w języku Java.

    • Lepsze informacje na potrzeby debugowania przy korzystaniu z przestarzałego interfejsu API: gdy wtyczka wykryje, że używasz interfejsu API, który nie jest już obsługiwany, może podać bardziej szczegółowe informacje, które pomogą Ci określić, gdzie jest używany ten interfejs API. Aby wyświetlić dodatkowe informacje, musisz umieścić te dane w pliku gradle.properties swojego projektu:

                android.debug.obsoleteApi=true
              

      Możesz też włączyć tę flagę, przekazując -Pandroid.debug.obsoleteApi=true z wiersza poleceń.

    • Testy z instrumentacją możesz przeprowadzać na modułach funkcji z poziomu wiersza poleceń.

    Zmiany w działaniu

    • Lenina konfiguracja zadań: wtyczka korzysta teraz z nowego interfejsu Gradle interfejsu API do tworzenia zadań, aby uniknąć inicjowania i konfigurowania zadań, które nie są wymagane do ukończenia bieżącej kompilacji (lub zadań, których nie ma na wykresie zadań wykonania). Jeśli na przykład masz wiele wariantów kompilacji, takich jak „wersja” i „debugowanie”, i tworzysz wersję do debugowania, wtyczka unika inicjowania i konfigurowania zadań na potrzeby wersji „wersja”.

      Wywołanie niektórych starszych metod w interfejsie Variants API, takich jak variant.getJavaCompile(), nadal może wymuszać konfigurację zadań. Aby mieć pewność, że kompilacja jest zoptymalizowana pod kątem konfiguracji leniwego zadania, wywołaj nowe metody, które zamiast tego zwracają obiekt TaskProvider, taki jak variant.getJavaCompileProvider().

      Jeśli wykonujesz niestandardowe zadania kompilacji, dowiedz się, jak zastosować się do nowego interfejsu API tworzenia zadań dla Gradle.

    • W przypadku danego typu kompilacji podczas ustawiania useProguard false wtyczka używa teraz R8 zamiast ProGuard, by zmniejszać i zaciemniać kod oraz zasoby aplikacji. Więcej informacji o R8 znajdziesz w tym poście na blogu na blogu dla deweloperów aplikacji na Androida.

    • Szybsze generowanie klas R w projektach bibliotek: wcześniej wtyczka Androida Gradle generowała plik R.java dla każdej zależności projektu, a następnie kompilował te klasy R z innymi klasami aplikacji. Wtyczka generuje teraz bezpośrednio plik JAR zawierający skompilowaną klasę R aplikacji bez konieczności uprzedniego tworzenia pośrednich klas R.java. Ta optymalizacja może znacznie zwiększyć wydajność kompilacji w przypadku projektów, które zawierają wiele podprojektów i zależności biblioteki, oraz przyspieszyć indeksowanie w Android Studio.

    • Gdy tworzysz pakiet Android App Bundle, pliki APK wygenerowane z tego pakietu, który jest kierowany na Androida 6.0 (poziom interfejsu API 23) lub nowszego, domyślnie zawierają nieskompresowane wersje bibliotek natywnych. Dzięki tej optymalizacji urządzenie nie będzie tworzyło kopii biblioteki, a tym samym zmniejsza rozmiar aplikacji na dysku. Jeśli wolisz wyłączyć tę optymalizację, dodaj do pliku gradle.properties ten fragment:

      android.bundle.enableUncompressedNativeLibs = false
              
    • Wtyczka wymusza stosowanie minimalnych wersji niektórych wtyczek innych firm.

    • Synchronizacja projektu z jednym wariantem: zsynchronizowanie projektu z konfiguracją kompilacji jest ważnym krokiem pozwalającym Android Studio zrozumieć strukturę projektu. W przypadku dużych projektów ten proces może być jednak czasochłonny. Jeśli Twój projekt korzysta z kilku wariantów kompilacji, możesz teraz zoptymalizować synchronizacje projektów, ograniczając je tylko do obecnie wybranego wariantu.

      Aby włączyć tę optymalizację, musisz używać Androida Studio w wersji 3.3 lub nowszej z wtyczką Androida do obsługi Gradle w wersji 3.3.0 lub nowszej. Jeśli spełniasz te wymagania, IDE poprosi o włączenie tej optymalizacji podczas synchronizowania projektu. Optymalizacja jest też domyślnie włączona w nowych projektach.

      Aby ręcznie włączyć tę optymalizację, kliknij Plik > Ustawienia > Eksperymentalne > Gradle (Android Studio > Ustawienia > Eksperymentalne > Gradle na Macu) i zaznacz pole wyboru Synchronizuj tylko aktywny wariant.

      Uwaga: ta optymalizacja w pełni obsługuje projekty, które zawierają języki Java i C++, a także obsługuje Kotlin. Po włączeniu optymalizacji w projektach z treścią Kotlin funkcja synchronizacji Gradle wraca do wewnętrznego korzystania z pełnych wariantów.

    • Automatyczne pobieranie brakujących pakietów SDK: ta funkcja została rozszerzona o obsługę NDK. Więcej informacji znajdziesz w artykule o automatycznym pobieraniu brakujących pakietów za pomocą Gradle.

    Poprawki błędów.

    • Wtyczka Androida do obsługi Gradle w wersji 3.3.0 rozwiązuje te problemy:

      • Proces kompilacji wywołujący metodę android.support.v8.renderscript.RenderScript zamiast wersji AndroidX mimo włączonego Jetifier
      • Przerywniki spowodowane przez: androidx-rs.jar, w tym statycznie połączone: annotation.AnyRes
      • Gdy używasz RenderScriptu, nie musisz już ręcznie ustawiać wersji narzędzi do kompilacji w plikach build.gradle

    3.2.0 (wrzesień 2018 r.)

    Ta wersja wtyczki na Androida wymaga:

    3.2.1 (październik 2018 r.)

    Dzięki tej aktualizacji nie musisz już określać wersji narzędzi do kompilacji pakietu SDK. Wtyczka Androida do obsługi Gradle korzysta teraz domyślnie z wersji 28.0.3.

    Nowe funkcje

    • Obsługa tworzenia pakietów Android App Bundle: pakiet aplikacji to nowy format przesyłania, który obejmuje cały skompilowany kod i zasoby aplikacji oraz opóźnia generowanie plików APK i podpisywanie ich w Sklepie Google Play. Nie musisz już tworzyć i podpisywać wielu plików APK ani nimi zarządzać, a użytkownicy będą otrzymywać mniejsze pliki do pobrania zoptymalizowane pod kątem ich urządzeń. Więcej informacji znajdziesz w artykule Informacje o pakietach Android App Bundle.

    • Obsługa przyrostowych szybkości kompilacji w przypadku procesorów adnotacji: AnnotationProcessorOptions DSL rozszerza teraz zakres CommandLineArgumentProvider, co umożliwia Tobie lub autorowi procesora adnotacji dodawanie adnotacji do argumentów procesora za pomocą adnotacji typu właściwości kompilacji przyrostowej. Użycie tych adnotacji zwiększa prawidłowość i wydajność przyrostowych i czystych kompilacji w pamięci podręcznej. Więcej informacji znajdziesz w artykule Przekazywanie argumentów do procesorów adnotacji.

    • Narzędzie do migracji na AndroidaX: jeśli używasz wtyczki Androida do obsługi Gradle w wersji 3.2.0 z Androidem 3.2 lub nowszym, możesz przenieść zależności lokalne projektu i zależności Maven, aby używać nowych bibliotek AndroidaX. Aby to zrobić, wybierz z paska menu Refaktor > Przeprowadź migrację na AndroidaX. Przy użyciu tego narzędzia do migracji ustawia też w pliku gradle.properties te flagi na true:

      • android.useAndroidX: gdy ustawiona jest wartość true, wtyczka do Androida używa odpowiedniej biblioteki AndroidX, a nie biblioteki pomocy. Jeśli ta flaga nie jest określona, wtyczka ustawia ją domyślnie na false.

      • android.enableJetifier: gdy ustawiona jest wartość true, wtyczka na Androida automatycznie przenosi istniejące biblioteki innych firm do AndroidaX przez przepisanie ich plików binarnych. Jeśli ta flaga nie jest określona, wtyczka ustawia ją domyślnie na false. Możesz ustawić tę flagę na true tylko wtedy, gdy android.useAndroidX ma też wartość true. W przeciwnym razie wystąpi błąd kompilacji.

        Aby dowiedzieć się więcej, przeczytaj omówienie AndroidaX.

    • Nowy skrót kodu, R8: R8 to nowe narzędzie do zmniejszania i zaciemniania kodu, które zastępuje ProGuard. Aby zacząć korzystać z wersji testowej R8, umieść ten kod w pliku gradle.properties projektu:

              android.enableR8 = true
              
              android.enableR8 = true
              

    Zmiany w działaniu

    • Usuwanie cukru za pomocą D8 jest teraz domyślnie włączone.

    • AAPT2 jest już w repozytorium Google Maven. Aby użyć AAPT2, sprawdź, czy w pliku build.gradle znajduje się zależność google(), 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()
                  }
                
    • Natywna funkcja multidex jest teraz domyślnie włączona. Poprzednie wersje Android Studio korzystały z natywnej funkcji multidex podczas wdrażania aplikacji do debugowania na urządzeniu z interfejsem Android API na poziomie 21 lub wyższym. Teraz, niezależnie od tego, czy wdrażasz na urządzeniu, czy tworzysz pakiet APK dla wersji, wtyczka Androida do obsługi Gradle obsługuje natywny multidex dla wszystkich modułów, które mają ustawiony minSdkVersion=21 lub wyższy.

    • Wtyczka wymusza teraz minimalną wersję wtyczek protobuf (0.8.6), Kotlin (1.2.50) i Crashlytics (1.25.4).

    • Przy określaniu nazwy modułu wtyczka modułu funkcji com.android.feature wymusza teraz używanie tylko liter, cyfr i podkreśleń. Jeśli na przykład nazwa modułu funkcji zawiera myślniki, wystąpi błąd kompilacji. Działa to tak samo jak w przypadku wtyczki funkcji dynamicznych.

    Poprawki błędów

    • W projektach z wiązaniem danych można teraz buforować dane za pomocą języka JavaCompile. (Numer 69243050)
    • Lepsze unikanie w przypadku modułów biblioteki z powiązaniem danych. (Numer 77539932)
    • Możesz teraz ponownie włączyć ustawienie konfiguracji na żądanie, jeśli zostało wyłączone we wcześniejszych wersjach z powodu nieprzewidywalnych błędów kompilacji. (Numer 77910727)

    3.1.0 (marzec 2018 r.)

    Ta wersja wtyczki na Androida wymaga:

    Nowy kompilator DEX, D8

    Domyślnie Android Studio używa teraz nowego kompilatora DEX o nazwie D8. Kompilacja plików DEX to proces przekształcania kodu bajtowego .class na kod bajtowy .dex środowiska wykonawczego Androida (lub Dalvik w przypadku starszych wersji Androida). W porównaniu z poprzednim kompilatorem (DX) D8 kompiluje szybciej i generuje mniejsze pliki DEX przy zachowaniu takiej samej lub lepszej wydajności w czasie działania aplikacji.

    Platforma D8 nie powinna zmieniać Twojego codziennego procesu tworzenia aplikacji. Jeśli jednak napotkasz problemy związane z nowym kompilatorem, zgłoś błąd. Możesz tymczasowo wyłączyć D8 i używać trybu DX, umieszczając te dane w pliku gradle.properties projektu:

          android.enableD8=false
        

    W projektach, w których korzystasz z funkcji języka Java 8, odpalanie przyrostowe jest domyślnie włączone. Możesz ją wyłączyć, określając te elementy w pliku gradle.properties projektu:

          android.enableIncrementalDesugaring=false.
        

    Podgląd użytkowników: jeśli korzystasz już z wersji testowej D8, pamiętaj, że teraz kompiluje się ona z bibliotekami zawartymi w narzędziach do kompilacji SDK, a nie z pakietem JDK. Jeśli więc uzyskujesz dostęp do interfejsów API, które istnieją w JDK, ale nie ma ich w bibliotekach narzędzi do kompilacji SDK, wystąpi błąd kompilacji.

    Zmiany w działaniu

    • Gdy tworzysz wiele plików APK, z których każdy jest kierowany na inny interfejs ABI, usługa nie generuje już domyślnie plików APK dla tych interfejsów ABI: mips, mips64 i armeabi.

      Jeśli chcesz tworzyć pliki APK kierowane na te interfejsy ABI, musisz użyć NDK r16b lub starszego i określić interfejsy ABI w pliku build.gradle w sposób pokazany poniżej:

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • Pamięć podręczna kompilacji wtyczki do Androida usuwa teraz wpisy z pamięci podręcznej starsze niż 30 dni.

    • Przekazywanie "auto" do resConfig nie powoduje już automatycznego wyboru zasobów w postaci ciągów tekstowych do spakowania do pliku APK. Jeśli nadal będziesz używać "auto", wtyczka spowoduje pakiet ze wszystkimi zasobami tekstowymi udostępnianymi przez aplikację i jej zależności. Musisz więc określić wszystkie języki, które wtyczka ma spakować do pliku APK.

    • Moduły lokalne nie mogą zależeć od testowego pakietu APK aplikacji, dlatego dodanie zależności do testów instrumentowanych za pomocą konfiguracji androidTestApi zamiast androidTestImplementation powoduje, że Gradle wyświetla to ostrzeżenie:

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    Poprawki

    • Rozwiązaliśmy problem, który powodował, że Android Studio nie rozpoznaje prawidłowo zależności w kompilacjach złożonych.
    • Rozwiązaliśmy problem, który powodował, że podczas wielokrotnego wczytywania wtyczki na Androida w jednej kompilacji występował błąd synchronizacji projektu, np. gdy wiele podprojektów zawierało wtyczkę na Androida w ścieżce klasy buildscript.

    3.0.0 (październik 2017 r.)

    Wtyczka Androida do obsługi Gradle w wersji 3.0.0 zawiera różne zmiany, które mają na celu rozwiązanie problemów z wydajnością dużych projektów.

    Na przykład w przykładowym projekcie szkieletowym obejmującym ok. 130 modułów i dużą liczbą zależności zewnętrznych (ale bez kodu ani zasobów) możesz zauważyć wzrost wydajności podobny do tych poniżej:

    Wersja wtyczki na Androida + wersja Gradle Wtyczka do Androida 2.2.0 + Gradle 2.14.1 Wtyczka do Androida 2.3.0 + Gradle 3.3 Wtyczka do Androida 3.0.0 + Gradle 4.1
    Konfiguracja (np. uruchomienie programu ./gradlew --help) ~2 min ~9 s ~2,5 s
    Zmiana w Javie w jednym wierszu (zmiana implementacji) ~2 min 15 s ~29 s ~6,4 s

    Niektóre z tych zmian zakłócają działanie istniejących kompilacji. Dlatego przed użyciem nowej wtyczki warto rozważyć przeprowadzenie migracji projektu.

    Jeśli nie widzisz ulepszeń w zakresie wydajności opisanych powyżej, zgłoś błąd i dołącz ślad kompilacji za pomocą programu profilującego Gradle.

    Ta wersja wtyczki na Androida wymaga:

    3.0.1 (listopad 2017 r.)

    To jest drobna aktualizacja obsługi Androida Studio w wersji 3.0.1. Zawiera ona ogólne poprawki błędów i ulepszenia w zakresie wydajności.

    Optymalizacje

    • Większa równoległość w przypadku projektów z wieloma modułami za pomocą szczegółowego grafu zadań.
    • Gdy wprowadzasz zmiany w zależności, Gradle szybciej wykonuje kompilacje, ponieważ nie kompiluje ponownie modułów, które nie mają dostępu do interfejsu API tej zależności. Aby określić, które zależności przekazują ich interfejsy API do innych modułów, użyj nowych konfiguracji zależności w Gradle: implementation, api, compileOnly i runtimeOnly.
    • Szybsza przyrostowa szybkość kompilacji dzięki odciąganiu od poszczególnych klas. Każda klasa jest teraz kompilowana w osobne pliki DEX i ponownie dedeksowana jest tylko zmodyfikowane klasy. Przyspieszenie kompilacji dotyczy też aplikacji, które mają w polu minSdkVersion wartość 20 lub mniej i używają starszej wersji multi-dex.
    • Przyspieszenie kompilacji przez optymalizację niektórych zadań pod kątem użycia uporządkowanych danych wyjściowych. Aby skorzystać z tej optymalizacji, musisz najpierw włączyć pamięć podręczną kompilacji Gradle.
    • Ulepszone przyrostowe przetwarzanie zasobów za pomocą AAPT2, które jest teraz domyślnie włączone. Jeśli podczas korzystania z AAPT2 wystąpią problemy, zgłoś błąd. Aby wyłączyć AAPT2, możesz też ustawić android.enableAapt2=false w pliku gradle.properties i ponownie uruchomić demona Gradle, uruchamiając polecenie ./gradlew --stop z poziomu wiersza poleceń.

    Nowe funkcje

    • Zarządzanie zależnościami z uwzględnieniem wariantów. Podczas tworzenia określonego wariantu modułu wtyczka automatycznie dopasowuje teraz warianty zależności modułu biblioteki lokalnej do wybranego wariantu.
    • Zawiera nową wtyczkę modułu funkcji do obsługi aplikacji błyskawicznych na Androida oraz pakiet SDK aplikacji błyskawicznych na Androida (który można pobrać za pomocą menedżera pakietów SDK). Więcej informacji o tworzeniu modułów funkcji za pomocą nowej wtyczki znajdziesz w artykule Struktura aplikacji błyskawicznej z wieloma funkcjami.
    • Wbudowana obsługa niektórych funkcji języka Java 8 i bibliotek Java 8. Jack został wycofany i nie jest już wymagany. Wyłącz go, aby korzystać z ulepszonej obsługi języka Java 8 wbudowanej w domyślny łańcuch narzędzi. Więcej informacji znajdziesz w artykule o korzystaniu z funkcji języka Java 8.
    • Dodaliśmy obsługę uruchamiania testów za pomocą narzędzia Android Test Orchestrator, które pozwala uruchamiać każdy test aplikacji z użyciem własnego wywołania narzędzi. Każdy test działa we własnej instancji narzędzi, więc współdzielone stany między testami nie są gromadzone na procesorach ani w pamięci urządzenia. Nawet jeśli jeden test ulegnie awarii, usuwa tylko własną instancję narzędzi, więc pozostałe testy wciąż działają.

      • Dodano testOptions.execution, aby określić, czy należy korzystać z administracji testów na urządzeniu. Jeśli chcesz użyć Android Test Orchestrator, musisz określić ANDROID_TEST_ORCHESTRATOR, jak pokazano poniżej. Domyślnie ta właściwość jest ustawiona na HOST, co wyłącza administrację na urządzeniu i jest standardową metodą przeprowadzania testów.

      Odlotowy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Nowa konfiguracja zależności androidTestUtil umożliwia zainstalowanie kolejnego pomocniczego pakietu APK przed uruchomieniem testów z instrumentacją, np. Android Test Orchestrator:

      Odlotowy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Dodano testOptions.unitTests.includeAndroidResources, aby umożliwić testy jednostkowe, które wymagają zasobów Androida, takich jak RoboElectric. Gdy ustawisz tę właściwość na true, wtyczka będzie scalać zasoby, zasoby i pliki manifestu przed uruchomieniem testów jednostkowych. Testy mogą następnie sprawdzić com/android/tools/test_config.properties w ścieżce klasy pod kątem tych kluczy:

      • android_merged_assets: ścieżka bezwzględna do katalogu scalonych zasobów.

        Uwaga: w przypadku modułów biblioteki scalone zasoby nie zawierają zasobów zależności (patrz numer problemu 65550419).

      • android_merged_manifest: ścieżka bezwzględna do scalonego pliku manifestu.

      • android_merged_resources: ścieżka bezwzględna do scalonego katalogu zasobów, który zawiera wszystkie zasoby z modułu i wszystkie jego zależności.

      • android_custom_package: nazwa pakietu ostatniej klasy R. Jeśli dynamicznie zmieniasz identyfikator aplikacji, ta nazwa pakietu może nie odpowiadać atrybutowi package w pliku manifestu aplikacji.

    • Obsługa czcionek jako zasobów (co jest nową funkcją wprowadzoną w Androidzie 8.0 (poziom interfejsu API 26)).
    • Obsługa plików APK w określonych językach dzięki pakietowi SDK do aplikacji błyskawicznych na Androida w wersji 1.1 lub nowszej.
    • Możesz teraz zmienić katalog wyjściowy zewnętrznego natywnego projektu kompilacji, jak pokazano poniżej:

      Odlotowy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Teraz podczas tworzenia projektów natywnych w Android Studio możesz używać CMake w wersji 3.7 lub nowszej.
    • Nowa konfiguracja zależności lintChecks umożliwia utworzenie pliku JAR, który definiuje niestandardowe reguły lintowania, i spakowanie go do projektów AAR i plików APK.

      Twoje niestandardowe reguły lintowania muszą należeć do osobnego projektu, który generuje jeden plik JAR i zawiera tylko zależności compileOnly. Inne moduły aplikacji i biblioteki mogą zależeć od Twojego projektu lintowego za pomocą konfiguracji lintChecks:

      Odlotowy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Zmiany w działaniu

    • Wtyczka do Androida w wersji 3.0.0 usuwa niektóre interfejsy API, a jeśli ich użyjesz, kompilacja nie będzie działać. Na przykład nie możesz już korzystać z interfejsu Variants API, aby uzyskać dostęp do obiektów outputFile(), ani używać processManifest.manifestOutputFile() do pobierania pliku manifestu dla każdego wariantu. Więcej informacji znajdziesz w artykule o zmianach w interfejsie API.
    • Nie musisz już określać wersji narzędzi do kompilacji (możesz teraz usunąć właściwość android.buildToolsVersion). Domyślnie wtyczka automatycznie używa minimalnej wymaganej wersji narzędzi do kompilacji w przypadku tej wersji wtyczki do Androida, której używasz.
    • Teraz w bloku buildTypes włączasz lub wyłączasz sznurek PNG, jak pokazano poniżej. Tworzenie plików PNG jest domyślnie włączone dla wszystkich kompilacji oprócz tych do debugowania, ponieważ wydłuża czas kompilacji w przypadku projektów, które zawierają wiele plików PNG. Aby więc skrócić czas kompilacji innych typów kompilacji, wyłącz przechwytywanie plików PNG lub przekonwertuj obrazy do formatu WebP.

      Odlotowy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Wtyczka na Androida automatycznie kompiluje teraz wykonywalne cele, które skonfigurujesz w zewnętrznych projektach CMake.
    • Teraz musisz dodać procesory adnotacji do ścieżki klasy procesora za pomocą konfiguracji zależności annotationProcessor.
    • Korzystanie z wycofanej wersji ndkCompile jest teraz bardziej ograniczone. Zamiast tego użyj CMake lub ndk-build, by skompilować kod natywny, który chcesz spakować do pliku APK. Więcej informacji znajdziesz w artykule o migracji z ndkbuild (w języku angielskim).

    3.0.0 (październik 2017 r.)

    Wtyczka Androida do obsługi Gradle w wersji 3.0.0 zawiera różne zmiany, które mają na celu rozwiązanie problemów z wydajnością dużych projektów.

    Na przykład w przykładowym projekcie szkieletowym obejmującym ok. 130 modułów i dużą liczbą zależności zewnętrznych (ale bez kodu ani zasobów) możesz zauważyć wzrost wydajności podobny do tych poniżej:

    Wersja wtyczki na Androida + wersja Gradle Wtyczka do Androida 2.2.0 + Gradle 2.14.1 Wtyczka do Androida 2.3.0 + Gradle 3.3 Wtyczka do Androida 3.0.0 + Gradle 4.1
    Konfiguracja (np. uruchomienie programu ./gradlew --help) ~2 min ~9 s ~2,5 s
    Zmiana w Javie w jednym wierszu (zmiana implementacji) ~2 min 15 s ~29 s ~6,4 s

    Niektóre z tych zmian zakłócają działanie istniejących kompilacji. Dlatego przed użyciem nowej wtyczki warto rozważyć przeprowadzenie migracji projektu.

    Jeśli nie widzisz ulepszeń w zakresie wydajności opisanych powyżej, zgłoś błąd i dołącz ślad kompilacji za pomocą programu profilującego Gradle.

    Ta wersja wtyczki na Androida wymaga:

    3.0.1 (listopad 2017 r.)

    To jest drobna aktualizacja obsługi Androida Studio w wersji 3.0.1. Zawiera ona ogólne poprawki błędów i ulepszenia w zakresie wydajności.

    Optymalizacje

    • Większa równoległość w przypadku projektów z wieloma modułami za pomocą szczegółowego grafu zadań.
    • Gdy wprowadzasz zmiany w zależności, Gradle szybciej wykonuje kompilacje, ponieważ nie kompiluje ponownie modułów, które nie mają dostępu do interfejsu API tej zależności. Aby określić, które zależności przekazują ich interfejsy API do innych modułów, użyj nowych konfiguracji zależności w Gradle: implementation, api, compileOnly i runtimeOnly.
    • Szybsza przyrostowa szybkość kompilacji dzięki odciąganiu od poszczególnych klas. Każda klasa jest teraz kompilowana w osobne pliki DEX i ponownie dedeksowana jest tylko zmodyfikowane klasy. Przyspieszenie kompilacji dotyczy też aplikacji, które mają w polu minSdkVersion wartość 20 lub mniej i używają starszej wersji multi-dex.
    • Przyspieszenie kompilacji przez optymalizację niektórych zadań pod kątem użycia uporządkowanych danych wyjściowych. Aby skorzystać z tej optymalizacji, musisz najpierw włączyć pamięć podręczną kompilacji Gradle.
    • Ulepszone przyrostowe przetwarzanie zasobów za pomocą AAPT2, które jest teraz domyślnie włączone. Jeśli podczas korzystania z AAPT2 wystąpią problemy, zgłoś błąd. Aby wyłączyć AAPT2, możesz też ustawić android.enableAapt2=false w pliku gradle.properties i ponownie uruchomić demona Gradle, uruchamiając polecenie ./gradlew --stop z poziomu wiersza poleceń.

    Nowe funkcje

    • Zarządzanie zależnościami z uwzględnieniem wariantów. Podczas tworzenia określonego wariantu modułu wtyczka automatycznie dopasowuje teraz warianty zależności modułu biblioteki lokalnej do wybranego wariantu.
    • Zawiera nową wtyczkę modułu funkcji do obsługi aplikacji błyskawicznych na Androida oraz pakiet SDK aplikacji błyskawicznych na Androida (który można pobrać za pomocą menedżera pakietów SDK). Więcej informacji o tworzeniu modułów funkcji za pomocą nowej wtyczki znajdziesz w artykule Struktura aplikacji błyskawicznej z wieloma funkcjami.
    • Wbudowana obsługa niektórych funkcji języka Java 8 i bibliotek Java 8. Jack został wycofany i nie jest już wymagany. Wyłącz go, aby korzystać z ulepszonej obsługi języka Java 8 wbudowanej w domyślny łańcuch narzędzi. Więcej informacji znajdziesz w artykule o korzystaniu z funkcji języka Java 8.
    • Dodaliśmy obsługę uruchamiania testów za pomocą narzędzia Android Test Orchestrator, które pozwala uruchamiać każdy test aplikacji z użyciem własnego wywołania narzędzi. Każdy test działa we własnej instancji narzędzi, więc współdzielone stany między testami nie są gromadzone na procesorach ani w pamięci urządzenia. Nawet jeśli jeden test ulegnie awarii, usuwa tylko własną instancję narzędzi, więc pozostałe testy wciąż działają.

      • Dodano testOptions.execution, aby określić, czy należy korzystać z administracji testów na urządzeniu. Jeśli chcesz użyć Android Test Orchestrator, musisz określić ANDROID_TEST_ORCHESTRATOR, jak pokazano poniżej. Domyślnie ta właściwość jest ustawiona na HOST, co wyłącza administrację na urządzeniu i jest standardową metodą przeprowadzania testów.

      Odlotowy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • Nowa konfiguracja zależności androidTestUtil umożliwia zainstalowanie kolejnego pomocniczego pakietu APK przed uruchomieniem testów z instrumentacją, np. Android Test Orchestrator:

      Odlotowy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Dodano testOptions.unitTests.includeAndroidResources, aby umożliwić testy jednostkowe, które wymagają zasobów Androida, takich jak RoboElectric. Gdy ustawisz tę właściwość na true, wtyczka będzie scalać zasoby, zasoby i pliki manifestu przed uruchomieniem testów jednostkowych. Testy mogą następnie sprawdzić com/android/tools/test_config.properties w ścieżce klasy pod kątem tych kluczy:

      • android_merged_assets: ścieżka bezwzględna do katalogu scalonych zasobów.

        Uwaga: w przypadku modułów biblioteki scalone zasoby nie zawierają zasobów zależności (patrz numer problemu 65550419).

      • android_merged_manifest: ścieżka bezwzględna do scalonego pliku manifestu.

      • android_merged_resources: ścieżka bezwzględna do scalonego katalogu zasobów, który zawiera wszystkie zasoby z modułu i wszystkie jego zależności.

      • android_custom_package: nazwa pakietu ostatniej klasy R. Jeśli dynamicznie zmieniasz identyfikator aplikacji, ta nazwa pakietu może nie odpowiadać atrybutowi package w pliku manifestu aplikacji.

    • Obsługa czcionek jako zasobów (co jest nową funkcją wprowadzoną w Androidzie 8.0 (poziom interfejsu API 26)).
    • Obsługa plików APK w określonych językach dzięki pakietowi SDK do aplikacji błyskawicznych na Androida w wersji 1.1 lub nowszej.
    • Możesz teraz zmienić katalog wyjściowy zewnętrznego natywnego projektu kompilacji, jak pokazano poniżej:

      Odlotowy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Teraz podczas tworzenia projektów natywnych w Android Studio możesz używać CMake w wersji 3.7 lub nowszej.
    • Nowa konfiguracja zależności lintChecks umożliwia utworzenie pliku JAR, który definiuje niestandardowe reguły lintowania, i spakowanie go do projektów AAR i plików APK.

      Twoje niestandardowe reguły lintowania muszą należeć do osobnego projektu, który generuje jeden plik JAR i zawiera tylko zależności compileOnly. Inne moduły aplikacji i biblioteki mogą zależeć od Twojego projektu lintowego za pomocą konfiguracji lintChecks:

      Odlotowy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Zmiany w działaniu

    • Wtyczka do Androida w wersji 3.0.0 usuwa niektóre interfejsy API, a jeśli ich użyjesz, kompilacja nie będzie działać. Na przykład nie możesz już korzystać z interfejsu Variants API, aby uzyskać dostęp do obiektów outputFile(), ani używać processManifest.manifestOutputFile() do pobierania pliku manifestu dla każdego wariantu. Więcej informacji znajdziesz w artykule o zmianach w interfejsie API.
    • Nie musisz już określać wersji narzędzi do kompilacji (możesz teraz usunąć właściwość android.buildToolsVersion). Domyślnie wtyczka automatycznie używa minimalnej wymaganej wersji narzędzi do kompilacji w przypadku tej wersji wtyczki do Androida, której używasz.
    • Teraz w bloku buildTypes włączasz lub wyłączasz sznurek PNG, jak pokazano poniżej. Tworzenie plików PNG jest domyślnie włączone dla wszystkich kompilacji oprócz tych do debugowania, ponieważ wydłuża czas kompilacji w przypadku projektów, które zawierają wiele plików PNG. Aby więc skrócić czas kompilacji innych typów kompilacji, wyłącz przechwytywanie plików PNG lub przekonwertuj obrazy do formatu WebP.

      Odlotowy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Wtyczka na Androida automatycznie kompiluje teraz wykonywalne cele, które skonfigurujesz w zewnętrznych projektach CMake.
    • Teraz musisz dodać procesory adnotacji do ścieżki klasy procesora za pomocą konfiguracji zależności annotationProcessor.
    • Korzystanie z wycofanej wersji ndkCompile jest teraz bardziej ograniczone. Zamiast tego użyj CMake lub ndk-build, by skompilować kod natywny, który chcesz spakować do pliku APK. Więcej informacji znajdziesz w artykule o migracji z ndkbuild (w języku angielskim).

    2.3.0 (luty 2017 r.)

    2.3.3 (czerwiec 2017 r.)

    To drobna aktualizacja, która zwiększa zgodność z Androidem Studio 2.3.3.

    2.3.2 (maj 2017 r.)

    To drobna aktualizacja, która zwiększa zgodność z Androidem Studio 2.3.2.

    2.3.1 (kwiecień 2017 r.)

    To jest drobna aktualizacja wtyczki Androida do wersji 2.3.0, która rozwiązuje problem polegający na tym, że niektóre fizyczne urządzenia z Androidem nie działały prawidłowo z błyskawicznym uruchamianiem (patrz problem nr 235879).

    Zależności:
    Nowość:
    • Wykorzystuje Gradle 3.3, która zawiera ulepszenia w zakresie wydajności i nowe funkcje. Więcej informacji znajdziesz w informacjach o wersji Gradle.
    • Pamięć podręczna kompilacji: przechowuje pewne dane wyjściowe generowane przez wtyczkę do Androida podczas tworzenia projektu (np. niespakowane raporty AAR i wstępnie zdefiniowane zależności zdalne). Czyste kompilacje są znacznie szybsze podczas korzystania z pamięci podręcznej, ponieważ system kompilacji może je ponownie wykorzystywać podczas kolejnych kompilacji, zamiast je tworzyć. Projekty korzystające z wtyczki na Androida w wersji 2.3.0 lub nowszej domyślnie korzystają z pamięci podręcznej kompilacji. Więcej informacji znajdziesz w artykule o zwiększaniu szybkości kompilacji dzięki pamięci podręcznej kompilacji.
    Zmiany:

    2.2.0 (wrzesień 2016 r.)

    Zależności:
    Nowość:
    • Korzysta z Gradle 2.14.1, która zawiera ulepszenia w zakresie wydajności i nowe funkcje oraz eliminuje lukę w zabezpieczeniach, która umożliwia lokalne eskalację uprawnień podczas korzystania z demona Gradle. Więcej informacji znajdziesz w informacjach o wersji Gradle.
    • Korzystając z DSL externalNativeBuild {}, Gradle umożliwia teraz tworzenie połączeń ze źródłami natywnymi i kompilowanie bibliotek natywnych za pomocą CMake lub ndk-build. Po utworzeniu bibliotek natywnych Gradle zapakuje je do pliku APK. Więcej informacji o używaniu CMake i ndk-build w Gradle znajdziesz w artykule Dodawanie kodu C i C++ do projektu.
    • Gdy uruchamiasz kompilację z poziomu wiersza poleceń, Gradle próbuje teraz automatycznie pobrać brakujące komponenty lub aktualizacje pakietu SDK, od których zależy Twój projekt. Więcej informacji znajdziesz w artykule Automatyczne pobieranie brakujących pakietów za pomocą Gradle.
    • Nowa, eksperymentalna funkcja buforowania umożliwia Gradle przyspieszenie kompilacji przez wstępne deksowanie, przechowywanie i ponowne wykorzystywanie wstępnie przygotowanych wersji bibliotek. Więcej informacji o korzystaniu z tej eksperymentalnej funkcji znajdziesz w przewodniku Build Cache.
    • Zwiększa wydajność kompilacji przez przyjęcie nowego domyślnego potoku tworzenia pakietów, który zajmuje się kompresowaniem, podpisywaniem i wyrównywaniem ZIP w ramach jednego zadania. Aby wrócić do używania starszych narzędzi do tworzenia pakietów, dodaj android.useOldPackaging=true do pliku gradle.properties. Gdy korzystasz z nowego narzędzia do tworzenia pakietów, zadanie zipalignDebug jest niedostępne. Możesz jednak utworzyć go samodzielnie, wywołując metodę createZipAlignTask(String taskName, File inputFile, File outputFile).
    • Podpisywanie plików APK oprócz tradycyjnego podpisywania JAR używa teraz schematu podpisu pliku APK w wersji 2. Wszystkie platformy Androida akceptują wygenerowane pliki APK. Każda modyfikacja tych plików APK po podpisaniu powoduje unieważnienie ich podpisów w wersji 2 i uniemożliwienie instalacji na urządzeniu. Aby wyłączyć tę funkcję, dodaj ten fragment do pliku build.gradle na poziomie modułu:

      Odlotowy

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • W przypadku kompilacji multidex za pomocą reguł ProGuard możesz teraz określać, które klasy Gradle ma skompilować w głównym pliku DEX aplikacji. System Android najpierw wczytuje główny plik DEX przy uruchamianiu aplikacji, dlatego możesz nadać priorytet określonym klasom podczas uruchamiania, skompilując je w głównym pliku DEX. Gdy utworzysz plik konfiguracji ProGuard specjalnie dla głównego pliku DEX, przekaż ścieżkę pliku konfiguracji do Gradle za pomocą buildTypes.multiDexKeepProguard. Używanie tego DSL różni się od użycia buildTypes.proguardFiles, który udostępnia ogólne reguły ProGuard aplikacji i nie określa klas głównego pliku DEX.
    • Dodaje obsługę flagi android:extractNativeLibs, która może zmniejszać rozmiar aplikacji instalowanej na urządzeniu. Gdy ustawisz tę flagę na false w elemencie <application> pliku manifestu aplikacji, Gradle pakietuje nieskompresowane i dopasowane wersje bibliotek natywnych do Twojego pliku APK. Zapobiega to kopiowaniu przez PackageManager bibliotek natywnych z pliku APK do systemu plików urządzenia podczas instalacji, a dodatkową zaletą jest to, że aktualizacje delta aplikacji są mniejsze.
    • Teraz możesz określić versionNameSuffix i applicationIdSuffix dla smaków produktów. (Numer 59614)
    Zmiany:
    • getDefaultProguardFile zwraca teraz domyślne pliki ProGuard udostępniane przez wtyczkę do Androida dla Gradle i nie korzysta już z plików z pakietu Android SDK.
    • Ulepszona wydajność i funkcje kompilatora Jack:
      • Jack obsługuje teraz zasięg testu Jacoco przy ustawieniu testCoverageEnabled na true.
      • Ulepszona obsługa procesorów adnotacji. Procesory adnotacji w ścieżce klasy, takie jak zależności compile, są automatycznie stosowane do kompilacji. Procesor adnotacji możesz też określić w kompilacji i argumentach przekazywania, używając DSL javaCompileOptions.annotationProcessorOptions {} w pliku build.gradle na poziomie modułu:

        Odlotowy

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className 'com.example.MyProcessor'
                // Arguments are optional.
                arguments = [ foo : 'bar' ]
              }
            }
          }
        }
            

        Kotlin

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className = "com.example.MyProcessor"
                // Arguments are optional.
                arguments(mapOf(foo to "bar"))
              }
            }
          }
        }
            

        Jeśli chcesz zastosować procesor adnotacji podczas kompilacji, ale nie chcesz go uwzględnić w pliku APK, użyj zakresu zależności annotationProcessor:

        Odlotowy

        dependencies {
            compile 'com.google.dagger:dagger:2.0'
            annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            

        Kotlin

        dependencies {
            implementation("com.google.dagger:dagger:2.0")
            annotationProcessor("com.google.dagger:dagger-compiler:2.0")
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            
      • Aby wyświetlić listę parametrów, które można ustawić, uruchom to polecenie z wiersza poleceń:

        java -jar /build-tools/jack.jar --help-properties
        
      • Domyślnie, jeśli rozmiar stosu demona Gradle wynosi co najmniej 1,5 GB, Jack działa teraz w tym samym procesie co Gradle. Aby dostosować rozmiar stosu demonów, dodaj do pliku gradle.properties ten fragment:
        # This sets the daemon heap size to 1.5GB.
        org.gradle.jvmargs=-Xmx1536M
        

    2.1.0 (kwiecień 2016 r.)

    2.1.3 (sierpień 2016 r.)

    Ta aktualizacja wymaga Gradle w wersji 2.14.1 lub nowszej. Gradle 2.14.1 zawiera ulepszenia w zakresie wydajności, nowe funkcje i ważną poprawkę zabezpieczeń. Więcej informacji znajdziesz w informacjach o wersji Gradle.

    Zależności:
    Nowość:
    • Dodaliśmy obsługę wersji testowej N Developer Preview, JDK 8 i funkcji Java 8 korzystających z łańcucha narzędzi Jack. Więcej informacji znajdziesz w przewodniku N Preview.

      Uwaga: błyskawiczne uruchamianie nie działa obecnie z Jackem i zostanie wyłączone podczas korzystania z nowego łańcucha narzędzi. Jacka musisz używać tylko wtedy, gdy tworzysz wersję przedpremierową wersji N i chcesz używać obsługiwanych funkcji w języku Java 8.

    • Dodaliśmy domyślną obsługę przyrostowej kompilacji w języku Java, aby skrócić czas kompilacji w trakcie programowania. Odbywa się to przez ponowne kompilowanie tylko tych fragmentów źródła, które uległy zmianie lub wymagają ponownej kompilacji. Aby wyłączyć tę funkcję, dodaj ten kod do pliku build.gradle na poziomie modułu:

      Odlotowy

      android {
        ...
        compileOptions {
          incremental false
        }
      }
      

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
      
    • Dodano obsługę dexing w procesie, która wykonuje dexing w ramach procesu kompilacji, a nie w osobnych, zewnętrznych procesach maszyn wirtualnych. Nie tylko przyspiesza to kompilacje przyrostowe, ale także przyspiesza pełne kompilacje. Ta funkcja jest domyślnie włączona w projektach, w których maksymalny rozmiar stosu demona Gradle to co najmniej 2048 MB. Możesz to zrobić, dodając te elementy do pliku gradle.properties projektu:

      ``none org.gradle.jvmargs = -Xmx2048m ``

      Jeśli masz zdefiniowaną wartość javaMaxHeapSize w pliku build.gradle na poziomie modułu, musisz ustawić org.gradle.jvmargs na wartość javaMaxHeapSize + 1024 MB. Jeśli na przykład ustawisz javaMaxHeapSize na „2048m”, do pliku gradle.properties projektu musisz dodać ten fragment:

      ``none org.gradle.jvmargs = -Xmx3072m ``

      Aby wyłączyć dexing w procesie, dodaj następujący kod do pliku build.gradle na poziomie modułu:

      Odlotowy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }
      

    2.0.0 (kwiecień 2016 r.)

    Zależności:
    Nowość:
    • Włącza natychmiastowe uruchamianie przez obsługę wstrzykiwania kodu bajtowego oraz przekazywanie aktualizacji kodu i zasobów do aplikacji uruchomionej w emulatorze lub na urządzeniu fizycznym.
    • Dodaliśmy obsługę kompilacji przyrostowych, nawet gdy aplikacja nie jest uruchomiona. Pełny czas kompilacji jest skrócony przez wprowadzanie stopniowych zmian na połączone urządzenie za pomocą narzędzia Android Debug Bridge.
    • Dodano maxProcessCount, aby kontrolować liczbę równoczesnych procesów Dex instancji roboczych. Ten kod w pliku build.gradle na poziomie modułu ustawia maksymalną liczbę równoczesnych procesów na 4:

      Odlotowy

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      Odlotowy

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }
      

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
      
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    Zmienione działanie:
    • Jeśli minSdkVersion ma wartość 18 lub wyższą, podpisywanie plików APK używa SHA256.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    Rozwiązane problemy:
    • Rozwiązaliśmy problem, który powodował zduplikowanie zależności AAR zarówno w konfiguracji testowej, jak i w konfiguracji głównej kompilacji.

    Wtyczka Androida dla Gradle, wersja 1.5.0 (listopad 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Zintegrowaliśmy wtyczkę Data Binding z wtyczką na Androida dla Gradle. Aby ją włączyć, dodaj ten kod do każdego pliku build.gradle w projekcie, który korzysta z wtyczki:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • Dodano nowy interfejs Transform API, który umożliwia wtyczkom innych firm manipulowanie skompilowanymi plikami .class przed ich przekonwertowaniem na pliki .dex. Interfejs Transform API ułatwia wstrzykiwanie manipulacji klasami niestandardowymi, a jednocześnie daje większą elastyczność w zakresie zakresu, którym możesz manipulować. Aby wstawić przekształcenie do kompilacji, utwórz nową klasę implementującą jeden z interfejsów Transform i zarejestruj ją za pomocą android.registerTransform(theTransform) lub android.registerTransform(theTransform, dependencies). Nie trzeba łączyć zadań jednocześnie. Uwaga dotycząca interfejsu Transform API:
      • Przekształcenie można zastosować do co najmniej jednego z tych elementów: bieżącego projektu, podprojektów i bibliotek zewnętrznych.
      • Przekształcenie musi być zarejestrowane globalnie, co ma zastosowanie do wszystkich wariantów.
      • Transform API wykorzystuje teraz wewnętrzne przetwarzanie kodu za pomocą biblioteki Java Code Zasięg biblioteki (JaCoCo), ProGuard i MultiDex. Jednak pakiet Java Android Compiler Kit (Jack) nie używa tego interfejsu API, a jedynie ścieżka kodowa javac/dx.
      • Gradle wykonuje przekształcenia w tej kolejności: JaCoCo, wtyczki innych firm, ProGuard. Kolejność wykonywania wtyczek innych firm jest taka sama jak kolejność dodawania przekształceń przez wtyczki innych firm. Programiści wtyczek innych firm nie mogą kontrolować kolejności wykonywania przekształceń za pomocą interfejsu API.
    • Wycofano metodę pobierania dex z klasy ApplicationVariant. Nie możesz już uzyskać dostępu do zadania Dex za pomocą interfejsu API wariantu, ponieważ wykonuje się je teraz przez przekształcenie. Obecnie nie ma czegoś takiego jak sterowanie procesem dex.
    • Stała obsługa przyrostowa zasobów.
    • Ulepszyliśmy obsługę MultiDex przez udostępnienie tej funkcji w projektach testowych. Testy mają teraz automatycznie zależność com.android.support:multidex-instrumentation.
    • Dodaliśmy możliwość prawidłowego niepowodzenia kompilacji Gradle i zgłoszenia bazowej przyczyny błędu, gdy kompilacja Gradle wywołuje zadania asynchroniczne i wystąpi błąd w procesie instancji roboczej.
    • Dodaliśmy obsługę konfigurowania określonego interfejsu binarnego aplikacji (ABI) w wariantach zawierających wiele interfejsów ABI.
    • Dodano obsługę listy rozdzielonych przecinkami numerów seryjnych urządzeń dla zmiennej środowiskowej ANDROID_SERIAL podczas instalowania lub uruchamiania testów.
    • Rozwiązaliśmy problem z instalacją urządzeń z Androidem 5.0 (poziom interfejsu API 20) lub nowszym, gdy nazwa pliku APK zawiera spację.
    • Rozwiązaliśmy różne problemy związane z błędami generowanymi przez narzędzie Android Asset Packaging Tool (AAPT).
    • Dodano przyrostową obsługę instrumentacji JaCoCo, co pozwala szybciej tworzyć kompilacje przyrostowe. Wtyczka Androida dla Gradle bezpośrednio wywołuje teraz instrumenter JaCoCo. Aby wymusić nowszą wersję instrumentera JaCoCo, musisz dodać ją jako zależność skryptu kompilacji.
    • Naprawiono obsługę JaCoCo, dzięki czemu pliki, które nie są klasami, są ignorowane.
    • W celu zapewnienia zgodności wstecznej dodaliśmy obsługę rysowania wektorowymi w plikach PNG podczas tworzenia. Wtyczka Androida do obsługi Gradle generuje pliki PNG dla każdego elementu rysowalnego wektorowego znalezionego w katalogu zasobów, który nie określa wersji interfejsu API lub określa atrybut android:minSdkVersion o wartości 20 lub niższej w elemencie <uses-sdk> w pliku manifestu aplikacji. Gęstość pliku PNG możesz ustawić za pomocą właściwości generatedDensities w sekcjach defaultConfig lub productFlavor pliku build.gradle.
    • Dodaliśmy możliwość udostępniania symulowanego elementu android.jar, który jest generowany tylko raz i używany do testowania jednostkowego. Wiele modułów, na przykład app i lib, jest teraz udostępnianych. Usuń zasób $rootDir/build, aby go wygenerować ponownie.
    • Zmieniono przetwarzanie zasobów Java przed zadaniami zaciemniania kodu, a nie podczas pakowania pliku APK. Ta zmiana daje zadaniom zaciemniania kodu szansę na dostosowanie zasobów Javy po zaciemnieniu pakietów.
    • Rozwiązaliśmy problem z używaniem kodu Java Native Interface (JNI) we wtyczce eksperymentalnej biblioteki.
    • We wtyczce eksperymentalnej dodaliśmy możliwość ustawienia wersji platformy niezależnie od atrybutu android:compileSdkVersion.

    Wtyczka Androida dla Gradle, wersja 1.3.1 (sierpień 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Naprawiliśmy zadanie ZipWyrównaj, aby prawidłowo wykorzystywać dane wyjściowe poprzedniego zadania z użyciem niestandardowej nazwy pliku.
    • Naprawiliśmy pakiet Renderscript z pakietem NDK.
    • Utrzymanie obsługi zadania kompilacji createDebugCoverageReport.
    • Naprawiono obsługę niestandardowego użycia właściwości archiveBaseName w pliku kompilacji build.gradle.
    • Usunięto ostrzeżenie Invalid ResourceType lint spowodowane wyszukiwaniem adnotacji metody parametrów podczas uruchamiania lint poza Android Studio.

    Wtyczka Androida dla Gradle, wersja 1.3.0 (lipiec 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Dodaliśmy obsługę właściwości com.android.build.threadPoolSize umożliwiającej kontrolowanie rozmiaru puli wątków zadań Android z poziomu pliku gradle.properties lub wiersza poleceń. Poniższy przykład ustawia tę właściwość na 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Ustaw domyślne działanie kompilacji, aby wykluczyć pliki LICENSE i LICENSE.txt z pakietów APK. Aby uwzględnić te pliki w pliku APK, usuń je z właściwości packagingOptions.excludes w pliku build.gradle. Na przykład:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • Dodano zadanie sourceSets, aby zbadać zbiór wszystkich dostępnych zbiorów źródłowych.
    • Ulepszona obsługa testów jednostkowych pozwalająca rozpoznawać foldery źródłowe o różnych smakach i wariant kompilacji. Jeśli chcesz na przykład przetestować aplikację z wieloma smakami flavor1 i flavorA z użyciem typu kompilacji Debug, testowe zbiory źródeł to:
      • test
      • testSmak1
      • testSmakA
      • testSmak1SmakA
      • testFlavor1SmakADebug

      Testy na Androidzie rozpoznawały już foldery źródłowe o wielu rodzajach.

    • Ulepszona obsługa testów jednostkowych:
      • Uruchom javac w źródłach głównych i testowych, nawet jeśli właściwość useJack w pliku kompilacji jest ustawiona na true.
      • Prawidłowo rozpoznawaj zależności dla każdego typu kompilacji.
    • Dodaliśmy obsługę określania w wierszu poleceń argumentów uruchamiającego testy instrumentacji. Przykład:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • W pliku build.gradle dodaliśmy obsługę dowolnych dodatkowych parametrów Android Asset Packaging Tool (AAPT). Na przykład:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • Dodaliśmy obsługę testowego modułu APK jako osobnego modułu testowego przy użyciu właściwości targetProjectPath i targetVariant do ustawiania ścieżki pliku APK i wariantu docelowego.

      Uwaga: testowy moduł APK nie obsługuje rodzajów produktów i może być kierowany tylko na jeden wariant. Poza tym Jacoco nie jest jeszcze obsługiwany.

    • Dodano sprawdzanie poprawności nazwy zasobu przed scaleniem zasobów.
    • Jeśli tworzysz pakiet AAR (Android ARchive) dla modułów biblioteki, nie podawaj w ustawieniach scalania plików manifestu automatycznego obiektu zastępczego @{applicationId}. Jeśli chcesz uwzględnić identyfikatory aplikacji w bibliotece archiwum, użyj innej zmiennej, takiej jak @{libApplicationId}, i podaj jej wartość.

    Wtyczka Androida dla Gradle, wersja 1.2.0 (kwiecień 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Ulepszona obsługa testów jednostkowych w Gradle.
      • Dodaliśmy obsługę uwzględniania w ścieżce klasy zasobów w stylu Javy podczas wykonywania testów jednostkowych bezpośrednio w Gradle.
      • Dodano obsługę zależności w teście jednostkowym dla artefaktów Android Archive (AAR).
      • Dodaliśmy obsługę właściwości unitTestVariants, aby możliwe było manipulowanie wariantami testów jednostkowych za pomocą pliku build.gradle.
      • Dodano blok kodu unitTest.all w sekcji testOptions, aby skonfigurować niestandardowe zadania na potrzeby testu jednostkowego. Poniższy przykładowy kod pokazuje, jak dodać ustawienia konfiguracji testu jednostkowego za pomocą tej nowej opcji:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • Naprawiliśmy obsługę pól wyliczeniowych i pól instancji publicznej w pakiecie pliku mockable-android.jar.
      • Naprawiliśmy zależności zadań projektu biblioteki, aby klasy testowe kompilowały się ponownie po wprowadzeniu zmian.
    • Dodano właściwość testProguardFile, która pozwala zastosować pliki ProGuard podczas minifikacji testowego pakietu APK.
    • Do bloku kodu adbOptions dodaliśmy właściwość timeOut do ustawiania maksymalnego czasu nagrywania na potrzeby nagrywania ekranu w narzędziu Android Debug Bridge.
    • Dodaliśmy obsługę zasobów o rozdzielczości 280 dpi.
    • Zwiększono wydajność podczas oceny projektu.

    Wtyczka Androida dla Gradle w wersji 1.1.3 (marzec 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Rozwiązaliśmy problem ze zduplikowanymi zależnościami w aplikacji testowej, która spowodowała błąd ProGuard.
    • Naprawiono implementację narzędzia do porównywania danych, która była niezgodna z umową dotyczącą porównywania cen JDK i wygenerowała błąd JDK 7.

    Wtyczka Androida dla Gradle, wersja 1.1.2 (luty 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Znormalizowana ścieżka podczas tworzenia symulowanego pliku JAR na potrzeby testowania jednostkowego.
    • Naprawiliśmy ustawienie archivesBaseName w pliku build.gradle.
    • Naprawiliśmy nierozwiązany problem z obiektami zastępczymi podczas scalania plików manifestu podczas tworzenia aplikacji testowej biblioteki.

    Wtyczka Androida dla Gradle, wersja 1.1.1 (luty 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Zmodyfikowane warianty kompilacji, w związku z czym tylko warianty pasujące do pakietu aplikacji Wear aktywują zadania kompilacji specyficzne dla Wear.
    • Zmieniliśmy problemy związane z zależnościami, aby kończyły się niepowodzeniem w czasie kompilacji, a nie w czasie debugowania. To zachowanie umożliwia uruchamianie zadań diagnostycznych (takich jak „zależności”), które pomagają rozwiązać konflikt.
    • Naprawiliśmy metodę android.getBootClasspath() zwracającą wartość.

    Wtyczka Androida dla Gradle, wersja 1.1.0 (luty 2015 r.)

    Zależności:
    • Gradle w wersji 2.2.1 lub nowszej.
    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Dodano obsługę testu jednostkowego
      • Włączono testy jednostkowe na lokalnej maszynie wirtualnej JVM ze specjalną wersją pliku android.jar zgodnej z popularnymi platformami do żartów, takimi jak Mockito.
      • Dodano nowe zadania testowe testDebug, testRelease i testMyFlavorDebug dotyczące rodzajów produktów.
      • Dodano nowe foldery źródłowe rozpoznawane jako testy jednostkowe: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • W pliku build.gradle dodaliśmy nowe konfiguracje do deklarowania zależności tylko do testów, np. testCompile 'junit:junit:4.11', testMyFlavorCompile 'some:library:1.0'.

        Uwaga: zależności tylko do testów nie są obecnie zgodne z pakietem Jack (Java Android Compiler Kit).

      • Dodaliśmy opcję android.testOptions.unitTests.returnDefaultValues umożliwiającą kontrolowanie działania pliku android.jar, który może działać z użyciem funkcji pozornej.
    • Zastąpiono Test w nazwach zadań testowych wartością AndroidTest. Na przykład zadanie assembleDebugTest to teraz assembleDebugAndroidTest. Zadania testów jednostkowych nadal mają w nazwie zadania UnitTest, np. assembleDebugUnitTest.
    • Zmodyfikowane pliki konfiguracji ProGuard, aby nie były już stosowane do testowego pakietu APK. Jeśli minifikacja jest włączona, ProGuard przetwarza testowy plik APK i stosuje tylko plik mapowania wygenerowany podczas minifikacji głównego pliku APK.
    • Zaktualizowano zarządzanie zależnościami.
      • Rozwiązaliśmy problemy z używaniem zakresów provided i package.

        Uwaga: te zakresy są niezgodne z pakietami AAR (Android ARchive) i powodują błąd kompilacji z takimi pakietami.

      • Zmodyfikowano rozpoznawanie zależności w celu porównania zależności testowanej aplikacji i aplikacji testowej. Jeśli artefakt z tą samą wersją zostanie znaleziony w obu aplikacjach, nie będzie on dostępny w aplikacji testowej i zostanie spakowany tylko z aplikacją testowaną. Jeśli w obu aplikacjach zostanie znaleziony artefakt z inną wersją, kompilacja się nie uda.
    • Dodano obsługę kwalifikatora zasobów anyDpi w scalaniu zasobów.
    • Ulepszona ocena i szybkości synchronizacji IDE w przypadku projektów z dużą liczbą modułów Androida.

    Wtyczka Androida dla Gradle w wersji 1.0.1 (styczeń 2015 r.)

    Zależności:
    • Gradle od 2.2.1 do 2.3.x.

      Uwaga: ta wersja wtyczki na Androida do obsługi Gradle nie jest zgodna z Gradle w wersji 2.4 i nowszych.

    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Rozwiązaliśmy problem z błędem kompilacji Gradle podczas uzyskiwania dostępu do modułu extractReleaseAnnotations. (numer: 81638).
    • Rozwiązanie problemu polegającego na tym, że Disable przekazuje ustawienie --no-optimize do kodu bajtowego Dalvik Executable (dex). (numer: 82662).
    • Rozwiązaliśmy problemy z łączeniem plików manifestu podczas importowania bibliotek z wartością targetSdkVersion mniejszą niż 16.
    • Rozwiązaliśmy problem z porządkowaniem według gęstości w przypadku korzystania z Android Studio z pakietem JDK 8.

    Wtyczka Androida dla Gradle w wersji 1.0.0 (grudzień 2014 r.)

    Zależności:
    • Gradle od 2.2.1 do 2.3.x.

      Uwaga: ta wersja wtyczki na Androida do obsługi Gradle nie jest zgodna z Gradle w wersji 2.4 i nowszych.

    • Narzędzia do kompilacji w wersji 21.1.1 lub nowszej.
    Uwagi ogólne:
    • Pierwsza wersja wtyczki.