Informacje o wersji emulatora

Emulator Androida jest dołączony do Android Studio.

Wersje emulatora sprzed wersji 25.3.0 były rozpowszechniane w ramach Android SDK Tools.

Aby upewnić się, że masz najnowszą wersję, sprawdź dostępność aktualizacji w Menedżerze SDK.

Wcześniejsze wersje emulatora Androida możesz pobrać w archiwum pobierania emulatora.

Informacje o wersji emulatorów starszych niż 25.3.0 znajdziesz w informacjach o wersji narzędzi Android SDK.

Znane problemy i sposoby ich rozwiązywania znajdziesz w artykule Rozwiązywanie problemów z emulatorem.

34.2.15 (31 maja 2024 r.)

  • Naprawiono różne awarie związane z trybem przesuwania i czyszczeniem reklamodawcy

34.2.14 (20 maja 2024 r.)

Przetestowano za pomocą poprawki Androida Studio Jellyfish Stable Patch 1.

  • [Poprawka błędu] Zrzut ekranu czasami zawiesza się w umieszczonym emulatorze.
  • [Naprawiono błąd] Przyciski „Nie” i „Anuluj” nie działają prawidłowo na zrzucie dysku.
  • [Naprawiono błąd] Przyciski pada kierunkowego nie działają
  • [Poprawka błędu] Naprawiono błąd występujący w systemie Windows, który uniemożliwiał uruchomienie emulatora w niektórych warunkach podczas korzystania z trybów GPU z ANGLE i wyświetlanie w logu komunikatu o błędzie „Nie udało się zainicjować emulacji GL”. Pamiętaj, że uruchomienie emulatora przy użyciu wiersza poleceń z opcją -gpu swangle_indirect może nadal generować ten błąd w tej wersji. Jeśli nadal chcesz uruchomić emulator za pomocą wiersza poleceń w systemie Windows z programowym renderowaniem grafiki grafiki w tej wersji, użyj polecenia -gpu swiftshader_indirect
  • [Poprawka błędu] Skrót do lokalizacji na klawiaturze wczytuje bezużyteczną mapę.
  • [Naprawiono błąd] Podczas ustawiania lokalizacji brakuje okna „Zapisz trasę”.

34.2.13 (30 kwietnia 2024 r.)

Przetestowano w Android Studio Jellyfish Stable.

  • Aktualizacja do Qt 6.5.3
  • Zgodność aktualizacji interfejsu API Map Google używanych w funkcjach lokalizacji w rozszerzonych ustawieniach emulatora, która nastąpi pod koniec maja.
  • Poprawki poważnych błędów
  • Różne poprawki na urządzeniach Pixel AVD
  • Zaktualizuj bibliotekę grafiki używaną do renderowania programowego
  • [Naprawianie błędu]Problem 225541819 Uruchamianie emulatora awarii Chrome w systemie x86_64
  • [Poprawka błędu]Problem 314614435 – przełącznik -http-proxy jest nieprawidłowo przeanalizowany

34.1.20 (1 kwietnia 2024 r.)

Przetestowano w wersji stabilnej Android Studio Iguana.

  • [Poprawka błędu] Problem nr 314614435: rozwiąż problem z nieprawidłową analizą przełącznika -http-proxy

34.1.19 (7 marca 2024 r.)

Przetestowano w wersji stabilnej Android Studio Iguana.

  • [Poprawka błędu] Problem nr 312677259: usunięto problem z blokowaniem ekranu w osadzonym emulatorze po zmianie rozmiaru okna.

34.1.18 (29 lutego 2024 r.)

Przetestowano w wersji stabilnej Android Studio Iguana.

  • Do emulatora zostały dodane urządzenia, w tym:
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • Test integracji gRPC: punkty końcowe gRPC są teraz dostępne na potrzeby testów instrumentowanych przeprowadzanych w emulatorze, które umożliwiają testowanie realistycznych scenariuszy. Ta funkcja pozwala deweloperom bezpiecznie korzystać z punktu końcowego gRPC hostowanego przez emulator Androida w ramach testów instrumentacji Androida.
  • Poprawki różnych błędów

33.1.24 (28 grudnia 2023 r.)

Przetestowano w Android Studio Hedgehog Stable i Iguana Beta 1.

  • Rozwiąż problem z kamerą internetową emulatora, który nie zezwala na nagrywanie ekranu w formacie MP4.
  • Naprawianie awarii emulatora na Pixelu Fold AVD, gdy jest on rozłożony podczas nagrywania ekranu.
  • Rozwiązanie problemu polegającego na tym, że Pixel Fold wyświetla inny wygląd telefonu z odłączoną klawiaturą i nie można z niego korzystać (naprawiliśmy go w systemach Windows, Mac Intel i Linux)
  • Naprawianie błędów w czujnikach wirtualnych w trybie samodzielnym (naprawione w systemach Windows, Mac Intel i Linux)
  • Naprawiono niektóre awarie, zwłaszcza podczas zamykania emulatora

33.1.23 (30 listopada 2023 r.)

Przetestowano w Android Studio Giraffe Patch 4 i Hedgehog Stable.

  • Nowa składana implementacja, która umożliwia lepszą emulację urządzenia Pixel Fold, działa z najnowszym interfejsem API 34
  • Uaktualnienie backendu karty graficznej: wdrożyliśmy protokół gfxstream na potrzeby naszego backendu graficznego. To ulepszenie poprawia ogólną wydajność grafiki i stabilność systemu. Oprócz tego wprowadziliśmy obsługę interfejsu Vulkan 1.3, począwszy od obrazu systemu w interfejsie API 34.
  • Prośba o funkcję: możliwość wyłączenia gestu ściągnięcia palcami i zmiany przypisania odpowiedniego klawisza skrótu.
  • [Naprawianie błędu] Problem nr 302562962 Naprawianie awarii kamery internetowej emulatora podczas korzystania z funkcji sonoma w systemie macOS
  • [Poprawka błędu] Problem nr 293503871 Rozwiązanie problemu polegającego na tym, że ustawienie „Mikrofon” nie jest zapisywane po ponownym uruchomieniu emulatora
  • [Poprawka błędu] Problem nr 270386314 Naprawiono błąd animacji polegający na tym, że pasek boczny pozostaje otwarty po zminimalizowaniu ekranu AVD
  • [Naprawianie błędu] Problem nr 154896775 Napraw narzędzie do zgłaszania błędów

32.1.15 (29 sierpnia 2023 r.)

Przetestowano w Android Studio Giraffe Patch 1 i Hedgehog Canary 16.

  • Zgodność z wymaganiami GAS HW w przypadku czujników w emulatorze AAE
  • [Naprawianie błędu] Problem nr 266201208 w przypadku interfejsu API 33 SMS-y w języku hebrajskim nie są wysyłane
  • [Poprawka błędu] Problem nr 257097404: Emulator nie pokazuje prawidłowego czasu po wybudzeniu hosta przy użyciu interfejsów API 29 i 30
  • [Poprawka błędu] Problem nr 228201899 Nie widzę Map Google w rozszerzonych elementach sterujących emulatora Androida

32.1.14 (27 czerwca 2023 r.)

Testy zostały przetestowane w wersjach Android Studio Hedgehog Canary 8, Giraffe Beta 5 i Flamingo Stable.

  • Korygowanie orientacji i zniekształceń kamery w emulatorze.
  • [Naprawianie błędu] Problem nr 257097404 „Emulator nie pokazuje poprawnego czasu po wybudzeniu hosta”. Ten błąd można odtworzyć w interfejsach API 29 i API 30.
  • [Poprawka błędu] Problem nr 243456582 „Wersje Androida po wersji API 30 mogą nie uruchamiać się prawidłowo w emulatorze na komputerach Mac M1”

32.1.13 (22 maja 2023 r.)

Testy zostały przetestowane w środowiskach Android Studio Hedgehog Canary 2, Giraffe Beta 1 i flamingo Stable.

  • Dodaliśmy obsługę urządzeń AVD w urządzeniach Pixel Fold i Pixel Tablet.
  • Napraw problem z awariami gLinux.
  • [Naprawianie błędu] Problem nr 215231636 „Emulator z interfejsem API powyżej 30 nie działa na procesorze Intel 12 generacji”.
  • [Poprawka błędu] Problem nr 275397905 Duża awaria w emulatorze Androida M1 z powodu wielokrotnego przesuwania kursora do i z emulatora.
  • Znany problem dotyczący wersji AVD: numer 281725854. Więcej informacji znajdziesz w artykule Rozwiązywanie problemów z emulatorami.

32.1.12 (21 marca 2023 r.)

Przetestowano w Android Studio Giraffe Canary 10, Flamingo RC i Electric Eel Patch 2.

  • [Poprawka błędu] Problem nr 267647323 Sieć nie działa z emulatorem uruchomionym w Android Studio
  • [Naprawiono błąd] Problem nr 268498686 Ekran emulatora migocze.
  • [Poprawka błędu] Problem nr 270034824 Wydajność emulatora po zaktualizowaniu do wersji 33.1.1 spadła.
  • [Poprawka błędu] Problem nr 225541819 Uruchamianie emulatora awarii Chrome w systemie x86_64
  • [Naprawiono błąd] Problem nr 257097404 Emulator nie pokazuje prawidłowej godziny po wybudzeniu hosta
  • Dodawanie raportów o awariach dotyczących urządzeń Apple M1

32.1.11 (8 lutego 2023 r.)

Przetestowano w Android Studio Giraffe Canary 2, Flamingo Beta 1 i Electric Eel Patch 1.

  • Optymalizacje prędkości sieci
  • Obsługa myszy w wbudowanym emulatorze
  • Ulepszenia Virtio-Snd
  • Wyłącz używanie dowiązania symbolicznego podczas rozpakowywania emulatora Androida podczas instalacji
  • Naprawianie awarii w sprawdzaniu emulatora

31.3.14 (13 grudnia 2022 r.)

Przetestowano na urządzeniach Android Studio Dolphin, Electric Eel RC1 i Flaming Canary 9.

  • [Naprawianie błędu] Naprawianie błędów AVD występujących podczas logowania się do Sklepu Play.

31.3.13 (27 października 2022 r.)

Przetestowano na urządzeniach Android Studio Dolphin, Electric Eel Beta 2 oraz Flamingo Canary 5.

31.3.12 (10 października 2022 r.)

Przetestowano w programie Android Studio Dolphin i Electric Eel Beta 1.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • [Rozwiązanie problemu] Problem nr 247843000: błąd obsługi ścieżki względnej AVD
  • Zwiększanie rozmiaru dysku w przypadku interfejsu API 24 i nowszych

31.3.11 (23 września 2022 r.)

Przetestowane na urządzeniach Android Studio Dolphin i Electric Eel Canary 10.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • [Naprawiono błąd] AVD wbudowanego emulatora w oknie rozszerzonych ustawień
  • [Naprawianie błędu] Problem nr 183139207: problemy z dźwiękiem związane z włączeniem mikrofonu przez emulator
  • [Poprawka błędu] Problem nr 229764024: błąd przyklejania aplikacji AVD przyklejony dotyk, który powoduje problemy z działaniem interfejsu użytkownika.
  • [Poprawka błędu] Błąd przy uruchamianiu API 33 AVD na Macu M1.
  • [Naprawianie błędu] Problem nr 243053479: powolna szybkość sieci po zaktualizowaniu emulatora
  • [Poprawka błędu] Problem nr 244617627: niedziałająca lokalizacja w Mapach Google w systemach Windows i Linux
  • [Naprawianie błędu] Problem nr 232971796: niedziałający przycisk „Zadzwoń na urządzenie” na stronie Ustawienia rozszerzone > Telefon
  • Zaktualizuj emulator Androida do minigbm
  • Migracja skryptów kompilacji do Pythona3

31.3.10 (18 sierpnia 2022 r.)

Przetestowana na urządzeniach Android Studio Dolphin Beta 5 i Electric Eel Canary 9.

Emulator możesz pobrać samodzielnie. Jeśli przy tej najnowszej stabilnej wersji wystąpią jakiekolwiek problemy lub awarie, zgłoś błąd i rozważ pobranie wcześniej działającej wersji z archiwów pobierania emulatora.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Lepsza obsługa ścieżek Unicode w systemie Windows
  • Lepsza obsługa wyłączania emulatora pozwala na powodzenie nowego systemu AVD.
  • Zaktualizowano składaną konstrukcję AVD i ustawienia domyślne
  • Zaktualizowano przyciski emulatora Wear
  • Ulepszenia strumieniowania dźwięku gRPC
  • Dodano polecenie konsoli emulatora z możliwością zmiany rozmiaru
  • Poprawka Chrome dla interfejsu API 31
  • [Naprawiono błąd] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18

31.2.10 (20 kwietnia 2022 r.)

Przetestowana na Androidzie Studio Dolphin Canary 8 i Champunk RC 1.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodaj narzędzie do wczytywania funkcji Vulkan z użyciem wartości zastępczych
  • [Naprawianie błędu] Naprawianie błędu kompilacji w Gcc8

31.2.9 (23 marca 2022 r.)

Przetestowana w Android Studio Dolphin Canary 7.

Ta aktualizacja zawiera te poprawki:

  • [Poprawka błędu] Ignoruj wykorzystanie pamięci podczas zapisywania zrzutu w M1

31.2.8 (7 lutego 2022 r.)

Przetestowano w Android Studio Bumblebee Patch 1 i Champunk Canary 6.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • [Naprawianie błędu] Nie można zalogować się w aplikacjach
  • [Naprawianie błędu] Problem nr 215368358: „ponowne uruchomienie adb” na platformie Intel powoduje awarię i komunikat „żądanie wyłączenia vcpu”

31.2.7 (1 lutego 2022 r.)

Przetestowano w Android Studio Bumblebee Patch 1 i Champunk Canary 6.

Ta aktualizacja zawiera te poprawki:

  • [Naprawianie błędu] Błąd zawieszania się emulatora na komputerach M1.

31.2.6 (20 stycznia 2022 r.)

Przetestowano na Androidzie Studio Arctic Fox, Bumblebee Beta 4 i Chipmunk Canary 6.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodaliśmy przyciski Wear OS do emulatora Wear OS.
  • Edytowano wszystkie właściwości pojazdu na karcie VHAL.
  • [Naprawiono błąd] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18.
  • [Poprawka błędu] Netshaper nie działał dobrze z VirtioWifi.
  • [Naprawiono błąd] Polecenie konsoli myszy do zdarzenia nie zadziałało.
  • Dodano kontrolę KVM na potrzeby lokalnego tworzenia AVD.

31.1.3 (18 stycznia 2022 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Włączono porty konsoli dla Fuchsia.
  • Podczas zmiany rozmiaru okna z kilkoma wyświetlaczami orientacja jest ignorowana.
  • Wi-Fi: dodano obsługę filtrowania pakietów pojedynczych na podstawie adresu MAT MAT.
  • Wi-Fi: usunięto błąd występujący podczas korzystania z maszyny wirtualnej.

30.9.5 (15 grudnia 2021 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodano możliwość łatwego zmieniania rozmiaru okna do rozmiaru komputera lub tabletu.
  • Dodano obsługę wprowadzania wielodotykowego ze zgodnych urządzeń hosta.
  • VirtioWifi: dodano obsługę sieci zbliżeniowej.
  • Włączono pokrętło dla obrazów systemu Wear.
  • Naprawiono problem z konfiguracją dźwięku gRPC.
  • Zaktualizowano odtwarzanie emulatora SensorReplay, aby obsługiwało standardowe czujniki Androida.
  • Podłącz emulator do urządzeń peryferyjnych i urządzeń za pomocą USB z przepustowością przez USB.

30.4.5 (23 lutego 2021 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • macOS: usunięto problemy ze zniekształceniami wejściowymi audio.
  • Dodano obsługę virtio-vsock w przestrzeni użytkownika.
  • Przyszłe obrazy systemu będą używać virtio-console do obsługi komunikatów logcat i jądra systemu.
  • Przyspiesz renderowanie interfejsu Vulkan.
  • Dodano obsługę debugowania zrzutów w przypadku niepowodzenia testu.
  • virtio-gpu: zaktualizowane definicje, aby obsługiwać najnowsze wyliczenia zasobów blob.
  • Dodano obsługę zrzutów dla transportu graficznego typu „asg”.
  • macOS: dodano obsługę tworzenia przy użyciu pakietu SDK macOS w wersji 11.1 lub nowszej.
  • Funkcja KVMclock jest domyślnie włączona w nowszych obrazach systemowych.
  • Dodano obsługę czujnika tętna do emulatorów Wear.
  • Usunięto backend Vulkan pozwalający na bezproblemowe korzystanie z biblioteki.
  • Dodano obsługę większej liczby funkcji symulatora modemu.

30.0.26 (16 sierpnia 2020 r.)

Aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Obsługa urządzeń składanych z czujnikiem wirtualnego zawiasu i widokiem 3D.

  • Dodano obsługę czujników zawiasów w urządzeniach składanych. Wymaga to skonfigurowania obrazu systemu Android 11 w przyszłości i konfiguracji AVD. Parametry zawiasu i widoku składanego 3D są teraz zintegrowane z istniejącymi składanymi gotowymi ustawieniami. W przypadku składanego pliku config.ini AVD w wersji 7.3:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • Urządzenia składane mają teraz także parametr podtypu. Usługa hw.sensor.hinge.sub_type = hinge/fold w config.ini jest już dostępna. Więcej informacji znajdziesz w poście na blogu Programowanie na Androida 11 przy użyciu emulatora Androida.

  • Czujnik zawiasów jest teraz domyślnie włączony.

  • Jeśli skonfigurowane jest urządzenie składane, emulator wysyła teraz do gościa informacje z czujników kąta zawiasu i zmiany stanu. Istniejące urządzenia składane zaktualizują teraz kąt i stan czujnika zawiasu po naciśnięciu przycisku zwijania lub rozwijania paska narzędzi.

Emulator hostów ARM64

  • Kod źródłowy emulatora Linuksa obsługuje teraz kompilację krzyżową między hostami x86_64 a arm64, co umożliwia uruchamianie obrazów systemowych arm64 z wirtualizacją KVM. Obecnie obsługiwany jest tylko -gpu swiftshader_indirect (renderowanie hosta w architekturze Swiftshader arm64), ale można też używać zgodnego zestawu bibliotek libEGL/libGLESv2 hosta GPU. W tym celu należy zastąpić nimi lib64/gles_swiftshader i uruchomić ponownie za pomocą -gpu swiftshader_indirect. Zrzuty mogą też nie działać (dodaj -no-snapshot do wiersza poleceń). Instrukcje:

    mkdir emu
    cd emu
    repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1
    repo sync -qcj 12
    cd external/qemu
    pip install absl-py
    pip install urlfetch
    sudo apt-get install crossbuild-essential-arm64
    python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
    
  • Obsługa Apple Silicon jest w toku.

Obsługa virtio-gpu

  • Dodaliśmy obsługę po stronie hosta dla nadchodzących spójnych zasobów blob hosta virtio-gpu.
  • Ze względu na sposób działania renderowania za pomocą emulatora teraz przetwarzamy virtio-gpu virtqueue w wątku vcpu (bo renderowanie i tak jest odrzucane w innych wątkach). Renderowanie virtio-gpu zostanie włączone w przyszłej wersji obrazu systemu i emulatora.
  • W przyszłości emulator będzie mógł uruchomić wszystkie karty graficzne ze stosem opartym na Virtio-Gpu.

Inne nowe funkcje i ulepszenia

  • Przekazywanie USB jest teraz dostępne w systemie Windows przy użyciu -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>. To powinno już działać w systemach Linux i macOS.
  • Biblioteki WebRTC zostały zaktualizowane do wersji M83.
  • Emulator obsługuje teraz strumieniowe przesyłanie dźwięku w kontenerach przez WebRTC.
  • Punkt końcowy potoku Darwinn został usunięty.
  • Jeśli dekodowanie CUDA VPx jest dostępne w przypadku wideo, dostępne jest teraz dekodowanie CUDA VPx dla wideo za pomocą zmiennej środowiskowej ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.
  • W systemach macOS SSE 4.1 i 4.2 są teraz dostępne z poziomu gościa na Androidzie.
  • W systemie macOS funkcja INVTSC jest teraz domyślnie włączona. Może to poprawić dokładność mierzenia czasu przez gościa.
  • Teraz w danych śledzimy, który rozszerzony panel sterowania został wybrany przez użytkownika.
  • Emulator Linuksa używa teraz parawirtualizowanego zegara KVM, gdy jądro gościa jest w wersji 5.4 (obrazy systemu R lub nowsze).
  • Emulator używa teraz LZ4 do dekompresji jądra gości, dzięki czemu jest zgodny z nowoczesnym potokiem jądra.
  • Dodaliśmy polecenia konsoli pozwalające uzyskać katalog AVD emulatora, ścieżkę pliku wykrywania w przypadku użycia osadzonego w Studio oraz ścieżkę do zrzutów:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • Aby ułatwić oszczędzanie miejsca w pionie na ekranie, w sekcji Rozszerzone elementy sterujące > Ustawienia dodaliśmy opcję ukrycia ramki urządzenia w bieżącym trybie AVD. Aby globalnie ukrywać ramki urządzeń dla wszystkich urządzeń AVD, udostępniliśmy flagę funkcji NoDeviceFrame, którą można aktywować, uruchamiając emulator z wiersza poleceń z ramką -feature NoDevice. Aby go zablokować, dodaj NoDeviceFrame = on do ~/.android/advancedFeatures.ini (utwórz ten plik, jeśli jeszcze go nie ma).

  • Na stronie dotyczącej sieci komórkowej dodano menu pozwalające włączyć lub wyłączyć pomiar pomiaru. Ta opcja nie działa w przypadku starszych obrazów systemu, które nie obsługują przełącznika pomiaru 5G.

    • Dodano również polecenie konsoli do tego samego celu: gsm meter on|off
  • Uaktualniliśmy łańcuch narzędzi / kompilację do C++17.

Poprawki: osadzony emulator

  • Schowek powinien teraz działać.
  • Rozwiązaliśmy problem polegający na tym, że w emulatorze wielkie litery były podawane jako małe litery.
  • Naprawiono wczytywanie tokena konsoli ze ścieżki Unicode w oknach.
  • Usunięto komunikat o błędzie SO_REUSEPORT w systemie Linux.
  • Rozwiązaliśmy problem z uszkodzeniem zrzutu podczas wysyłania poleceń zrzutu przez gRPC oraz po naciśnięciu przycisku zapisywania zrzutu w umieszczonym emulatorze Android Studio.
  • W przypadku korzystania z emulatora Linuksa wbudowanego w Studio odkryliśmy, że jeśli zostało to wykonane przez Pulpit zdalny Chrome, wystąpił błąd polegający na tym, że nie ustawiono elementu XDG_RUNTIME_DIR. Może on spowodować, że osadzony emulator nie wyświetli się z powodu umieszczenia plików wykrywania emulatora w XDG_RUNTIME_DIR. Stan odpowiedniego problemu możesz sprawdzić w narzędziu do śledzenia problemów w Chrome.

    Aby obejść ten problem, emulator może teraz używać plików wykrywania znajdujących się w innym katalogu opartym na identyfikatorze UID użytkownika: /run/user/&lt;uid>.

  • Wbudowany emulator: urządzenia z zaokrąglonymi rogami lub wycięciami teraz prawidłowo zmieniają układ, by zrobić miejsce na rogi i wycięcia. Wymaga to uruchomienia „na zimno” tych emulatorów.

  • Punkt końcowy gRPC obsługuje teraz wysyłanie SMS-ów do urządzenia.

Poprawki ogólne

  • Widzieliśmy problemy ze zgodnością podczas uruchamiania emulatora Windowsa z aktywnym odtwarzaczem Riot Vanguard. Emulator systemu Windows wykrywa teraz kod zabezpieczający Vanguard i w przypadku jego wykrycia wyświetla komunikat ostrzegawczy.
  • Usunięto FD_SETSIZE błąd w systemie Windows. Do nawiązywania nieblokujących połączeń z serwerami w pętli używamy teraz WSAEventSelect() zamiast select().
  • Dodano obsługę funkcji CPUID F16C do emulatora Linuxa z rozwiązaniem problemów z uruchamianiem niektórych aplikacji ARM64 przez translację NDK (systemy macOS/Windows w toku).
  • Poprawiono odtwarzanie trasy w formacie Gpx/kml zgodnie z sygnaturami czasowymi.
  • Usunięto problem z odrzucaniem ikony przy uruchamianiu w systemie macOS.
  • Jeśli hw.audioInput=no i hw.audioOutput=no w pliku config.ini są teraz prawidłowo wyłączone, dźwięk w emulatorze jest prawidłowo wyłączony.
  • Rozwiązaliśmy problem, który powodował, że okno emulatora było zminimalizowane, gdy okno rozszerzonych ustawień było otwarte, ale było nieaktywne, to rozszerzone okno było nadal wyświetlane podczas zmiany rozmiaru okna emulatora. W przyszłej aktualizacji całkowicie usuniemy to zachowanie (przypadek z aktywnym rozszerzonym oknem kontroli).
  • Naprawiono błąd, który powodował niestabilne połączenie z siecią Wi-Fi przy uruchamianiu emulatora.
  • Rozwiązaliśmy problem z zawieszaniem się przy zamykaniu, gdy emulator wysyła polecenia powłoki z długimi lub nieokreślonymi limitami czasu.
  • Zaktualizowaliśmy bios komputera PC, dodając poprawki, aby lepiej obsługiwać duże obrazy przekazywane do -initrd. Poprzedni BIOS używał bardzo mało wydajnej metody.
  • Naprawiono poważny błąd występujący podczas zamykania, gdy używana była opcja -wifi-server-port.
  • Emulator wyświetla teraz ostrzeżenie, jeśli do -prop zostaną przekazane nieobsługiwane opcje (obsługiwane są tylko rekwizyty qemu.*).
  • Gdy tworzysz emulator w systemie Windows, prawdopodobieństwo wystąpienia niestabilnych błędów zapisu w plikach jest mniejsze. Więcej informacji znajdziesz w instrukcjach kompilacji dla systemu Windows.
  • W przypadku składanych urządzeń AVD wyłączono przycisk powiększenia, co było źródłem problemów.
  • Emulator prawidłowo raportuje teraz czas rozruchu po ponownym uruchomieniu urządzenia.
  • Linux: w przypadku niewystarczających uprawnień KVM emulator szybciej wyświetla instrukcje debugowania.
  • Rozwiązanie problemu polegającego na tym, że bez przyspieszenia emulator nie mógł uruchomić ostatnich obrazów systemu.
  • Rozwiązaliśmy problem z uszkodzeniem pamięci i awarią podczas uruchamiania z wzorca wykrywania zakończenia rozruchu.
  • Rozwiązano wyciek pamięci podczas sesji nagrywania długiego ekranu.
  • Ikony emulatora zostały zaktualizowane, aby odzwierciedlić markę Studio 4.1.
  • Dodaliśmy lepszą obsługę wykrywania sesji zdalnych w systemie Windows.

Poprawki: dekodowanie grafiki i filmów

  • Rozwiązaliśmy problem, który powodował, że w najnowszej grze Asphalt 9 była wyświetlana czarny ekran.
  • Usunięto spam związany z opróżnianiem bufora zmapowanego za pomocą funkcji NULL.
  • Naprawiono problem wyścigu podczas usuwania stanu Vulkan po zamknięciu aplikacji Vulkan gościa.
  • Mechanizmy emulacji emulacji Vulkan ASTC/ETC2 zostały umieszczone w bibliotece libOpenglRender. Będzie to bardziej niezawodne niż odczyt z systemu plików.
  • Rozwiązaliśmy problem w interfejsie Vulkan, w którym po uruchomieniu na hoście z użyciem instancji Vulkan 1.0 usługa vkGetImageMemoryRequirements2KHR błędnie usuwała zwrócone pole pNext struktury VkMemoryRequirements2.
  • Naprawiono wyciek pamięci w mechanizmie renderowania Vulkan.
  • Naprawiliśmy ostatnią regresję, w wyniku której nie można było skompilować mechanizmów cieniowania GLSL ES 1.00 o nazwach zmiennych, np. isampler2D.
  • Zaktualizowaliśmy tłumacza do cieniowania ANGLE, dodając różne poprawki rozwiązujące potencjalne problemy z kompilowaniem programów do cieniowania w systemie Linux.
  • Teraz gdy nie uda się skompilować podstawowego cieniowania bufora ramek, w celu śledzenia zjawiska następuje awaria emulatora.
  • Zaktualizowaliśmy tłumacza do cieniowania ANGLE, aby nadążać za ANGLE nadrzędnymi. Rozwiązaliśmy problem z uszkodzeniem pamięci podczas tłumaczenia i ciągłego zwijania cieni OpenGL ES, które używały macierzy niekwadratowych. Tłumacz programów do cieniowania jest teraz oddzielną biblioteką współdzieloną, libshadertranslator.dll.
  • Rozwiązaliśmy problem z inicjowaniem interfejsu Vulkan w przypadku niektórych sterowników GPU, który uniemożliwiał działanie niektórych funkcji urządzenia 1.1.
  • Vulkan: Ponownie wróciliśmy do używania gotowego programu wczytującego. Natomiast w niektórych konfiguracjach system Vulkan powodował problemy, ale wymyślimy lepsze rozwiązanie.
  • Rozwiązaliśmy problem z używaniem pamięci zewnętrznej Vulkan, w której mógł zostać zaimportowany na hoście niezgodny indeks typów pamięci.
  • Rozwiązaliśmy problem z emulacją funkcji GL_ALIASED_POINT_SIZE_RANGE, który powodował, że wyliczenie nie było obsługiwane na hoście.
  • Rozwiązaliśmy problem polegający na tym, że w przypadku niektórych procesorów graficznych hosta nie można było skompilować mechanizmów cieniowania Skia z powodu błędów związanych z zasadą GL_EXT_shader_framebuffer_fetch.
  • Ponieważ kilka wersji mechanizmu renderowania D3D9 ANGLE została usunięta, teraz automatycznie przełączamy użytkowników, którzy z niego korzystali, na wersję d3d11 ANGLE, jeśli została ona wybrana w ustawieniach interfejsu.
  • Do inicjowania WGL w systemie Windows dodaliśmy więcej danych debugowania, aby można było śledzić błędy.
  • Gdy hw.gltransport=virtio-gpu-pipe działa, zwiększa wydajność, rezygnując z wirowania hosta podczas przesyłania z hosta do gościa.
  • Dodaliśmy więcej rejestrowania debugowania, gdy nie uda się zainicjować emulacji OpenGLES.
  • Rozwiązaliśmy problem, który powodował, że filmy w YouTube migoały lub nie wyświetlały się podczas wczytywania migawki.
  • Na razie powróciliśmy do dekodowania programowego libvpx, ponieważ zauważyliśmy problemy ze sprzętowym dekodowaniem biblioteki CUDA libvpx. Jeśli masz obsługiwaną implementację dekodowania sprzętowego CUDA po stronie hosta, dekodowanie sprzętowe libvpx można ponownie włączyć za pomocą zmiennej środowiskowej ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (30 kwietnia 2020 r.)

Ta aktualizacja obejmuje obsługę uruchamiania emulatora bezpośrednio w Android Studio i urządzeń wirtualnych z domyślnie włączonym trybem dowolnego okna.

Uruchamianie emulatora w Android Studio

Emulator Androida można teraz uruchamiać bezpośrednio w Android Studio. Ta funkcja pozwala oszczędzać przestrzeń ekranu, szybko przechodzić między emulatorem a oknem edytora za pomocą klawiszy skrótów oraz organizować przepływ pracy IDE i emulatora w jednym oknie aplikacji.

Tryb dowolnego okna

Możesz teraz utworzyć dysk stały z włączonym trybem dowolnego okna.W tym celu podczas tworzenia urządzenia wirtualnego w Android Studio wybierz profil sprzętowy tabletu o przekątnej 13,5 cala. Ten profil sprzętu wymaga obrazu systemu z Androidem 11 lub nowszą wersją.

Znane problemy

Zmiana rozmiaru dowolnych okien działa obecnie z powodu problemów z przenoszeniem fokusu do menedżera okien. Naprawimy to w przyszłej wersji obrazu systemu Android 11.

30.0.0 (19 lutego 2020 r.)

Ta aktualizacja obejmuje obrazy systemowe Androida 11 (poziom interfejsu API 30) i zwiększyła wydajność podczas uruchamiania plików binarnych ARM.

Obrazy systemowe Androida 11

Możesz teraz utworzyć narzędzie AVD z Androidem 11, wybierając jeden z dostępnych obrazów systemowych poziomu 30 interfejsu API:

  • x86: obejmuje interfejsy ABI x86 i ARMv7.
  • x86_64: obejmuje interfejsy ABI: x86, x86_64, ARMv7 i ARM64.

Obsługa plików binarnych ARM w obrazach systemu Android 9 i 11

Jeśli wcześniej nie udało Ci się użyć emulatora Androida, ponieważ Twoja aplikacja bazowała na plikach binarnych ARM, możesz teraz użyć obrazu systemu Android 9 x86 lub dowolnego obrazu systemu Android 11. Aby uruchomić pliki binarne ARM, nie musisz już pobierać konkretnego obrazu systemu. Te obrazy systemowe Androida 9 i 11 domyślnie obsługują architekturę ARM i zapewniają znacznie wyższą wydajność w porównaniu z urządzeniami z pełną emulacją ARM.

Znane problemy

  • Niektóre pliki binarne ARMv7 nie działają w obrazach systemowych Androida 11 x 86 i x86_64. Jeśli kierujesz produkty na Androida 11, rozważ wykorzystanie modelu ARM64.

29.0.11 (29 maja 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Windows: emulator korzysta teraz z dostarczanej przez nas biblioteki DLL libgcc zamiast statycznie skompilować go z funkcją libgcc.
  • Linux: do interfejsu gRPC API dodano obsługę logcat. Więcej informacji o gRPC znajdziesz w artykule o emulatorze strumieniowania gRPC (Linux).
  • Emulator zawiera teraz kompilację bez interfejsu graficznego dla 32-bitowego środowiska x86 (qemu-system-i386). Ta funkcja umożliwia uruchamianie 32-bitowych obrazów x86 na poziomie interfejsu API na poziomie 26 lub niższym z kompilacją bez interfejsu graficznego. Pamiętaj, że w przypadku gości 32-bitowych x86 z interfejsem API w wersji 27 lub nowszej emulator używa silnika 64-bitowego (qemu-system-x86_64), ponieważ w tych obrazach systemowych 32-bitowa przestrzeń użytkownika to jądro 64-bitowe. Android Studio używa jądra do wyboru silników emulacji.
  • Możesz teraz określać niestandardowe ścieżki biblioteki Qt za pomocą zmiennej środowiskowej ANDROID_QT_LIB_PATH.
  • Możesz teraz uruchomić emulator z poprzednimi plikami binarnymi korzystającymi z QEMU1, jeśli pliki wykonywalne QEMU1 (emulator[64]-[x86|arm|etc]) znajdują się w katalogu emulatora.
  • Windows: naprawiono błąd, który czasami powodował, że emulator nie uruchamiał się z komunikatem „Żądanie wyłączenia procesora wirtualnego”.
  • Rozwiązaliśmy problem z niepotrzebną barierą potoku w emulowanych skompresowanych teksturach w interfejsie Vulkan.
  • Naprawiliśmy błąd, który występował w przypadku żądań serwera proxy HTTP podczas korzystania z fragmentu kodu transferu. Więcej informacji znajdziesz w szczegółach zobowiązania.

29.0.9 (7 maja 2019 r.)

Ta aktualizacja zawiera te poprawki:

  • Windows: usunięto problem, który powodował, że z emulatorem nie działały kamera sceny wirtualnej ani kamera internetowa.

29.0.8 (6 maja 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodaliśmy obsługę wielu wyświetlaczy sprzętu wirtualnego, gdy dostępna jest usługa gościa do wyliczania i ustawiania każdego z nich. W przyszłej aktualizacji obrazu systemu emulatora dodamy wiele wyświetlaczy sprzętu wirtualnego.
  • Dodano nową opcję wiersza poleceń: -delay-adb. Ta opcja powstrzymuje przetwarzanie pakietów ADB do momentu zakończenia uruchamiania przez gościa (z „zimnego rozruchu”). Ta opcja pomaga rozwiązać problemy, które mogą wystąpić, jeśli używasz emulatora w środowisku CI, które uruchamia go ponownie i jednocześnie używa DDMS.
  • Naprawiono błąd, który występował podczas wczytywania zrzutów, gdy glIsRenderbuffer zwracał nieprawidłową wartość.
  • Rozwiązaliśmy niektóre problemy ze stanem braku aktualizacji podczas ponownego uruchamiania gościa z Androidem.
  • Windows: naprawiliśmy problemy, które uniemożliwiały uruchomienie emulatora, gdy nazwa użytkownika systemu Windows zawierała znaki spoza zestawu ASCII lub spacje.

Znane problemy

  • Interfejs Zrzuty danych jest wyłączony w przypadku obrazów systemu motoryzacyjnego, ponieważ zrzuty nie są obecnie obsługiwane w przypadku tych obrazów systemowych.

29.0.6 (1 maja 2019 r.)

Aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Usunięcie QEMU1 i obsługi 32-bitowej wersji systemu Windows

Aby zapewnić lepszą obsługę emulatora, nie oferujemy już plików binarnych QEMU1 ani 32-bitowych plików binarnych dla systemu Windows. Jeśli używasz 32-bitowego systemu Windows, nie możesz zaktualizować przeglądarki do wersji 29.0.6.

Wymagania dotyczące obrazów systemu Android Q

Jeśli chcesz uruchomić AVD z obrazem systemu Androida Q, musisz używać wersji 29.0.6 (tej wersji) lub nowszej.

Ulepszenia dotyczące marmuru projektu

Ta aktualizacja jest kontynuacją naszej pracy nad inicjatywą Project Marble, która została ogłoszona podczas wydarzenia Android Developer Summit w listopadzie 2018 r. Więcej informacji o innych ulepszeniach w Project Marble w poprzednich wersjach znajdziesz w artykule Emulator Androida: ulepszenia projektu Marble.

W ramach tej aktualizacji większość naszych działań w Project Marble dotyczyła ograniczenia wykorzystania zasobów emulatora, np. ograniczenia jego wykorzystania podczas bezczynności. Uwzględniliśmy też zmiany, które ułatwiają pracę z emulatorem w większej liczbie środowisk, i rozwiązaliśmy ogólne problemy z jakością.

W tych sekcjach opisujemy ulepszenia wprowadzone w projekcie Marble w ramach tej aktualizacji:

Ulepszenia działania dźwięku hosta

Od wersji 28.0.3 emulator domyślnie blokuje dane dźwiękowe z hosta.

Jeśli chcesz korzystać z danych dźwiękowych hosta, możesz włączyć tę opcję. Aby to zrobić, wybierz Ustawienia rozszerzone > Mikrofon i włącz opcję Mikrofon wirtualny używa wejścia audio hosta. Ta opcja jest automatycznie wyłączana przy każdym ponownym uruchomieniu emulatora.

Jeśli używasz wiersza poleceń, możesz też włączyć dźwięk hosta za pomocą opcji -allow-host-audio oraz odpowiednio włączać i wyłączać dane audio hosta za pomocą tych poleceń ADB:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Ulepszenia kompilacji emulatorów bez interfejsu graficznego

Od wersji 28.0.25 emulator zawiera opcję kompilacji bez interfejsu graficznego, którą można uruchamiać bez interfejsu użytkownika. Kompilacje bez interfejsu graficznego ułatwiają konfigurowanie emulatora przepływów pracy Dockera i trybu ciągłej integracji (CI).

W ramach tej aktualizacji wprowadziliśmy dalsze ulepszenia, dzięki którym emulator będzie działać z minimalną liczbą zależności. Kompilacje bez interfejsu graficznego z Linuksem nie zawierają już bibliotek pulseaudio ani libX11. Biblioteki udostępnione zależne od systemu, które nie są spakowane z emulatorem, zostały zmniejszone do tej listy:

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

Biblioteki interfejsu Qt zostały zaktualizowane do wersji 5.12 LTS

Ta aktualizacja zawiera te ulepszenia z wersji LTS Qt 5.12:

  • Aby uniknąć awarii podczas dekodowania niektórych obrazów systemu przez Qt, emulator używa teraz własnej kopii pliku libpng do dekodowania obrazów PNG.libpng
  • Aby rozwiązać problemy z niektórymi instalacjami na Linuksa zawierającymi niezgodne wersje niektórych bibliotek zależnych od Qt, dodaliśmy w emulatorze pakiety libfreetype, libsoftokn, libsqlite3 i libxkbcommon.
  • Do pobierania wymiarów monitorowania emulator używa teraz natywnych bibliotek obsługi okna platformy, zamiast korzystać z bibliotek Qt, które zwracały niemiarodajne wyniki.

Automatyczne optymalizacje procesora po uruchomieniu „na zimno”

Aby rozwiązać problem wykorzystania procesora, emulator uruchamia teraz te polecenia ADB podczas „zimnego rozruchu” po otrzymaniu sygnału boot complete:

adb shell settings put screen_off_timeout 214783647
To polecenie wydłuża czas oczekiwania na wyłączenie ekranu, aby można było używać emulatora w trybie baterii bez ładowania. W trybie baterii wykorzystanie procesora w tle jest znacznie ograniczone.
W trybie ładowania AC działania w tle, na przykład aktualizacje aplikacji, GMSCore mogą przejąć wszystkie rdzenie procesora urządzenia – a co za tym idzie – komputer użytkownika bez ostrzeżenia.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
To polecenie anuluje uprawnienia aplikacji wyszukiwarki Google do mikrofonu, co znacznie zmniejsza wykorzystanie procesora w tle na ekranie głównym i w Menu z aplikacjami, gdy wyszukiwarka Google jest aktywna.
To polecenie jest uruchamiane dodatkowo z domyślnym działaniem emulatora wyłączania dźwięku hosta dla hosta. Oprócz tego automatycznie umieszcza w ten sposób narzędzia do ograniczania wykorzystania procesora zgodnie z opisem w przypadku wykrywania słów-kluczy od wersji 28.0.23.

Nowe zmienne środowiskowe do monitorowania wydajności

Teraz możesz używać 2 nowych zmiennych środowiskowych, aby umożliwić szczegółowe monitorowanie wydajności i wykorzystania zasobów emulatora.

SHOW_PERF_STATS=1
Ta zmienna środowiskowa umożliwia śledzenie wykorzystania procesora i pamięci RAM. Śledzenie wykorzystania pamięci RAM pozwala rozróżnić wykorzystanie karty graficznej i całkowitą ilość pamięci rezydentnej.
ANDROID_EMU_TRACING=1
Ta zmienna środowiskowa umożliwia drukowanie za każdym razem, gdy operacja przetwarzania danych wejściowych lub graficznych zajmuje dużo czasu (ponad 1 ms).
Używamy tej zmiennej środowiskowej również do diagnozowania problemów, które występują u użytkowników systemu Windows i zawierają więcej zacięć (puszczonych klatek) niż w systemach macOS i Linux.

Ogólne ulepszenia w projekcie Marble

Ta aktualizacja obejmuje też następujące ogólne ulepszenia wprowadzone w ramach inicjatywy Project Marble:

  • Możesz teraz natychmiast wstrzymać wszystkie procesory wirtualne w emulatorze za pomocą tych poleceń konsoli:
    • adb emu avd pause
    • adb emu avd resume
  • Znacznie zmniejszony narzut związany z rysowaniem przez OpenGL. To ulepszenie zmniejsza wykorzystanie procesora, gdy emulator odtwarza animacje.
  • Przywróciliśmy obsługę urządzenia do sieci wirtualnej e1000 mainline QEMU. Możesz użyć tego urządzenia, aby skonfigurować emulator w środowisku mostka sieciowego. W środowisku skróconym emulator jest wyświetlany w sieci hosta, a sieć hosta – w emulatorze.
  • Do uruchamiania emulatora są teraz używane pliki binarne BIOS odpowiednie dla QEMU 2.12.
  • Zaktualizowano ffmpeg do wersji 3.4.5 na potrzeby kodowania i dekodowania wideo.
  • Znacznie obniżono obciążenie głównej pętli wejścia-wyjścia QEMU w systemie macOS przez zastąpienie głównej pętli bazowej opartej na select() główną pętlą opartą na kqueue.
  • Zwiększono rozmiar bufora logcat do 2 MB, aby rozwiązać problemy z nieoczekiwanym niestabilnym wyświetlaniem w czasie rzeczywistym podczas uruchamiania programu logcat za pomocą emulatora.
  • Emulator domyślnie eksportuje teraz zmienną środowiskową LC_ALL=C. Ta zmiana rozwiązuje problemy z awariami i niezgodnością związane z uruchamianiem emulatora w różnych regionach.
  • Możesz teraz śledzić wykorzystanie procesora i pamięci RAM przez emulator, korzystając ze statystyk wydajności, które są dostępne po wybraniu Rozszerzone ustawienia > Ustawienia > Zaawansowane > Statystyki wydajności. Użyj tych statystyk, aby szybko zdiagnozować problemy, jeśli emulator wykorzystuje za dużo procesora lub pamięci RAM.
  • Funkcja glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE używa teraz wyniku GPU hosta zamiast emulowanego. Ta zmiana rozwiązuje problemy, które polegają na niewyświetlaniu się obrazów i zasobów z powodu nieprawidłowego formatu odczytu.
  • Dodano obsługę rozszerzeń OpenGL ES GL_EXT_texture_format_BGRA8888 i GL_APPLE_texture_format_BGRA8888, jeśli są one obsługiwane przez hosta.
  • Dodaliśmy więcej informacji diagnostycznych do interfejsu Zgłaszanie błędów. Poza tym raporty o błędach możesz wyświetlić w konsoli za pomocą tych poleceń:
    • telnet localhost 5554
    • avd bugreport
  • W przypadku obrazów systemowych Androida Q emulator zwiększa minimalny rozmiar pamięci RAM do 2 GB.
  • Dodaliśmy więcej logowania i drukowania, gdy nie można zainicjować OpenGL lub hipernadzorcy.
  • Jeśli emulator nie może uruchomić równoczesnego -read-onlyinstancji AVD, emulator próbuje teraz uruchomić go ponownie -read-only jeszcze 3 razy w ciągu 3 sekund. Ta zmiana zwiększa prawdopodobieństwo, że emulator będzie w stanie uruchomić równoczesne instancje -read-only AVD, jeśli inne możliwe do zapisu wystąpienia AVD nie zostaną usunięte nieaktualnych plików.
  • W przypadku nadchodzących obrazów systemu emulator obsługuje teraz narzędzie Hardware Composer 2.0. Ta zmiana powinna zmniejszyć obciążenie kierowcy podczas uruchamiania większości animacji.
  • Kompilacja emulatora jest teraz oparta na CMake/Ninja.
  • W interfejsie rozszerzonych elementów sterujących emulatora linie separatora w tabeli skrótów klawiszowych zostały przywrócone.
  • Użytkownicy mogą teraz wyrazić zgodę na przekazywanie naszemu zespołowi danych o wykorzystaniu procesora i pamięci RAM w 10-sekundowych odstępach. Wykorzystujemy te wskaźniki, aby wzbogacić nasze dane o wykorzystaniu zasobów emulatora o różne przypadki użycia przekazywane przez użytkowników. Dzięki temu możemy zwiększyć wydajność i sprawność działania emulatora.

Ogólne poprawki dotyczące marmuru w projekcie

Aktualizacja ta zawiera również następujące ogólne poprawki wprowadzone w ramach inicjatywy Project Marble:

  • Rozwiązaliśmy problemy z wibracjami i nieprawidłowymi klatkami, które były wyświetlane w systemach z procesorami graficznymi Intel podczas korzystania z obrazów systemu Android Q.
  • Rozwiązaliśmy problemy, które powodowały wyświetlanie czarnego ekranu podczas używania obrazów systemu Androida Q ze skórkami telefonu Pixel 2 XL (lub dowolnej skórki z wycięciem albo zaokrąglonymi rogami).
  • Rozwiązaliśmy problem, który powodował, że opcja wiersza poleceń -partition-size nie ustawiała rozmiaru partycji danych.
  • Naprawiono błąd, który w niektórych sytuacjach kręcił się i zajmował cały rdzeń procesora, gdy dźwięk pulsu na emulatorze Linx kręcił się wokół własnej osi.
  • Rozwiązaliśmy problemy z niedozwolonym dostępem do pamięci podczas przetwarzania skompresowanych tekstur.
  • Naprawiliśmy błędy GL, które występowały na hoście w glTexSubImage2D podczas aktualizowania niektórych buforów gralloc (w formacie RGB 565, RGB10A2, RGB(A)16F).
  • Rozwiązaliśmy problem z wyświetlaniem w obrazach systemu Androida Q ze zrzutami, w których geometria obszaru powiadomień była renderowana z nieprawidłowym ustawieniem dzielnika instancji.
  • Naprawiliśmy kilka trudnych do odtworzenia awarii i zawieszeń, które występowały przy uruchamianiu, które występowały w wyniku utraty sygnałów Qt lub niespójnych stanów podczas uruchamiania.
  • Naprawiono wiele problemów z równoczesnością. Teraz możemy zbudować emulator Linuksa z ThreadSanitizer (TSAN), który pozwala łatwo wykrywać błędy, których nie udałoby się odtworzyć.
  • Użytkownicy Linuksa: odkryliśmy, że w przypadku niektórych jąder hosta jądro Androida gościa może zakończyć się niepowodzeniem i zamknąć w KVM w wyniku ogólnego błędu sprzętowego. Gdy to się stanie, emulator będzie teraz mieć wartość abort(), aby zwiększyć możliwość debugowania (wcześniej emulator po prostu się zawiesił).
  • Użytkownicy systemu Linux: dla wygody użytkowników konfiguracji CI możesz używać nowej opcji wiersza poleceń -stdouterr-file <file-name>, aby przekierowywać stdout i stderr do pliku.
  • Rozwiązaliśmy problem, który powodował nieprawidłowe korzystanie z pola SO_REUSEADDR. Więcej informacji znajdziesz w szczegółach zobowiązania.
  • Rozwiązaliśmy długotrwały problem z emulatorem Windows, który powodował, że nie uruchamiały się podrzędne procesy, np. polecenia ADB, jeśli w nazwie użytkownika były spacje.
  • Naprawiono problem braku inicjowania RCU w wątkach procesora wirtualnego HAXM. Ta poprawka może rozwiązać niektóre problemy z wypadkami i warunkami wyścigów.
  • Naprawiliśmy awarię, która występowała z określonymi wzorcami zapisywania i wczytywania zrzutów z interfejsu zrzutów przy użyciu najnowszych obrazów systemu Android Q.
  • Rozwiązaliśmy problem, który powodował, że kamera sceny wirtualnej była pusta, gdy emulator był inicjowany ze zrzutu, jeśli podczas zapisywania zrzutu było odtwarzane makro AR.
  • Rozwiązaliśmy problem, który powodował, że niektórzy użytkownicy korzystający z konfiguracji pulpitu zdalnego widzieli czarny ekran podczas uruchamiania emulatora w systemie Linux. Aby tego uniknąć, emulator teraz bezpośrednio konfiguruje MESA_RGB_VISUAL. Więcej informacji znajdziesz w szczegółach zobowiązania.
  • Rozwiązaliśmy problem, który powodował, że na telewizorach AVD pojawiały się przyciski obracania.
  • Rozwiązaliśmy problem, który polegał na tym, że gdy emulator był zawsze na górze, przy każdym obracaniu emulatora pojawiało się rozszerzone okno sterowania.

Profile sprzętu na urządzeniach składanych

Emulator zawiera teraz profile sprzętowe na urządzeniach składanych. Aby korzystać z nowych profili sprzętu, musisz korzystać z Android Studio 3.5 Canary w wersji 10 lub nowszej.

Do utworzenia AVD możesz użyć 2 składanych profili sprzętu:

  • Składany 7,3 cala: 1536 x 2152 po złożeniu, 4,6 cala 840 x 1960 złożony
  • Składany 8 cali: 2200 x 2480 po złożeniu, 6,6 cala 1480 x 2480 po złożeniu

Gdy uruchomisz emulator przy użyciu jednego z tych profili sprzętowych, możesz składać i otwierać urządzenie, korzystając z działań składania i rozwijania na pasku narzędzi emulatora, poleceń konsoli lub tych skrótów klawiszowych:

  • Fold: Ctrl + F (Command + F w systemie macOS)
  • Rozwiń: Ctrl + U (Command + U w systemie macOS)

Makra AR

Emulator zawiera teraz makra AR, które ułatwiają testowanie typowych działań AR. W ten sposób możesz na przykład przywrócić wszystkie czujniki urządzenia do stanu domyślnego.

Więcej informacji znajdziesz w artykule Testowanie typowych działań AR za pomocą makr.

Obsługa interfejsu Vulkan (Windows, Linux)

Użytkownicy systemów Windows i Linux mogą teraz testować aplikacje Vulkan z użyciem emulatora Androida do wersji Vulkan 1.1 i używać zgodnego obrazu systemu (Android Q Beta 3 lub nowszy w przypadku wersji Vulkan 1.1, Android Q Beta 2 w przypadku wersji Vulkan 1.0) i zgodnego GPU hosta (obejmuje to większość układów GPU Intel, NVIDIA i AMD z 2014 roku i nowszych).

Aby włączyć obsługę interfejsu Vulkan, musisz dodać do pliku ~/.android/advancedFeatures.ini te flagi funkcji (jeśli nie istnieje, utwórz plik):

  • Vulkan = on
  • GLDirectMem = on

Wstępna pomoc dla programistów ROM

Deweloperzy ROM, którzy tworzą cele sdk_phone_x86 lub sdk_phone_x86_64 (warianty userdebug, eng) w gałęzi AOSP master, mogą teraz uruchamiać emulator z obsługą Vulkana.

Obsługa jest wciąż w fazie eksperymentalnej i jest przeznaczona głównie dla deweloperów, którzy pracują nad obrazami systemu, sterownikami i silnikami gier. Nadal brakuje wielu rozszerzeń. Pamięć HOST_COHERENT jest jednak obsługiwana, więc możesz teraz uruchomić przykładowe samouczki interfejsu Vulkan API.

Jeśli używasz Linuksa, możesz to zrobić przy użyciu następujących poleceń:

mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem

Renderowanie za pomocą interfejsu Vulkan na platformie Skia

Procesory graficzne NVIDIA i AMD obsługujące interfejs Vulkan obsługują również interoperacyjność typu „zero-copy” z OpenGL przez rozszerzenie GL_EXT_memory_objects. Emulator wykorzystuje tę możliwość, aby zapewnić pełny sposób renderowania interfejsu Androida za pomocą interfejsów Skia Vulkan API.

Jeśli masz procesor graficzny NVIDIA lub AMD obsługujący interfejs Vulkan, użyj tych poleceń, aby przetestować renderowanie Skia za pomocą zgodnego obrazu systemu (Android Q Beta 3 lub nowszy):

adb shell
su
setprop debug.hwui.renderer skiavk
stop
start

Obsługa interfejsu Vulkan w systemie macOS

Obsługa systemu macOS jest nadal w fazie eksperymentalnej, ale emulator zawiera już interfejsy API Swiftshader, MoltenVK i libportability (gfx-rs). Możesz eksperymentować z tymi interfejsami API, ustawiając następujące zmienne środowiskowe:

  • Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • swoboda praw autorskich: ANDROID_EMU_VK_ICD=portability

Znane problemy

Funkcja HAXM może czasami nie zmapować spójnej pamięci interfejsu Vulkan na gościa i wyłącza emulator. Ten problem postaramy się rozwiązać w przyszłej aktualizacji HAXM.

Emulator strumieniowania gRPC (Linux)

Zawsze staramy się, aby emulator był jak najbardziej uniwersalny, umożliwiając renderowanie GPU hosta i interaktywność w największym zakresie kontekstów działania. Nasi użytkownicy CI i komputerów zdalnych od dawna mają następujące problemy:

  • Automatyczne wysyłanie poleceń wejściowych do emulatora wymaga uruchomienia poleceń powłoki adb, które może powodować duże obciążenie, lub użycia konsoli Telnet, która jest szybsza, ale może nie działać w przypadku niektórych konfiguracji sieciowych.
  • Użytkownicy CI często używają emulatorów bez interfejsu graficznego, co może utrudniać zauważenie problemów wymagających widoczności lub interakcji na ekranie.
  • Użytkownicy komputerów zdalnych często nie mogą korzystać z emulatora podczas używania renderowania GPU hosta, ponieważ renderowanie GPU jest często powiązane z niewirtualnymi wyświetlaczami hosta.

Aby rozwiązać ten problem, uruchamiając na komputerze z systemem Linux emulator obsługuje teraz usługę gRPC. gRPC to ogólna platforma RPC działająca przez HTTP.

Domyślnie usługa gRPC emulatora jest wyłączona, ale możesz ją aktywować za pomocą tej opcji wiersza poleceń, gdzie <port> to port, na którym emulator powinien obsługiwać żądania gRPC (zwykle 5556):

-grpc <port>

Po uruchomieniu usługi polecenia gRPC mogą być udostępniane klientom. Obecny zestaw poleceń umożliwia wysyłanie zdarzeń wejściowych i odbieranie zrzutów ekranu. Te polecenia pomagają rozwiązać następujące problemy:

  • Polecenia wejściowe mogą być wysyłane do emulatora bez konieczności przesyłania dużych ilości danych przez HTTP. HTTP umożliwia też wysyłanie poleceń w dodatkowych konfiguracjach sieci.
  • Polecenia zrzutu ekranu można wysłać, aby wykonać zapytanie dotyczące bieżącego ekranu, nawet jeśli emulator działa bez interfejsu graficznego. Aby zapewnić interaktywność, zdarzenia wejściowe mogą być również wysyłane z powrotem do emulatora.
  • Użytkownicy komputerów zdalnych mogą uruchamiać emulator bez interfejsu graficznego na głównym wyświetlaczu z renderowaniem z akceleracją przez GPU, a za pomocą gRPC do pobierania zrzutów ekranu i wysyłania zdarzeń wejściowych w celu interakcji z emulatorem.

Pełną listę dostępnych poleceń zawiera ten protokół.

Aby ułatwić Ci rozpoczęcie pracy z gRPC, przygotowaliśmy przykładowe klienty, do których możesz się odnieść.

Obecnie obejmuje to następujące przykłady:

  • Usługa w języku Go, której można używać do wysyłania zapytań dotyczących stanów emulatora.
  • Aplikacja React, która demonstruje zdalną interaktywność za pomocą zrzutów ekranu i wejściowych wywołań RPC. Ten przykład wymaga bufora protokołu w wersji 3.7.0 lub nowszej.
  • Przykładowy kod w języku Python, który wysyła zapytanie do konfiguracji maszyny wirtualnej emulatora, a następnie wysyła serię poleceń.

28.0.25 (29 marca 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

Kompilacja emulatora bez interfejsu graficznego

Skonfigurowanie emulatora w przypadku Dockera i innych przepływów pracy ciągłej integracji (CI) było trudne ze względu na niejawne oczekiwania, czy system będzie w stanie obsługiwać Qt wraz z zależnościami jego bibliotek wspólnych (między innymi).

Jako pierwszy krok do rozwiązania tego problemu wprowadziliśmy wariant programu uruchamiającego emulator z plikami wykonywalnymi QEMU, który nie zależy od Qt. W Linuksie nadal istnieje link do libX11, ale mamy nadzieję, że wkrótce go usuniemy.

Aby użyć emulatora bez interfejsu graficznego, uruchom emulator w zwykły sposób z poziomu wiersza poleceń, ale zastąp wywołanie binarne emulatora poleceniem emulator-headless. Więcej informacji znajdziesz w aktualizacji do wersji 28.1.8 Canary.

  • Usunięto drgania i nieprawidłowe wyświetlanie klatek w procesorach graficznych Intel podczas uruchamiania obrazów systemu Androida Q.
  • Rozwiązaliśmy problemy, które powodowały wyświetlanie czarnego ekranu w przypadku korzystania z obrazów systemu Android Q ze skórkami telefonu Pixel 2 XL.
  • Do uruchomienia emulatora są teraz używane najnowsze pliki binarne BIOS. Ta zmiana może ograniczyć liczbę błędów „żądania wyłączenia procesora wirtualnego”, które pojawiają się czasami przy uruchamianiu emulatora w systemie Windows.
  • Dodaliśmy poprawkę na problem z nieprawidłowym wyświetlaniem podczas wznawiania obrazów systemu Android Q ze zrzutu.
  • Użytkownicy zgłaszali problemy z nieautoryzowanymi emulatorami z powodu niezgodnej zmiany ADB w narzędziach platformowych w wersji 28.0.2. Możesz teraz bezpiecznie używać ADB z narzędzi platformowych w wersji 28.0.2 za pomocą emulatora. Jeśli masz problemy z nieautoryzowanymi emulatorami, wykonaj te czynności:
    1. Zamknij wszystkie emulatory.
    2. Usuń pliki ~/.android/adbkey i ~/.android/adbkey.pub.
    3. Uruchom to polecenie: adb kill-server
    4. Uruchom to polecenie: adb devices
    5. Wyczyść dane AVD.
    6. Ponownie uruchom emulator.

28.0.23 (29 stycznia 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

Domyślnie wejście audio hosta jest wyłączone

W ostatnim poście na Reddicie opisaliśmy, jak system operacyjny Android gościa zawsze wykorzystuje dźwięk z mikrofonu hosta, dzięki czemu funkcja „OK Google” może działać w nieoczekiwany sposób. Przepraszamy za tę sytuację. Razem z zespołem Androida postaramy się, aby wykrywanie słów-kluczy było wyłączone również w obrazie systemu.

Aby rozwiązać ten problem, wprowadziliśmy te zmiany:

  • Rzeczywiste dane audio hosta są teraz domyślnie blokowane. Gdy gość korzysta z mikrofonu, przekazywana jest cisza, a nie dźwięk gospodarza.
  • Jeśli chcesz korzystać z danych dźwiękowych hosta, możesz teraz włączyć tę opcję. Aby to zrobić, kliknij Ustawienia rozszerzone > Mikrofon i włącz opcję Mikrofon wirtualny korzysta z wejścia audio hosta. Ta opcja jest automatycznie wyłączana po ponownym uruchomieniu emulatora.

Aktualności na temat analizy wykorzystania procesora

Podczas badań w Project Marble zauważyliśmy, że duże wykorzystanie procesora w emulatorze można ogólnie podzielić na te 3 kategorie:

Podczas bezczynności: automatyczne aktualizacje aplikacji w obrazach w Sklepie Play

Ustaliliśmy, że wszystkie zainstalowane aplikacje są aktualizowane w losowych odstępach czasu, nawet jeśli użytkownik nie jest zalogowany. W trakcie tego procesu wykorzystanie procesora jest napędzane do liczby rdzeni x 100% (zwykle ok. 400%) w GMSCore i dex2oat. Aby rozwiązać ten problem, wyłącz automatyczne aktualizacje aplikacji w aplikacji Sklep Play.

W przypadku bezczynności: wykrywanie słowa-klucza

Gdy strona główna jest na ekranie głównym bez żadnej aplikacji na pierwszym planie, jej wykorzystanie może być bardzo duże (ok. 25% przy wzroście do 50%). Dzieje się tak przez wykrywanie słowa-klucza, które stale wysyła ping do hosta. Nie możesz rozwiązać tego problemu, wyłączając wejście audio hosta, ponieważ koszt procesora jest głównie spowodowany czasem potrzebnym na dotarcie z hosta do gościa. Możesz jednak temu zapobiec, anulując uprawnienia dotyczące mikrofonu w aplikacji Google.

Gdy użytkownik jest aktywny, a czasem bezczynny: animacje

Trzecim źródłem wysokiego obciążenia procesora są animacje. Odkryliśmy, że optymalizacja stosu sterowników karty graficznej może też zmniejszyć wykorzystanie procesora, nawet gdy emulator nie jest nieaktywny. W ramach projektu Marble będziemy stopniowo wprowadzać optymalizacje sterowników karty graficznej.

28.0.22 (21 grudnia 2018 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Rozwiązaliśmy od dawna problem polegający na tym, że w niektórych ustawieniach emulator Maca powodował ponowne uruchamianie lub panikowanie jądra przy zapisywaniu przez Quickboot. (Numer 120951634)
  • Jeśli używasz pliku zmapowanego jako zrzutu pamięci RAM, emulator wyraźnie odznacza mapowanie pliku przy wyjściu.

28.0.20 (11 grudnia 2018 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Rozwiązaliśmy problem w systemie Windows, który powodował, że w przypadku niektórych modeli procesorów graficznych Intel emulator zawieszał się podczas wczytywania zrzutów dysku.
  • Rozwiązaliśmy problem, który powodował występowanie stanu urządzenia ADB unauthorized w przypadku korzystania z niestandardowej lokalizacji ANDROID_SDK_HOME.
  • Rozwiązaliśmy problem w systemie Windows, który powodował awarię emulatora podczas uruchamiania obrazów systemu z wyłączoną akceleracją procesora.
  • Rozwiązano problem z pikselowym ekranem emulatora. Teraz próbkowanie w dół powinno działać.
  • Rozwiązaliśmy problem, który powodował, że w systemie macOS 10.14 i nowszym sterowanie wyświetlaniem obrazu myszą w scenie wirtualnej mogło być zbyt czułe z powodu interakcji z nowymi ustawieniami zabezpieczeń ułatwień dostępu.
  • Poprawiliśmy błąd w obliczaniu strefy czasowej, który mógł sporadycznie zmieniać zegar emulatora.
  • Naprawiono błędy renderowania w różnych aplikacjach cocos2d i unreal Engine.
  • Dodaliśmy obsługę emulatora połączeń peer-to-peer w sieci Wi-Fi. Jeśli używasz najnowszego obrazu ze Sklepu Play, 2 emulatory mogą teraz rozmawiać ze sobą bezpośrednio przez Wi-Fi. Aby użyć połączenia peer-to-peer w sieci Wi-Fi, uruchom 2 przebiegi AVD z tymi samymi argumentami -wifi-server-port i -wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Dodaliśmy obsługę większej liczby kamer internetowych w systemie Windows dzięki zastosowaniu niezgodnych rozmiarów klatek i dynamicznej zmianie rozmiaru, tak aby pasowała do ustawień kamery w gościach Androida.

28.0.16 (listopad 2018 r.)

Aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Użycie zasobów

Emulator używa teraz mniej pamięci RAM, zwłaszcza w przypadku obrazów systemowych z interfejsem API na poziomie 28 lub wyższym. Obrazy te obejmują zwiększone wykorzystanie pamięci przez sterowniki karty graficznej gościa.

Zwiększyliśmy też wykorzystanie zasobów w następujących obszarach:

  • Zmniejszone wykorzystanie pamięci emulatora podczas długo trwających testów. Jeśli podczas długotrwałych testów nadal występują problemy z wykorzystaniem pamięci, utwórz problem, który opisuje Twój przypadek użycia w narzędziu do śledzenia problemów.
  • Zmniejszone wykorzystanie procesora podczas uruchamiania aplikacji z animacjami.
  • Rozwiązaliśmy problem, który powodował wyciek kontekstu QEMU AIO w systemie Windows.

Uruchamiaj wiele instancji jednego AVD jednocześnie

Teraz możesz uruchamiać wiele instancji tego samego AVD i uruchamiać je jednocześnie. Instancje uruchamiane po pierwszej instancji są dostępne tylko do odczytu, a zmiany wprowadzone na dysku wirtualnym gościa są odrzucane przy zamykaniu.

Aby jednocześnie uruchomić wiele instancji tego samego AVD, uruchom wszystkie instancje z wiersza poleceń, używając flagi -read-only po pierwszej instancji.

Ta funkcja jest możliwa dzięki skopiowaniu plików QCOW2 powiązanych z możliwymi do zapisu częściami obrazu Androida. Aby ułatwić zarządzanie miejscem na dysku, dołączyliśmy też narzędzie wiersza poleceń qemu-img, które umożliwia wstępne zatwierdzenie plików QCOW2 przed uruchomieniem wielu instancji.

Dodatkowo w połączeniu z funkcją uruchamianych przez pliki zrzutów pamięci RAM gościa wiele instancji AVD współużytkuje podstawowy zrzut AVD Quickboot jako wspólne źródło pamięci RAM w trybie kopiowania podczas zapisu. Ta właściwość oznacza, że instancje mają wspólną dużą ilość pamięci RAM. Za pomocą tej funkcji możesz przeprowadzać testy, które wymagają równoległego działania na kilku urządzeniach.

Chętnie poznamy Twoją opinię na temat możliwych przypadków użycia w ramach standardowego przepływu pracy interaktywnego lub CI. Utwórz problemy lub zagłosuj za nimi w narzędziu do śledzenia problemów.

Zrzuty pamięci RAM gości opartej na plikach

Dzięki wstępnemu przydzielaniu i mapowaniu pamięci RAM gościa na plik emulator może teraz zapisywać zrzuty szybkiego rozruchu w czasie działania, zamiast wykonywać całą pracę przy zamykaniu. Jeśli podczas zamykania emulatorów występują obecnie długie czasy oszczędzania, włącz tę funkcję, aby poprawić wydajność Quickboot. Domyślnie zrzut Quickboot jest zapisywany przy zamykaniu i ładowany ponownie za każdym razem, tak jak przy zawieszaniu i wybudzeniu prawdziwego urządzenia.

Pamięć RAM Androida jest teraz domyślnie zapisywana automatycznie, więc jeśli chcesz określić stan urządzenia i wielokrotnie wczytywać dane od tego stanu, musisz poprosić emulator o odrzucenie zmian po każdej sesji. Możesz to zrobić na kilka sposobów:

  • Przy uruchamianiu emulatora z poziomu wiersza poleceń użyj flag -no-snapshot-save lub -read-only.
  • Otwórz Rozszerzone elementy sterujące > Zrzuty dysku > Ustawienia i przełącz opcję Automatycznie zapisywać bieżący stan na Quickboot? na Nie.
  • Po wybraniu tej opcji musisz ponownie uruchomić emulator. Jeśli emulator ma włączone automatyczne zapisywanie, możesz uruchomić to polecenie, aby ustawić punkt kontrolny:
    adb emu avd snapshot remap 0
    
    Po uruchomieniu tego polecenia zrzut Quickboot emulatora pozostanie w tym punkcie kontrolnym. Uruchom to samo polecenie jeszcze raz, aby wczytać emulator z punktu kontrolnego.

Zrzuty, które są wykonywane i wczytywane przy użyciu funkcji interfejsu zrzutów w taki sam sposób jak wcześniej, bez mapowania plików.

To duża zmiana w sposobie działania Quickboot, dlatego będziemy wdzięczni za Twoją opinię na temat tego, czy poprawia to jego wydajność i jakie problemy występują podczas jego używania. Jeśli wystąpią problemy, możesz wyłączyć tę funkcję, dodając ten wiersz do pliku ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

Po uruchomieniu emulatora ze zrzutu (za pomocą opcji wiersza poleceń -snapshot lub z poziomu zrzutu w menedżerze AVD) emulator wyłącza zarówno automatyczne zapisywanie zrzutów Quickboot, jak i zapisywanie zrzutów Quickboot przy zamykaniu. Zmniejsza to szanse na przypadkowe zastąpienie zrzutu Quickboot oraz pozwala uniknąć powolnych ścieżek zastępczych, które nie korzystają z opartych na plikach zrzutów Quickboot.

QEMU 2.12

Zmieniliśmy wariant QEMU z QEMU 2.9 na QEMU 2.12. Ta aktualizacja obejmuje te zmiany QEMU:

Oto kilka ważnych zmian, które wpływają na emulator Androida:

  • x86: gdbstub zapewnia teraz dostęp do rejestrów SSE.
  • Obrazy na dysku: blokowanie obrazów jest dodane i włączone domyślnie. Wiele procesów QEMU nie może zapisywać danych w tym samym obrazie, jeśli host obsługuje blokowanie OFD lub posix, chyba że opcje są określone inaczej.
  • Funkcja qemu-img: qemu-img resize obsługuje wstępne przydzielanie nowych części obrazu.
  • Zmniejszanie liczby QCOW2 jest teraz obsługiwane w qemu i qemu-img.

Ułatwienia dostępu

  • Rozwiązaliśmy problemy z czytnikami ekranu i ulepszyliśmy obsługę tych narzędzi w interfejsach Nagrywanie ekranu i Migawka.
  • Ikony powiadomień szybkiego uruchamiania są teraz bardziej dostępne dla użytkowników, którzy nie rozróżniają kolorów.

Grafika

  • Rozwiązaliśmy problem z dostępem poza granicami pamięci, który mógł występować w przypadku wskaźników tablicy wierzchołkowej OpenGL ES.
  • Niektóre starsze GPU nie obsługiwały OpenGL 2.1 lub nowszego (co jest wymagane) albo miały inne problemy z niezawodnością. Te problemy mogą spowodować awarię emulatora przy uruchamianiu lub jego blokowanie albo być niemożliwe do użycia przy domyślnym ustawieniu GPU. Emulator automatycznie przełącza się teraz na mechanizm renderowania Swiftshader, jeśli wykryje, że te procesory graficzne są używane.
  • Rozwiązaliśmy problem, który powodował, że emulator nie publikował poprawnego bufora ramek, jeśli w momencie eglSwapBuffers obiekt FBO != 0 był powiązany z innym buforem.
  • Rozwiązanie problemu polegającego na tym, że wirtualny wyświetlacz Androida pojawiał się tylko w lewym górnym rogu. Naszym zdaniem było to spowodowane nieprawidłowo skonfigurowanymi zmiennymi środowiskowymi Qt. Emulator zastępuje teraz wszystkie zmienne środowiskowe powiązane ze skalowaniem Qt.
  • Rozwiązaliśmy problem, który powodował awarię emulatora w niektórych sytuacjach podczas wczytywania aplikacji GLES1 ze zrzutu.
  • Rozwiązaliśmy problemy z równoczesnością w OpenGL i uruchamianie wątków renderowania, które mogły spowodować podwójne zwolnienie lub uszkodzenie danych.
  • Emulator Androida obsługuje teraz skompresowaną obsługę tekstur ASTC LDR (GL_KHR_texture_compression_astc_ldr) w przypadku obrazów systemowych korzystających z interfejsu API na poziomie 28 lub wyższym.
  • Większość współczesnych GPU powinna teraz mieć możliwość domyślnego uruchamiania emulatora z włączonym standardem OpenGL ES 3.x bez użycia flagi funkcji GLESDynamicVersion.
  • Interfejs -gpu guest (renderowanie programowe w trybie gościa) został wycofany. Obrazy systemowe interfejsu API na poziomie 28 lub wyższym są teraz automatycznie przełączane na używanie Swiftshader (-gpu swiftshader_indirect).
  • Jeśli emulator jest uruchamiany z poziomu wiersza poleceń przy użyciu flagi -no-window, domyślnym mechanizmem renderowania będzie teraz Swiftshader.

Lokalizacja

  • Emulator może teraz aktualizować położenie wraz z szerokością i długością geograficzną. Czujnik wirtualny magnetometru dynamicznie dostosowuje się do kierunku północnego magnetycznego, określając ruch podczas odtwarzania pliku GPX lub KML.
  • Szybkość urządzenia można teraz ustawić na stronie Lokalizacja.
  • W przypadku odtwarzania pliku GPX lub KML szybkość jest ustawiana automatycznie, a po zakończeniu odtwarzania zostaje ustawiona na 0.
  • Wysokość nie jest już ograniczona do zakresu od -1000 do +10 000 metrów.
  • Rozwiązaliśmy problem, który powodował, że lokalizacja wirtualnego GPS-a nie była aktualizowana co jakiś czas, chyba że co najmniej raz zostało otwarte okno rozszerzonych elementów sterujących.

Aparat

W systemie Windows obsługuje teraz więcej kamer internetowych, ponieważ emulator dynamicznie zmienia rozmiar klatek przesyłanych z kamery internetowej. Ta funkcja zapobiega też zawieszaniu się emulatora przy błędach przesyłania klatek.

Sklep Play

Aby rozwiązać problemy z brakiem miejsca na dysku przy obrazach w Sklepie Play, emulator automatycznie zmienia teraz rozmiar partycji danych użytkownika na 6 GB w przypadku uruchomienia nowego AVD w Sklepie Play.

Ogólne ulepszenia jakości i poprawki

  • Niektórzy użytkownicy zgłaszali, że emulator działa wolno. Ustaliliśmy jedną możliwą przyczynę, w której w katalogu tymczasowym emulatora znajduje się zbyt wiele nieaktualnych plików. Aby obejść ten problem, emulator nie przechowuje już w tym katalogu plików kontroli żywotności ADB. Warto też usunąć zawartość tego folderu. Folder znajduje się w jednej z tych lokalizacji (w zależności od systemu operacyjnego):
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS lub Linux: /tmp/android-<username>/*
  • Jeśli nie można uruchomić emulatora z powodu niewystarczającej ilości wolnej pamięci RAM, wyświetli się komunikat o błędzie. Jeśli w systemie Windows brakuje pamięci RAM, ale nadal nie możesz uruchomić emulatora, być może została przekroczona opłata za zobowiązanie. Pomoc w rozwiązaniu tego problemu znajdziesz na stronie rozwiązywania problemów z emulatorem.
  • Opcja wiersza poleceń -sysdir prawidłowo zastępuje wywnioskowany katalog obrazu systemu.
  • Modem wirtualny obsługuje teraz zapytanie +MAI dotyczące aktywności modelu.
  • Rozwiązaliśmy różne problemy z wyciekami pamięci, uszkodzeniem pamięci i wykorzystaniem procesora. Jeśli wystąpiły awarie, wycieki pamięci lub inne wysokie wykorzystanie zasobów, utwórz problem w narzędziu do śledzenia problemów.
  • Rozwiązaliśmy problem, który pojawiał się ponownie w systemie macOS 10.14, polegający na tym, że korzystanie z zestawów słuchawkowych Bluetooth z emulatorem powodowało globalne pogorszenie jakości dźwięku. Aby temu zapobiec, emulator nie używa teraz dźwięku Bluetooth w systemie macOS. (Problem 37070892)
  • Rozwiązaliśmy problem, który powodował, że zegar emulatora nie wskazywał prawidłowej strefy czasowej.
  • Naprawiono powolne działanie emulatora i zawiesza się w systemach Linux z obracającymi się dyskami twardymi (HDD).
  • Naprawiliśmy niektóre ostrzeżenia dotyczące kompilacji, które mogły prowadzić do uszkodzenia stosu w systemie macOS.
  • Rozwiązano problemy, które mogły prowadzić do zgłaszania mylących informacji o zawieszaniu się.
  • Rozwiązaliśmy problem z niszczeniem pul wątków, które mogły powodować awarię, jeśli nie udało się utworzyć jednego z wątków.
  • Rozwiązaliśmy problem z systemem macOS, który powodował niestabilne liczniki czasu, które powodowały zawieszanie się aplikacji i inne dziwne działanie. Jeśli emulator zawiesza się w systemie macOS, utwórz problem w narzędziu Issue Tracker.
  • Rozwiązaliśmy problem, który powodował, że zamknięcie emulatora powodowało wyłączenie interfejsu, ale nie zamknięcie emulatora.
  • Rozwiązano problemy z sporadycznymi awariami, w tym przerwę z powodu otwarcia zbyt wielu wystąpień pliku /dev/urandom.
  • Rozwiązaliśmy problem, który powodował, że emulator nie uruchamiał się po pierwszym uruchomieniu, jeśli działanie ADB zostało wyłączone z powodu wymuszonego zakończenia.
  • Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, zgłoś problem w narzędziu do śledzenia problemów.
  • Rozwiązaliśmy problem, który powodował, że połączenia ADB mogły zostać uszkodzone podczas wczytywania zrzutu.
  • Rozwiązaliśmy problem, który powodował, że podczas wznawiania zrzutu w oknie emulatora pojawiał się afterimage lub teleportował poza ekranem, gdy orientacja urządzenia różniła się od domyślnej orientacji AVD.
  • Rozwiązaliśmy problemy powodujące awarie podczas zapisywania zrzutów.
  • W Linuksie systemy plików btrfs mogą powodować skrajne spowolnienie działania, ponieważ emulator automatycznie zapisuje zrzuty i używa funkcji kopiowania podczas zapisu na urządzeniach dyskowych wirtualnych. Zalecamy wyczyszczenie katalogu ~/.android/avd i uruchomienie w pustym katalogu ~/.android/avd tego polecenia:
    chattr +C
    
    Spowoduje to utworzenie nowych zrzutów w folderze z wyłączoną funkcją kopiowania przy zapisie.

HAXM 7.3.2

Jeszcze raz wspomnimy o technologii HAXM 7.3.2, bo musi ona zostać zainstalowana, aby ostatnie obrazy systemu działały prawidłowo w emulatorze. Wersja HAXM 7.3.2 powinna być już dostępna w wersji stabilnej. Można ją też zainstalować ręcznie ze strony https://github.com/intel/haxm/releases.

Oto kilka problemów, które rozwiązano w tej wersji HAXM:

  • Naprawiono losowe awarie systemów operacyjnych gości korzystających z najnowszego jądra Linuksa (>= 4.6). Na przykład Ubuntu 18.04 (#39, #74).
  • Naprawiliśmy błąd emulatora instrukcji x86, który mógł prowadzić do awarii hosta (#93).

Wycofanie 32-bitowych wersji systemu Windows

Ze względu na niskie wykorzystanie i wysokie koszty utrzymania planujemy wycofać 32-bitową wersję emulatora Androida, która działa w systemie Windows. Zanim usuniemy 32-bitową wersję emulatora Androida, a dopiero potem zakończy się jego cykl życia, wdrożymy plan migracji. Zachęcamy jednak do przesyłania opinii i wątpliwości związanych z tą przyszłą zmianą.

Jeśli obecnie korzystasz z 32-bitowej wersji emulatora Androida działającego w systemie Windows, daj nam znać w narzędziu do śledzenia problemów, i daj nam znać, jak najlepiej współpracować z Tobą.

27.3.10 (sierpień 2018 r.)

Ta aktualizacja zawiera następujące poprawki błędów:

Poprawka konfiguracji rozmiaru pamięci RAM

Niektórzy użytkownicy zgłaszali, że emulator działa wolno. Zidentyfikowaliśmy jedną z możliwych przyczyn nieprawidłowego ustawienia rozmiaru pamięci RAM AVD w pliku config.ini AVD.

Aby temu zaradzić, emulator zwiększa minimalny poziom pamięci RAM obrazów korzystających z interfejsu API na poziomie 26 lub wyższym do domyślnego poziomu w Android Studio, który wynosi 1536 MB. Jeśli plik config.ini AVD nie zawiera nazwy hw.ramSize w megabajtach, zgłoś problem w narzędziu Issue Tracker. Plik config.ini znajdziesz w tej lokalizacji:

~/.android/avd/<avdname>.avd/config.ini

27.3.9 (lipiec 2018 r.)

Aktualizacja zawiera następujące ulepszenia i poprawki błędów:

Ulepszone komunikaty o błędach dotyczące Windows Hypervisor Platform

Niektórzy użytkownicy mieli problemy z diagnozowaniem, dlaczego nie udało się zainicjować funkcji Windows Hypervisor Platform (WHPX) po aktywowaniu emulatora WHPX. Aby pomóc Ci w diagnozowaniu tych problemów, dodaliśmy bardziej przydatne komunikaty o błędach. Aby włączyć te komunikaty o błędach, uruchom emulator z poziomu wiersza poleceń i użyj flagi -verbose.

Poprawki ogólne

  • Naprawiliśmy błędy OpenGL, które występowały podczas wczytywania zrzutu w aplikacji aparatu.

27.3.8 (lipiec 2018 r.)

Aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Zrzuty danych

Teraz możesz zapisać wiele zrzutów AVD dla danej konfiguracji urządzenia i wybrać, które z nich mają zostać wczytane po uruchomieniu emulatora.

Począwszy od Android Studio 3.2 Canary 13, każda konfiguracja urządzenia ma opcję w ustawieniach zaawansowanych w oknie Konfiguracja urządzenia wirtualnego, dzięki której możesz określić, który zrzut AVD ma być wczytywany podczas uruchamiania programu AVD.

Aby uwzględnić to rozwinięcie funkcji zrzutów, do okna Rozszerzone ustawienia dodaliśmy kategorię Zrzuty dysku. Ten nowy panel zawiera elementy sterujące do zapisywania i wczytywania zrzutów AVD, w tym opcje zapisywania i wczytywania zrzutu szybkiego rozruchu, które wcześniej były dostępne w panelu Ustawienia.

Możesz edytować nazwę i opis każdego zapisanego zrzutu.

Więcej informacji znajdziesz w sekcji Zrzuty dysku.

HAXM 7.2.0

Funkcja HAXM 7.2.0 jest teraz dostępna we wszystkich kanałach.

Ta aktualizacja zawiera poprawki błędów i ulepszoną obsługę dużej ilości pamięci RAM. Dodatkowo dzięki tej aktualizacji HAXM i emulatorowi w wersji 27.3 lub nowszej zrzuty na żądanie wczytują zawartość pamięci RAM, zamiast wczytywać cały zrzut po uruchomieniu urządzenia wirtualnego. Ta zmiana powinna znacznie skrócić czas wczytywania zrzutu.

Więcej informacji znajdziesz w artykule Konfigurowanie przyspieszenia maszyn wirtualnych.

27.2.9 (maj 2018 r.)

Aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Nagrywanie ekranu

Teraz możesz nagrywać obraz i dźwięk za pomocą emulatora Androida i zapisać nagranie w formacie WebM lub animowanym GIF-em.

Opcje nagrywania ekranu znajdują się na karcie Nagrywanie ekranu w oknie Rozszerzone elementy sterujące.

Wskazówka: elementy sterujące nagrywaniem ekranu możesz też otworzyć, naciskając Control + Shift + R (Command + Shift + R na Macu).

Aby rozpocząć nagrywanie ekranu, kliknij przycisk Rozpocznij nagrywanie na karcie Nagranie ekranu. Aby zakończyć nagrywanie, kliknij Zatrzymaj nagrywanie.

Elementy sterujące odtwarzaniem i zapisywaniem nagranych filmów znajdują się u dołu karty Nagrywanie ekranu. Aby zapisać film, w menu u dołu karty wybierz WebM lub GIF i kliknij Zapisz.

Możesz też nagrać i zapisać nagranie ekranu z emulatora, używając tego polecenia w wierszu poleceń:

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

Zrzuty ekranu

W wierszu poleceń możesz wykonać zrzuty ekranu za pomocą jednego z tych poleceń:

  • screenrecord screenshot [destination-directory]
  • adb emu screenrecord screenshot [destination-directory]

Zrzuty ekranu są zapisywane w formacie PNG.

Kamera do wirtualnej sceny i ARCore

Tworzenie i testowanie aplikacji do rzeczywistości rozszerzonej (AR) za pomocą ARCore jest teraz jeszcze łatwiejsze dzięki nowej kamerze do scen wirtualnych, która umożliwia eksperymentowanie z rzeczywistością wirtualną w środowisku wirtualnym.

Informacje o korzystaniu z kamery scen wirtualnych w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.

Obrazy ze Sklepu Google Play na urządzeniu Pixel

Sklep Google Play obsługuje teraz obrazy urządzeń Pixel i Pixel 2. Jest to widoczne w Menedżerze AVD w Android Studio 3.2 i nowszych. W kolumnie Sklep Play znajduje się logo Google Play. Urządzenia AVD z włączonym Sklepem Google Play mają w oknie Rozszerzone elementy sterujące kartę Google Play, która zapewnia wygodny przycisk aktualizowania Usług Google Play na urządzeniu.

Zrzuty danych

Możesz teraz wczytać zrzut szybkiego uruchamiania bez ponownego uruchamiania emulatora. Aby wczytać zrzut, otwórz okno Extended Controls (Ustawienia rozszerzone) na stronie Settings (Ustawienia) i kliknij przycisk Load Now (Wczytaj teraz).

Wprowadziliśmy wiele ulepszeń w zakresie wczytywania i zapisywania zrzutów, aby zwiększyć wydajność wykorzystania zasobów i zminimalizować czas trwania każdej operacji. Jeśli zapisywanie nadal trwa zbyt długo, zgłoś problem, podając szczegółowe informacje o CPU, pamięci RAM i ustawieniach uruchomionego oprogramowania antywirusowego, zapory sieciowej i oprogramowania zabezpieczającego.

Renderowanie za pomocą Skia

Gdy używasz obrazów dla interfejsu API w wersji 27 lub nowszej, emulator może renderować interfejs Androida za pomocą platformy Skia, co zapewnia płynniejsze i wydajniejsze renderowanie.

Obecnie korzystanie z platformy Skia wymaga jej jawnego włączenia.

Aby włączyć renderowanie na platformie Skia, użyj w powłoce adb tych poleceń:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

Aparat

W systemie Windows emulator Androida korzysta teraz z Media Foundation jako backendu kamery internetowej, co znacznie zwiększa wydajność oraz liczbę klatek podczas nagrywania z kamery internetowej do 720p 30 kl./s.

Na komputerach Mac można teraz używać kamery webcam0 i webcam1.

Inne

Opcja wiersza poleceń -phone-number-prefix została zmieniona na -phone-number [number], co umożliwia ustawienie pełnego numeru telefonu.

Teraz możesz używać alfanumerycznych adresów SMS.

Poprawki

  • Wersja emulatora Androida dla systemu Linux została opracowana przy użyciu nowoczesnego łańcucha narzędzi języka C++ w języku Clang. Ta zmiana rozwiązuje problem z brakiem uruchomienia emulatora z powodu błędów libGL i libstdc++.
  • Naprawiliśmy kilka przyczyn awarii i zawieszania się.
  • Aby uniknąć awarii i zawieszeń spowodowanych niewystarczającą ilością wolnego miejsca na dysku, emulator sprawdza teraz, czy na dysku jest wystarczająca ilość wolnego miejsca podczas uruchamiania. Nie uruchamia się, chyba że jest co najmniej 2 GB wolnego miejsca.
  • Rozwiązaliśmy problem, który uniemożliwiał renderowanie niektórych gier Unity.
  • Rozwiązaliśmy problem z DNS, który powodował, że emulator nie mógł połączyć się z siecią.
  • Rozwiązaliśmy problem, który powodował, że zmiany w pamięci wewnętrznej przydzielonej urządzeniu AVD w oknie konfiguracji urządzenia wirtualnego nie działały.
  • Rozwiązaliśmy problem z tworzeniem i nieprawidłowym zamykaniem wielu procesów ADB.
  • Rozwiązaliśmy problem, który powodował, że przyciski obracania i inne elementy interfejsu nie działały, dopóki nie było otwarte okno rozszerzonych elementów sterujących.
  • Rozwiązaliśmy problem, który powodował, że kopiowanie i wklejanie z hosta nie działało, dopóki okno elementów rozszerzonych nie zostało otwarte co najmniej raz.
  • Prostokąt zmiany rozmiaru emulatora bez ramek został zaktualizowany, aby lepiej pasował do motywu wizualnego emulatora.
  • Telefon i SMS-y są teraz prawidłowo dezaktywowane w trybie samolotowym.
  • Rozwiązaliśmy problem, który powodował wyłączenie funkcji SMS-ów i sieci komórkowej po załadowaniu zrzutu.
  • Nie będziesz już otrzymywać fałszywych ostrzeżeń “Unable to open... \pstore.bin. Permission denied.”
  • Naprawiono błąd, który uniemożliwiał zmianę położenia urządzenia AVD na niektórych ekranach komputerów Mac.
  • Rozwiązaliśmy problemy z migotaniem i pustymi ekranami na nowszych komputerach MacBook Pro, które występowały podczas korzystania z procesorów AVD ze skórkami telefonu Pixel 2 XL.
  • Rozwiązaliśmy problemy z pustymi ekranami, które występowały podczas przełączania się w tryb powiększenia, gdy aktywny był emulator bezramkowy.
  • Rozwiązaliśmy problem, który powodował, że wygląd skóry i emulatora urządzenia nie były zsynchronizowane po powiększeniu.

Jeśli problem nadal się zawiesza lub występują inne problemy, zgłoś problem.

27.1.12 (marzec 2018 r.)

Ta aktualizacja zawiera poprawki następujących problemów:

  • Jakość dźwięku Bluetooth po uruchomieniu emulatora uległa pogorszeniu. (Problem 37095756)
  • Lokalizacje wysłane do jednego emulatora zostały wysłane do wszystkich. (Problem 73450633)
  • Lokalizacja GPS ustawiona w konsoli została zastąpiona wartościami określonymi w menu Rozszerzone elementy sterujące > Lokalizacja w graficznym interfejsie użytkownika. (Numer sprawy 73471760)

Jeśli problem nadal się zawiesza lub występują inne problemy, zgłoś problem.

Po tej aktualizacji, bieżącym obrazie systemu i wersji testowej Android Studio możesz używać emulatora Androida do uruchamiania aplikacji rzeczywistości rozszerzonej stworzonych przy użyciu ARCore. Szczegółowe wymagania i instrukcje znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.

27.1.10 (luty 2018 r.)

  • Rozdzielczość zdjęć z aparatu

    Teraz za pomocą podłączonej kamery internetowej można rejestrować klatki w rozdzielczości 720p.

    Aby obsługiwać obrazy systemu w Androidzie 8.1 (poziom interfejsu API 27) lub nowszym, każda podłączona kamera internetowa musi mieć możliwość nagrywania klatek w rozdzielczości 720p.

  • Poprawki

    • Rozwiązaliśmy problem, który powodował, że nagrywanie z kamery internetowej czasem wyświetlało zniekształcony lub całkowicie zielony obraz.
    • Rozwiązaliśmy problem, który umożliwiał wyświetlanie tego komunikatu nawet wtedy, gdy nie było żadnego zawieszenia: „emulator: ERROR: wykrył zawieszający się wątek „Qt event loop”. Brak odpowiedzi przez 15 000 ms”.

Jeśli problem nadal się zawiesza lub występują inne problemy, zgłoś problem.

27.1.7 (luty 2018 r.)

  • Okno emulatora bezramkowego:

    Domyślnie emulatory z plikami motywu urządzenia są teraz wyświetlane bez ramki okna. Aby wyświetlić otaczającą ramkę okna, włącz opcję Pokaż ramkę okna wokół urządzenia w panelu Ustawienia w oknie Rozszerzone elementy sterujące.

  • Ulepszenia funkcji szybkiego uruchamiania przyspieszające pracę ze zrzutami AVD:

    • Zrzut AVD można w każdej chwili zapisać za pomocą przycisku Zapisz teraz w panelu Ustawienia w oknie dialogowym Ustawienia rozszerzone.
    • W wielu przypadkach emulator skraca czas potrzebny na zapisanie zrzutu, zapisując tylko różnicę między obecnym stanem a wcześniej zapisanym zrzutem.

    Szczegółowe informacje znajdziesz w dokumentacji szybkiego rozruchu.

  • Emulator został zaktualizowany, aby używał QEMU 2.9.

    Oto niektóre ważne ulepszenia:

    • Zoptymalizowane operacje wejścia-wyjścia i bardziej szczegółowe blokowanie wątków wejścia-wyjścia dla większej wydajności.
    • Naprawiliśmy błędy od QEMU w wersji 2.8 (26.1.4).
    • Nowa implementacja backendu HAXM.

    Pełną listę zmian znajdziesz w historii zmian QEMU 2.9.

  • Implementacja Swiftshader zgodna ze standardem OpenGL ES 3.0:

    Mechanizm renderowania Swiftshader emulatora jest teraz w pełni zgodny ze standardem OpenGL ES 3.0. Szczegółowe informacje o mechanizmie renderowania Swiftshader znajdziesz w sekcji Ustawienia > Zaawansowane w rozszerzonych elementach sterujących.

  • Poprawki

    • Rozwiązaliśmy problem, który powodował, że udostępnianie schowka nie działało, dopóki opcja Włącz udostępnianie schowka nie była włączona i wyłączona.
    • Usunięto problem z zawieszaniem się interfejsu renderowania Swiftshader w przypadku AVD o niskiej rozdzielczości.

27.0.5 (styczeń 2018 r.)

  • ANGLE do renderowania w systemie Windows jest teraz domyślnie wyłączona.

    Jeśli ANGLE działa lepiej, możesz włączyć ją ponownie, używając flagi wiersza poleceń -gpu angle_indirect. Możesz też otworzyć okno rozszerzonych elementów sterujących, przejść do Ustawienia > Zaawansowane i wybrać ANGLE D3D11 dla ustawienia mechanizmu renderowania OpenGL ES.

  • Naprawiono błąd polegający na tym, że klawisze Shift + B nie powodowały wpisywania wielkiego znaku B.

27.0.2 (grudzień 2017 r.)

  • Nowa funkcja szybkiego uruchamiania zapewnia krótsze czasy uruchamiania emulatora na podstawie zrzutu instancji AVD.

    Szybkie uruchamianie jest domyślnie włączone na wszystkich urządzeniach AVD. Chociaż przy pierwszym uruchomieniu AVD urządzenie musi wykonać „na zimno” (tak samo jak w przypadku włączania urządzenia), wszystkie kolejne uruchomienia są szybkie, a system jest przywracany do stanu, w którym został zamknięty emulator (podobnie do wybudzania urządzenia).

    Jeśli chcesz określić, kiedy emulator ma zapisywać zrzut, otwórz Rozszerzone okno ustawień emulatora i kliknij Ustawienia. Tutaj możesz wybrać jedno z tych ustawień opcji Zapisuj stan szybkiego uruchamiania przy zamykaniu:

    • Tak: po zamknięciu emulatora zawsze zapisuj szybki zrzut rozruchowy. Jest to ustawienie domyślne.
    • Nie: nigdy nie zapisuj szybkiego zrzutu rozruchowego – zawsze uruchamiaj urządzenie „na zimno”.
    • Zapytaj: pytaj, czy po zamknięciu emulatora zapisać szybki zrzut rozruchowy.

    Twój wybór dotyczy tylko aktualnie otwartego AVD.

    Więcej informacji znajdziesz w dokumentacji szybkiego uruchamiania.

  • Dodaliśmy obsługę OpenGL ES 3 na komputerach Mac (w przypadku obrazów systemu korzystających z interfejsu API na poziomie 24 lub wyższym, interfejsów API Google i interfejsu ABI x86).

  • W celu zwiększenia stabilności aplikacji OpenGL ES 2 i nowszych emulator korzysta teraz z profilu podstawowego OpenGL, jeśli jest dostępny.

  • Nowe opcje renderowania za pomocą Swiftshader / ANGLE:

    • -gpu swiftshader_indirect: szybsza, bardziej stabilna wersja Swiftshadera, która współpracuje z szybkim rozruchem.
    • -gpu angle_indirect (tylko Windows): bardziej stabilna wersja ANGLE D3D, która współpracuje też z szybkim rozruchem.

    Starsze opcje -gpu swiftshader i -gpu angle zostały wycofane. W oknie rozszerzonych elementów sterujących opcje „SwiftShader” i „ANGLE” trybu renderowania OpenGL ES w sekcji Ustawienia > Zaawansowane korzystają teraz z wariantów *_indirect.

  • Naprawiono różne inne błędy.

26.1.4 (sierpień 2017 r.)

W tej wersji wprowadziliśmy drobne poprawki błędów i ulepszyliśmy konfigurację GPU:

  • Włącz animację rozruchu w przypadku mechanizmu renderowania ANGLE
  • Wyłącz GLES3 w mechanizmie renderowania ANGLE

26.1.3 (sierpień 2017 r.)

Jest to wersja drobna z poprawkami błędów, ulepszeniami wydajności i niewielkimi zmianami funkcji.

  • Ta wersja jest obecnie wymagana do korzystania z najnowszych obrazów systemu Android 8.0. Są one zgodne ze standardami wysokimi i mają oddzielne partycje vendor.img.
  • Jest już dostępna nowa wersja HAXM 6.2.0 (sprawdź w Menedżerze SDK) i zawiera te aktualizacje:
    • Mniejsze wykorzystanie pamięci. Szczytowy zestaw roboczy pamięci przypięty przez HAXM nie jest już równy rozmiarowi pamięci RAM AVD. Zamiast tego pamięć jest stronowana na żądanie. Dzięki temu emulator będzie działać bardziej niezawodnie na komputerach z mniejszą ilością pamięci RAM.
    • Emulator z HAXM 6.2.0 może się teraz uruchamiać szybciej w systemie macOS, pomijając długotrwałą fazę inicjowania.
  • Ulepszenia konfiguracji GPU
    • Rozwiązaliśmy problemy z czarnym ekranem podczas uruchamiania, które występowały podczas renderowania oprogramowania po stronie gościa przez przełączenie się na Swiftshader na oprogramowanie po stronie hosta. Najnowsze wersje obrazów systemu dla interfejsów API na poziomach 19–25 w interfejsach API Google powinny mieć włączone renderowanie po stronie gościa.
    • Rozwiązaliśmy problem, który powodował, że emulator był przełączany na mechanizm renderowania programowego ze względu na wykrywanie obecności starszych GPU, ale emulator działał na osobnym GPU. Procesory graficzne, które zostaną przełączone na renderowanie w ANGLE lub Swiftshader, są ustalane w ten sposób:
      • Starsze procesory Intel iGPU mają problemy ze sterownikami zarówno w sterownikach OpenGL, jak i ANGLE D3D. Użytkownicy z grafiką Intel HD Graphics w wersji 3xxx lub starszej będą używać Swiftshadera.
      • Niektórzy użytkownicy zgłaszali brak możliwości korzystania z obrazów poziomu 25 interfejsu API z powodu błędu, który powodował, że „Pixel Launcher ciągle się zatrzymuje”. Wygląda to na problem ze sterownikami w niektórych modelach Intel HD 4xxx. Zostaną więc przełączone automatycznie na ANGLE.
    • Aby uzyskać najlepsze rezultaty w przypadku emulacji GPU, zalecamy użycie dyskretnego GPU NVIDIA lub AMD albo nowszego GPU firmy Intel (Iris, HD 5xxx, HD 5xx/6xx).
    • Rozwiązaliśmy problem, który powodował, że nie można było uruchomić emulatora (nie udało się zainicjować emulatora OpenGL), jeśli AVD został skonfigurowany przy użyciu hw.gpu.mode=host, a emulator był uruchamiany w kliencie pulpitu zdalnego.
    • Doprecyzowaliśmy ustawienia „Poziom interfejsu OpenGL ES API (wymaga ponownego uruchomienia)”; dodaliśmy opcję przejścia z OpenGL ES 3 na OpenGL ES 2 w przypadku problemów lub konieczności testowania na niższych poziomach interfejsu OpenGL ES API.
    • Mechanizm renderowania Mesa został wycofany. Komponent hw.gpu.mode=mesa zostanie automatycznie przełączony na używanie Swiftshader na hoście.
  • Ulepszenia w systemie macOS:
    • Emulator jest teraz w pełni zgodny z systemem macOS 10.13 High Sierra dzięki funkcjom Hypervisor.Framework i HAXM 6.2.0.
    • Funkcja Hypervisor.framework jest teraz domyślnie włączona w systemie macOS w 32-bitowych obrazach x86, aby zwiększyć wydajność i zgodność z macOS. Jeśli napotkasz jakieś problemy, zgłoś błąd i dołącz HVF = off do ~/.android/advancedFeatures.ini (jeśli taki plik nie istnieje, utwórz go).
    • Rozwiązaliśmy problemy, które powodowały brak połączenia z internetem lub problem z podłączeniem debugera podczas korzystania z Hypervisor.framework.
    • Aby poprawić zgodność i wydajność nagrywania z użyciem kamery internetowej, funkcja nagrywania z użyciem QTKit zastąpiliśmy buforowanym, opartym na AVFoundation.
  • Dodaliśmy obsługę sieci Wi-Fi w niektórych obrazach systemu (obecnie tylko na poziomie API 25). Dostępny jest punkt dostępu o nazwie „AndroidWifi”, a Android automatycznie się z nim łączy. Obsługę Wi-Fi można wyłączyć, uruchamiając emulator z parametrem wiersza poleceń -feature -Wifi.
  • Niektórzy użytkownicy martwili się, że obrazy systemowe o stałym rozmiarze w Sklepie Play nie mają wystarczającej ilości miejsca. W związku z tym domyślnie zwiększyliśmy rozmiar do 2 GB (z 800 MB).
  • Dodaliśmy skrót klawiszowy (Ctrl+Shift+U), który otwiera stronę interfejsu zgłaszania błędów bezpośrednio na stronie ustawień.
  • Rozwiązaliśmy problem, który powodował, że w przypadku korzystania ze starszego procesora Intel x86 EPT bez UG emulator nie uruchamiał się w przypadku skonfigurowania więcej niż 1 rdzenia.
  • Rozwiązaliśmy problem, który powodował nieprawidłowe wykrywanie funkcji HyperV w przypadku, gdy emulator sam działał w hipernadzorcy Xen.
  • Rozwiązaliśmy problem, który powodował awarię przy uruchamianiu emulatora w niektórych konfiguracjach Linuksa.

26.1.2 (lipiec 2017 r.)

Ta wersja zawiera nowe funkcje i ulepszenia związane z wydajnością.

  • Dodaliśmy możliwość zdefiniowania niestandardowej konfiguracji serwera proxy HTTP w rozszerzonych ustawieniach (kliknij Więcej , a następnie kliknij Ustawienia i Serwer proxy). Domyślnie emulator używa ustawień serwera proxy HTTP Android Studio, ale na tym ekranie możesz zdefiniować ręczną konfigurację serwera proxy.

  • Dodano obsługę GPU w trybie gościa, dzięki czemu można zdalnie wyświetlać i sterować emulatorem. Możesz na przykład uruchomić emulator i pozwolić VNC nasłuchiwać portu 5901 w następujący sposób:

    1. Wykonaj: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Otwórz przeglądarkę VNC (taką jak w przypadku ścisłego filtrowania), aby połączyć się z portem 5901.

      • Aby korzystać z wbudowanego klienta udostępniania ekranu na Macu, przy uruchamianiu emulatora wymagane jest hasło VNC. Aby ustawić hasło, użyj tego polecenia:

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        Następnie wpisz w konsoli change vnc password i wpisz hasło.

    Android O nie jest obecnie obsługiwany w trybie VNC.

  • Na ekranie pomocy dotyczącym rozszerzonych elementów sterujących dodano przycisk Zgłoś błąd (kliknij Więcej , a następnie kliknij Pomoc i Pomoc do emulatora). Gdy klikniesz Zgłoś błąd, otworzy się okno, w którym możesz zobaczyć szczegóły zgłoszenia błędu, takie jak zrzut ekranu, informacje o konfiguracji AVD i dziennik raportu o błędzie. Następnie możesz zapisać raport samodzielnie lub zgłosić problemy z emulatorem.

  • Do emulatora i panelu czujników wirtualnych dodano żyroskop. Wymaga to do działania obrazu systemu z obsługą żyroskopu (obecnie na poziomie API 24 i 25).

  • Do listy DNS Qemu w systemie Windows dodano DNS preferowany przez hosta, gdy wiele interfejsów sieci wirtualnych na hoście wprowadza wiele adresów DNS, które nie działają dla emulatora.

  • Dodaliśmy eksperymentalną obsługę 32-bitowych obrazów x86 w systemie macOS Hypervisor.Framework w systemach macOS 10.10 i nowszych przy użyciu flag serwera, co powinno poprawić czas uruchamiania i wydajność.

    • Jeśli napotkasz problemy, dodaj wiersz HVF = off w ~/.android/advancedFeatures.ini.
  • OpenGL ES 3.x jest teraz domyślnie włączony dla obrazów systemu i procesorów graficznych hosta, które obsługują OpenGL ES 3. Obecnie tylko hosty z Androidem O (poziom interfejsu API 26) i hosty z systemami Windows/Linux obsługują OpenGL ES 3.

    • Jeśli występują problemy z OpenGL ES 3, dodaj wiersz GLESDynamicVersion = off w ~/.android/advancedFeatures.ini.
  • Emulator używa teraz elementów FBO poza ekranem do wszystkich renderowania z wyjątkiem publikowania ostatecznej wersji displayowej obrazu, co powinno pomóc w problemach ze spójnością kolorów na różnych platformach.

  • Po zgromadzeniu danych o nagłych problemach spowalniających emulatory stwierdziliśmy, że problem może być związany z interakcjami między starszymi sterownikami Intel OpenGL a aktualizacjami systemu Windows. W związku z tym w przypadku użytkowników korzystających z procesorów Intel HD 4000, 3000, 2000 (i powiązanych układów GPU) domyślnie jest ustawiony mechanizm renderowania D3D (ANGLE) lub Swiftshader (program renderowania).

26.0.0 (marzec 2017 r.)

Ta wersja jest zgodna z interfejsem API poziomu 26. Zawiera też liczne ulepszenia wydajności i poprawki błędów.

Mniejsza wersja 26.0.3 (maj 2017 r.)

  • Dodaje flagi funkcji, które można aktualizować online, aby szybko rozwiązywać problemy wynikające z problematycznych konfiguracji sprzętu. Dzięki temu Google może wprowadzać poprawki i funkcje zależne od konfiguracji użytkownika, aktualizując flagi po stronie serwera. Jeśli zauważysz problemy na konkretnym sprzęcie, zgłoś błąd, a my go zbadamy.
  • Nowa obsługa pokrętła w przypadku obrazów systemu Android Wear API na poziomie 25. Aby emulować pokrętło na urządzeniu Wear, w rozszerzonym oknie kliknij kartę Rotary zaczniesz.
  • Rozmiar okna Zgłaszanie awarii można teraz zmieniać i nie resetuje opcji Kiedy wysyłać raporty o awariach na Zapytaj bez wprowadzania danych.
  • 32-bitowy emulator wymaga teraz, aby maksymalny rozmiar pamięci RAM AVD nie przekraczał 512 MB. Zapobiegnie to skończeniu emulatora w wirtualnej przestrzeni adresowej 2 GB.
  • Dodaje obsługę ścieżek bezwzględnych w obrazach emulatora.
  • Dodaje w rozszerzonym oknie nową kartę ze Sklepem Google Play, na której widać wersję Usług Google Play oraz przycisk sprawdzania dostępności aktualizacji Usług Google Play.
  • Dodaje menu pozwalające wybrać mechanizm renderowania OpenGL na stronie Ustawienia emulatora. Jeśli masz problemy ze sterownikiem OpenGL na komputerze z systemem Windows, użyj opcji ANGLE (D3D11) lub ANGLE (D3D9) (wymaga ponownego uruchomienia). Jeśli masz problemy ze sterownikiem OpenGL na komputerze bez systemu Windows, spróbuj użyć mechanizmu renderowania oprogramowania Swiftshader (wymaga ponownego uruchomienia).
  • Naprawia rzadką awarię przy zamykaniu, gdy emulator otrzymuje zarówno polecenia exit, jak i minimize.
  • Rozwiązaliśmy problem ze skalowaniem podczas zmiany wyświetlaczy na komputerze Mac. (numer 268296)
  • Naprawia problem polegający na tym, że emulator zajmuje 300% procesora i zatrzymuje go po wznowieniu działania komputera hosta ze stanu uśpienia lub gdy emulator działa przez dłuższy czas.
  • Naprawia błąd występujący podczas wyłączania emulatora.

Aktualizacje z HAXM w wersji 6.1.1 (marzec 2017 r.)

Uwaga: od 30 marca wersja 6.1.1 jest dostępna dla użytkowników Maców w Menedżerze pakietów SDK. Wkrótce udostępnimy ją również użytkownikom systemu Windows.

Emulator Androida w wersji 26.0.0 obsługuje funkcję HAXM w wersji 6.1.1, która zawiera te aktualizacje:

  • Włącza emulację jednostek monitorowania wydajności (PMU). (Numer 223377)
  • Naprawia współistnienie z VirtualBox i Dockerem na komputerach Mac. (Numer 197915)
  • Naprawia komunikat o błędzie instalacji wyświetlany, gdy instalator nie wykrywa technologii Intel VT-x w systemie Windows, zwykle z powodu włączenia funkcji Hyper-V.
  • Dodano obsługę przyspieszania emulatora Androida w maszynie wirtualnej z systemem Windows, która działa w Hyper-V. Ta aktualizacja wymaga, aby instancja Hyper-V hosta Hyper-V (ta, która zarządza maszyną wirtualną lub gościem z systemem Windows) używała najnowszej wersji funkcji Hyper-V z włączoną zagnieżdżoną wirtualizacją. Funkcja Hyper-V musi być wyłączona w instancji Hyper-V gościa (maszyny wirtualnej z systemem Windows).

Zależności

  • Android SDK Platform- Tools w wersji 25.0.4 lub nowszej.
  • Narzędzia Android SDK w wersji 26.0.0 lub nowszej.

Nowe funkcje i poprawki błędów

  • Zgodny z interfejsem API poziomu 26.
  • Pełna zgodność z GLES 2.0. Biorąc pod uwagę procesor graficzny hosta, który ma zgodne sterowniki OpenGL dla komputerów, emulator przekazuje teraz 100% listy mustpass Androida CTS dEQP-GLES2. Wprowadziliśmy tę funkcję w obrazach x86 zawierających interfejs API na poziomie 24 (wersja 11 i nowsze), a wkrótce zostanie dołączona do wszystkich obrazów systemu.
  • Lepsze odtwarzanie filmów. Emulator przechowuje teraz wszystkie bufory kolorów filmu w pamięci współdzielonej hosta/gościa i wykonuje niezbędną konwersję YUV na RGB w GPU. Rozdzielczość 1080p30 powinna być obecnie w zasięgu większości systemów. Została ona udostępniona w przypadku obrazów w formacie x86 interfejsu API poziomu 24 (wersja 11 i nowsze), a wkrótce zostanie dołączona do wszystkich obrazów systemu.
  • Emulator prawidłowo wyrejestruje się teraz z listy adb devices przy wyjściu i zamyka otwarte porty TCP na komputerach z systemem Linux.
  • połączenia adb są teraz bardziej niezawodne. Uruchomiony emulator jest wykrywany szybciej i nie przechodzi już w stan „offline” ani „nieautoryzowany”.

25.3.0 (marzec 2017 r.)

W tej wersji Emulator Androida zostanie wydany niezależnie od narzędzi SDK. Ta wersja zawiera szereg ulepszeń w zakresie wydajności, nowe funkcje i poprawki błędów.

Mniejsza wersja 25.3.1 (marzec 2017 r.)

  • Rozwiązaliśmy problem, który powodował awarię występującą w niektórych konfiguracjach GPU przez domyślne wyłączenie GLAsyncznanego. Ta funkcja została dodana w wersji 25.3.0, aby poprawić czas renderowania klatek i liczby klatek na sekundę w grach i filmach, ale powoduje awarię emulatora w przypadku niektórych nieznanych konfiguracji maszyn. Aby włączyć tę funkcję ręcznie, otwórz plik android_sdk/emulator/lib/advancedFeatures.ini i ustaw GLAsyncSwap = on.

Zależności

  • Narzędzia platformy Android SDK w wersji 24 lub nowszej.
  • Android SDK Tools w wersji 25.3.0

Nowe funkcje i poprawki błędów

  • Zaktualizowano silnik emulacji do wersji QEMU 2.7. Obejmuje ona wszystkie najnowsze poprawki błędów, ulepszoną wydajność i nowe funkcje.
  • Nowa obsługa protokołu IPv6.
  • Emulator używa teraz SwiftShader jako czystego mechanizmu renderowania na hoście.
  • Ulepszenia wydajności Android Pipe: Android Pipe, główny kanał komunikacyjny między emulatorem a systemem operacyjnym Android, stał się teraz szybszy o rzędu wielkości, ma mniejsze opóźnienia i zapewnia lepszą wydajność wielowątkową. Poprawia to wydajność emulatora, między innymi:
    • Zwiększona szybkość wczytywania/wyciągania ADB.
    • Lepsza obsługa akceleracji 3D.
    • Zwiększona ogólna responsywność emulatora.
    • Lepsza wydajność grafiki.
  • Emulator używa teraz buforów po stronie GPU (glBindBuffers/glBufferData), gdy o nie prosi gość, co zmniejsza obciążenie procesora w niektórych aplikacjach.
  • Ulepszona obsługa dźwięku
  • Szybsza operacja wejścia/wyjścia dysku: emulator używa teraz oddzielnych wątków do wysyłania operacji wejścia-wyjścia dysku, co skraca czas oczekiwania i zwiększa przepustowość (ok. 1,5 razy większa szybkość sekwencyjnego wejścia/wyjścia, ok. 5-krotnie większa szybkość wejścia/wyjścia dostępu losowego). Zmniejsza to też liczbę opróżnień dysku, co znacznie zmniejsza obciążenie fizyczne urządzenia.
  • Emulator używa teraz rozproszonych plików do uruchamiania dysku na komputerach z systemem Windows, przyspieszając zarówno pierwsze uruchomienie, jak i uruchamianie „wyczyszczenia danych”. Podczas tworzenia lub resetowania AVD emulator zapisuje teraz na dysku 100–200 MB danych (zamiast co najmniej 2 GB).
  • Różne ulepszenia GUI:
    • Emulator korzysta teraz z wersji 5.7.0, która zawiera poprawki błędów i ulepszenia wydajności.
    • Inicjowanie interfejsu nie próbuje już wczytywać wszystkich plików wykonywalnych emulatora jako wtyczek Qt, dlatego trwa bardzo krótko, zwłaszcza na dyskach HDD.
    • Interakcje z interfejsem są teraz szybsze i płynniejsze, w tym obrót, zmiana rozmiaru i rozszerzone elementy sterujące wczytywaniem i zamykaniem okna.