Informacje o wersji emulatora

Emulator Androida jest dołączony do Android Studio.

W ramach narzędzi Android SDK rozprowadzane były wersje emulatora starsze niż 25.3.0.

Aby mieć pewność, że masz najnowszą wersję, sprawdź, czy w Menedżerze pakietów SDK są dostępne aktualizacje.

Poprzednie wersje emulatora Androida możesz pobrać w archiwum pobierania emulatora.

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

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

34.1.20 (1 kwietnia 2024 r.)

Przeprowadzono testy w wersji stabilnej Android Studio.

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

34.1.19 (7 marca 2024 r.)

Przeprowadzono testy w wersji stabilnej Android Studio.

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

34.1.18 (29 lutego 2024 r.)

Przeprowadzono testy w wersji stabilnej Android Studio.

  • 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 w testach instrumentalnych wykonywanych w emulatorze, które umożliwiają testowanie realistycznych scenariuszy. Ta funkcja umożliwia deweloperom bezpieczną interakcję z punktem końcowym gRPC hostowanym przez emulator Androida z poziomu testów instrumentacji Androida.
  • Poprawki różnych błędów

33.1.24 (28 grudnia 2023 r.)

Przetestowaliśmy wersję Android Studio Hedgehog Stable i Iguana Beta 1.

  • Rozwiązanie problemu z kamerą internetową emulatora, który nie pozwala na nagrywanie ekranu w formacie MP4.
  • Naprawa awarii emulatora na urządzeniu Pixel Fold AVD, gdy jest on otwarty podczas nagrywania ekranu.
  • Rozwiązanie problemu, który powodował, że Pixel Fold wyświetla inny wygląd telefonu z odłączoną klawiaturą i nie można go używać (naprawiono w systemach Windows, Mac Intel i Linux).
  • Naprawianie błędu w wyglądzie czujników wirtualnych w trybie samodzielnym (zastosowane w systemach Windows, Mac Intel i Linux)
  • Naprawiono niektóre awarie, zwłaszcza podczas zamykania emulatora

33.1.23 (30.11.2023)

Przetestowano aplikację Android Studio Giraffe Patch 4 i Hedgehog Stable.

  • Nowa implementacja składanki pozwalająca lepiej emulować urządzenie Pixel Fold, obsługa najnowszego interfejsu API 34
  • Uaktualnienie backendu karty graficznej: wdrożyliśmy protokół gfxstream dla naszego backendu grafiki. To ulepszenie zwiększa ogólną wydajność grafiki i stabilność systemu. Dodatkowo wprowadzenie obsługi interfejsu Vulkan 1.3 rozpoczynającej się od obrazu systemu z interfejsem API 34
  • Prośba o funkcję: opcja wyłączenia gestu powiększenia przez ściąganie palców lub zmiana przypisania klawisza skrótu.
  • [Poprawka błędu] Problem nr 302562962 Naprawianie awarii kamery internetowej emulatora podczas korzystania z systemu sonoma w systemie macOS
  • [Poprawka błędu] Problem nr 293503871 Rozwiązanie problemu polegającego na tym, że ustawienie „Mikrofon” nie było zapisywane po ponownym uruchomieniu emulatora
  • [Poprawka błędu] Problem nr 270386314 Naprawianie błędu animacji, który polegał na tym, że pasek boczny pozostaje otwarty po zminimalizowaniu ekranu AVD.
  • [Poprawka błędu] Problem #154896775 Narzędzie do zgłaszania błędów

32.1.15 (29 sierpnia 2023 r.)

Przetestowaliśmy aplikację Android Studio: Giraffe Patch 1 i Hedgehog Canary 16.

  • Zgodność z wymaganiami dotyczącymi sprzętu elektrycznego GAS dla czujników w emulatorze AAE
  • [Poprawka błędu] Problem nr 266201208 hebrajski SMS nie jest wysyłany przez API 33
  • [Poprawka błędu] Problem #257097404 Emulator nie pokazuje prawidłowego czasu po wybudzeniu hosta przez interfejs API 29 i 30
  • [Poprawka błędu] Problem nr 228201899 Nie widzę Map Google w rozszerzonych ustawieniach emulatora Androida

32.1.14 (27 czerwca 2023 r.)

Przeprowadzono testy w Androidzie Studio Hedgehog Canary 8, Giraffe Beta 5 i Flamingo Sttable.

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

32.1.13 (22 maja 2023 r.)

Przeprowadzono testy w aplikacjach Android Studio Hedgehog Canary 2, Giraffe Beta 1 i Flamingo Stable.

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

32.1.12 (21 marca 2023 r.)

Przetestowaliśmy Androida Studio Giraffe Canary 10, Flamingo RC i Eel Patch 2.

  • [Poprawka błędu] Problem nr 267647323 Sieć nie działa w emulatorze rozpoczętym z poziomu Android Studio
  • [Poprawka błędu] Problem #268498686 Ekran emulatora migocze.
  • [Poprawka błędu] Problem #270034824 obniżona wydajność emulatora po aktualizacji do wersji 33.1.1
  • [Poprawka błędu] Problem #225541819 Uruchamianie emulatora awarii Chrome na x86_64
  • [Poprawka błędu] Problem nr 257097404 Emulator nie pokazuje poprawnego czasu po wybudzeniu hosta
  • Dodaj zgłaszanie awarii na urządzeniach Apple M1

32.1.11 (8 lutego 2023 r.)

Przetestowaliśmy Androida Studio: Giraffe Canary 2, Flamingo Beta 1 i Eel Patch 1.

  • Optymalizacje szybkości sieci
  • Obsługa myszy w osadzonym emulatorze
  • Ulepszenia Virtio-Snd
  • Wyłącz używanie dowiązań symbolicznych podczas rozpakowywania emulatora Androida podczas instalacji
  • Naprawianie awarii podczas sprawdzania emulatora

31.3.14 (13 grudnia 2022 r.)

Przeprowadzono testy w Android Studio Dolphin, Electric Eel RC1 i flamingo Canary 9.

  • [Poprawka błędu] Naprawianie awarii AVD występujących podczas logowania się w Sklepie Play.

31.3.13 (27 października 2022 r.)

Przetestowaliśmy Androida Studio Dolphin, Electric Eel Beta 2 i flamingo Canary 5.

31.3.12 (10 października 2022 r.)

Przetestowano w Android Studio Dolphin i Electric Eel Beta 1.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • [Poprawka błędu] Problem nr 247843000: błąd obsługi ścieżki względnej AVD
  • Zwiększanie rozmiaru dysku dla interfejsu API 24 i nowszych

31.3.11 (23 września 2022 r.)

Przetestowaliśmy Androida Studio Dolphin i Electric Eel Canary 10.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • [Poprawka błędu] Awaria AVD osadzonego emulatora w oknie rozszerzonych elementów sterujących
  • [Poprawka błędu] Problem nr 183139207: problemy z dźwiękiem związane z aktywowaniem mikrofonu przez emulator
  • [Poprawka błędu] Problem nr 229764024: błąd przyklejonego ekranu w AVD powodujący problemy z działaniem interfejsu użytkownika.
  • [Poprawka błędu] Błąd podczas uruchamiania interfejsu API 33 AVD na Macu M1.
  • [Poprawka błędu] Problem nr 243053479: wolne połączenie sieciowe po zaktualizowaniu emulatora
  • [Poprawka błędu] Problem nr 244617627: niedziałająca lokalizacja w Mapach w systemach Windows i Linux
  • [Poprawka błędu] Problem nr 232971796: niedziałający przycisk „Zadzwoń na urządzenie” na stronie Rozszerzone elementy sterujące > Telefon
  • Zaktualizuj emulator Androida do miniGBM
  • Migracja skryptów kompilacji do Pythona3

31.3.10 (18 sierpnia 2022 r.)

Przetestowaliśmy Androida Studio Dolphin Beta 5 i Electric Eel Canary 9.

Emulator można teraz pobrać osobno. Jeśli w najnowszej stabilnej wersji występują problemy lub awarie, zgłoś błąd i rozważ pobranie działającej wersji z archiwów pobranych emulatora.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Lepsza obsługa ścieżek Unicode w systemie Windows
  • Lepsza obsługa wyłączania emulatora, dzięki czemu można uruchomić nową wersję tego samego interfejsu AVD.
  • Nowy składany układ AVD i ustawienia domyślne
  • Zaktualizowano przyciski emulatora Wear
  • Ulepszenia strumieniowego przesyłania dźwięku gRPC
  • Dodano polecenie w konsoli emulatora z możliwością zmiany rozmiaru
  • Poprawka Chrome dla API 31
  • [Poprawka błędu] Uwierzytelnianie konta Google nie powiodło się w przypadku GmsCore w wersji 21.42.18

31.2.10 (20 kwietnia 2022 r.)

Przetestowano w Androidzie Studio Dolphin Canary 8 i Chipmunk RC 1.

Ta aktualizacja zawiera te ulepszenia i poprawki:

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

31.2.9 (23 marca 2022 r.)

Przetestowano w Androidzie Studio Dolphin Canary 7.

Ta aktualizacja zawiera poprawkę:

  • [Naprawa błędu] Ignorowanie wykorzystania pamięci podczas zapisywania zrzutu na urządzeniu M1

31.2.8 (7 lutego 2022 r.)

Przetestowaliśmy aplikację Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.

Ta aktualizacja zawiera te ulepszenia i poprawki:

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

31.2.7 (1 lutego 2022 r.)

Przetestowaliśmy aplikację Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.

Ta aktualizacja zawiera poprawkę:

  • [Poprawka błędu] Błąd zawieszenia emulatora na komputerach M1.

31.2.6 (20 stycznia 2022 r.)

Przetestowaliśmy ją w Android Studio Arctic Fox, Bumblebee Beta 4 i Chipmunk Canary 6.

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodano przyciski Wear OS do emulatora Wear OS.
  • Umożliwiono edytowanie wszystkich właściwości pojazdu na karcie VHAL.
  • [Poprawka błędu] Uwierzytelnianie konta Google nie powiodło się w przypadku GmsCore w wersji 21.42.18.
  • [Poprawka błędu] Netshaper nie działał dobrze z VirtioWifi.
  • [Naprawa błędu] Polecenie Zdarzenia myszy w konsoli nie zadziałało.
  • Dodano sprawdzanie KVM na potrzeby lokalnego tworzenia AVD.

31.1.3 (18 stycznia 2022 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Porty konsoli zostały włączone dla Fuchsia.
  • Podczas zmiany rozmiaru okna z kilkoma wyświetlaczami orientacja jest ignorowana.
  • Wi-Fi: dodano obsługę filtrowania pakietów typu unicast na podstawie adresu MAC MAT.
  • Wi-Fi: usunięto awarię, która występowała podczas korzystania z maszyny wirtualnej.

30.9.5 (15 grudnia 2021 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodaliśmy możliwość łatwego dostosowania rozmiaru okna do rozmiaru pulpitu lub tabletu.
  • Dodaliśmy obsługę wejścia wielodotykowego ze zgodnych urządzeń hostujących.
  • VirtioWifi: dodano obsługę sieci Tap.
  • Włączono wejście obrotowe dla obrazów systemu Wear.
  • Rozwiązaliśmy problem z konfiguracją dźwięku gRPC.
  • Zaktualizowano funkcję Odtwarzanie emulatora SensorReplay, aby obsługiwało standardowe czujniki Androida.
  • Podłączono emulator do urządzeń peryferyjnych i urządzeń przez USB z przekazywaniem USB.

30.4.5 (23 lutego 2021 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • macOS: rozwiązano problemy ze zniekształceniem wejściowego sygnału dźwiękowego.
  • Dodano obsługę virtio-vsock w przestrzeni użytkownika.
  • Przyszłe obrazy systemu będą używać konsoli virtio-console do obsługi komunikatów logcat i jądra.
  • Przyspiesz renderowanie interfejsu Vulkan.
  • Dodano obsługę debugowania zrzutów w przypadku niepowodzenia testu.
  • virtio-gpu: zaktualizowane definicje w celu obsługi najnowszych wyliczeń zasobów blob.
  • Dodano obsługę zrzutu dla transportu graficznego typu „asg”.
  • macOS: dodano obsługę kompilacji przy użyciu pakietu SDK macOS w wersji 11.1 lub nowszej.
  • KVMclock jest domyślnie włączony w nowszych obrazach systemowych.
  • Dodano obsługę czujnika tętna w emulatorach Wear.
  • Usunięto backend interfejsu Vulkan dotyczący libportability.
  • Dodano obsługę większej liczby funkcji w symulatorze modemu.

30.0.26 (16 sierpnia 2020 r.)

Ta aktualizacja obejmuje kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Obsługa urządzeń składanych z wirtualnym czujnikiem zawiasów i widokiem 3D.

  • Dodano obsługę czujników zawiasów w urządzeniach składanych. Wymaga to utworzenia obrazu systemu w przyszłości i konfiguracji AVD w Androidzie 11. Parametry składanego widoku 3D i zawiasów są teraz zintegrowane z dotychczasowymi składanymi ustawieniami. Kodu poniżej można użyć na przykład w pliku config.ini składanego urządzenia AVD 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 config.inihw.sensor.hinge.sub_type = hinge/fold jest już dostępna. Więcej informacji znajdziesz w poście na blogu o programowaniu 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 informacje z czujników kąta zawiasów i zmiany stanu do gościa. Istniejące urządzenia składane będą teraz aktualizować kąt i stan czujnika zawiasów po naciśnięciu przycisków zwijania lub rozwijania paska narzędzi.

Emulator dla hostów ARM64

  • Kod źródłowy emulatora Linux obsługuje teraz kompilację krzyżową z hostów x86_64 do Arm64, co umożliwia uruchamianie obrazów systemu Arm64 z wirtualizacją KVM. Obecnie obsługiwane jest tylko -gpu swiftshader_indirect (renderowanie hosta Swiftshader Arm64), ale możesz też użyć zgodnego zestawu bibliotek GPU hosta libEGL/libGLESv2, zastępując nimi lib64/gles_swiftshader i uruchamiając je ponownie przy użyciu biblioteki -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
    
  • Trwają wsparcie dla Apple Silicon.

obsługa procesora virtio-GPU

  • Po stronie hosta dodaliśmy obsługę przyszłych zasobów spójnych obiektów blob hosta virtio-GPU.
  • Ze względu na sposób działania renderowania emulatora przetwarzamy teraz virtio-gpu virtqueue w wątku vcpu (ponieważ renderowanie jest i tak przeładowane do innych wątków). Renderowanie virtio-gpu zostanie włączone w przyszłej wersji obrazu systemu i emulatora.
  • W przyszłości obrazu systemu 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>. Powinno to już działać w systemach Linux i macOS.
  • Zaktualizowano biblioteki WebRTC 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 teraz dostępne w sprzęcie, za pomocą zmiennej środowiskowej ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1 jest teraz dostępne.
  • W systemie macOS SSE 4.1 i 4.2 są teraz dostępne w trybie gościa Androida.
  • W systemie macOS funkcja INVTSC jest teraz domyślnie włączona. Może to zwiększyć dokładność pomiaru czasu przez gościa.
  • Teraz śledzimy w danych, który rozszerzony panel sterowania został wybrany przez użytkownika.
  • Emulator Linuksa używa teraz parawirtualizowanego zegara KVM, gdy wersja jądra gościa jest teraz w wersji 5.4 lub nowszej (obrazy systemu R lub nowsze).
  • Do dekompresji jąder gościa używany jest teraz protokół LZ4, dzięki czemu jest on zgodny z nowoczesnym potokiem jądra.
  • Dodano polecenia konsoli umożliwiające uzyskanie katalogu AVD emulatora, ścieżki pliku wykrywania w przypadku użycia wbudowanego w Studio oraz ścieżki 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 pionowego obszaru na ekranie, w Rozszerzone elementy sterujące > Ustawienia dodaliśmy opcję ukrywania ramki urządzenia w bieżącym AVD. Aby globalnie ukryć ramki urządzenia w przypadku wszystkich plików AVD, udostępniliśmy flagę funkcji NoDeviceFrame, którą można aktywować, uruchamiając emulator z wiersza poleceń z ramką -feature NoDevice. Możesz też zablokować ją, dodając NoDeviceFrame = on do ~/.android/advancedFeatures.ini (jeśli jeszcze nie ma tego pliku, utwórz go).

  • Na stronie sieci komórkowej dodaliśmy menu, które pozwala włączyć lub wyłączyć pomiar pomiaru. Ta funkcja jest niedostępna w przypadku starszych obrazów systemu, które nie obsługują przełącznika pomiaru 5G.

    • W tym samym celu dodano też polecenie w konsoli: gsm meter on|off
  • Uaktualniono ł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 duże litery były wprowadzane w emulatorze 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.
  • Naprawiono problem z uszkodzeniem zrzutu dysku podczas wysyłania poleceń zrzutu za pomocą gRPC, a także podczas naciskania przycisku zapisywania zrzutu dysku w umieszczonym w Android Studio emulatorze.
  • Podczas korzystania z emulatora Linuksa wbudowanego w Studio wykryliśmy, że wykonywanie tych operacji na Pulpitie zdalnym Chrome powoduje błąd polegający na tym, że parametr XDG_RUNTIME_DIR nie jest skonfigurowany. Może to powodować, że osadzony emulator nie będzie się wyświetlać z powodu umieszczenia plików wykrywania emulatora w interfejsie XDG_RUNTIME_DIR. Stan odpowiedniego problemu możesz sprawdzić w narzędziu do śledzenia problemów Chrome.

    Aby obejść ten problem, emulator włącza teraz używanie plików wykrywania w potencjalnie innym katalogu, który jest oparty na identyfikatorze UID użytkownika: /run/user/&lt;uid>.

  • Wbudowany emulator: urządzenia z zaokrąglonymi narożnikami lub wycięciami teraz prawidłowo zmieniają układ, by zrobić miejsce na narożniki i wycięcie. Wymaga to uruchomienia „na zimno” emulatorów w trybie zimnym.

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

Poprawki ogólne

  • Wykryliśmy problemy ze zgodnością podczas uruchamiania emulatora systemu Windows z aktywną opcją Riot Vanguard. Emulator systemu Windows wykrywa teraz narzędzie antycupowe Vanguard, które w przypadku wykrycia tej aplikacji wyświetla komunikat ostrzegawczy.
  • Naprawiono błąd FD_SETSIZE w systemie Windows. Do nawiązywania nieblokujących połączeń z serwerami loopback używamy teraz protokołu WSAEventSelect() zamiast select().
  • Dodano obsługę funkcji F16C CPUID do emulatora Linuxa z rozwiązaniami problemów z uruchamianiem niektórych aplikacji ARM64 przy użyciu tłumaczenia NDK; trwa tworzenie systemu macOS/Windows.
  • Poprawiono odtwarzanie tras w formacie gpx/kml tak, aby podążały za sygnaturami czasowymi.
  • Naprawiono ikonę odsyłania podczas uruchamiania w systemie macOS.
  • Jeśli w interfejsie config.ini występują hw.audioInput=no i hw.audioOutput=no, dźwięk emulatora jest teraz prawidłowo wyłączony.
  • Rozwiązaliśmy problem polegający na tym, że jeśli okno emulatora było zminimalizowane, gdy okno rozszerzonych elementów sterujących było otwarte, ale nie było aktywne, podczas zmiany jego rozmiaru było ono dalej wyświetlane. W kolejnej aktualizacji całkowicie usuniemy to zachowanie (przypadek z oknem aktywnych rozszerzonych elementów sterujących).
  • Naprawiono błąd, który powodował niestabilne połączenie z siecią Wi-Fi podczas uruchamiania emulatora.
  • Naprawiono zawieszanie się przy kończeniu pracy, gdy emulator wydaje polecenia powłoki z długimi lub nieokreślonymi limitami czasu oczekiwania.
  • Zaktualizowaliśmy biosy komputera, dodając poprawki pozwalające lepiej obsługiwać duże obrazy przekazane do systemu -initrd. Poprzedni system BIOS używał bardzo mało wydajnej metody.
  • Rozwiązaliśmy problem z awarią podczas zamykania, gdy używana była opcja -wifi-server-port.
  • Jeśli do metody -prop zostaną przekazane nieobsługiwane opcje, emulator wyświetla teraz ostrzeżenie (obsługiwane są tylko polecenia qemu.*).
  • Podczas kompilowania emulatora w systemie Windows ryzyko wystąpienia niestabilnych operacji zapisu w plikach powinno być mniejsze. Więcej informacji znajdziesz w instrukcjach kompilacji systemu Windows.
  • Wyłączony przycisk powiększenia na składanych urządzeniach AVD, co powoduje problemy.
  • Emulator prawidłowo zgłasza czas uruchamiania po ponownym uruchomieniu urządzenia.
  • Linux: jeśli uprawnienia KVM są niewystarczające, emulator szybciej wyświetla instrukcje debugowania.
  • Rozwiązaliśmy problem polegający na tym, że emulator nie mógł uruchamiać najnowszych obrazów systemu bez akceleracji.
  • Naprawiono uszkodzenie pamięci lub awarię przy uruchamianiu detektora uruchamiania.
  • Usunięto wyciek pamięci podczas długich sesji nagrywania ekranu.
  • Ikony emulatora zostały zaktualizowane, by odzwierciedlały markę Studio 4.1.
  • Dodaliśmy lepszą obsługę wykrywania sesji zdalnych w systemie Windows.

Poprawki: dekodowanie grafiki i filmów

  • Naprawiono błąd, który powodował, że najnowsza gra Asphalt 9 była renderowana z czarnym ekranem.
  • Usunięto spam dotyczący opróżniania zmapowanego bufora za pomocą NULL.
  • Naprawiono warunek wyścigu, który występował, gdy dezaktywowano stan Vulkan po zamknięciu aplikacji Vulkan gościa.
  • Moduły do cieniowania emulacji Vulkan ASTC/ETC2 są teraz wbudowane w bibliotekę libOpenglRender. Będzie to bardziej niezawodne niż odczyt z systemu plików.
  • Naprawiono błąd w interfejsie Vulkan polegający na tym, że uruchomienie na hoście instancji interfejsu Vulkan 1.0 powodowało nieprawidłowe wyczyszczenie zwróconego VkMemoryRequirements2 pola pNext struct w vkGetImageMemoryRequirements2KHR.
  • Naprawiliśmy wyciek pamięci w mechanizmie renderowania interfejsu Vulkan.
  • Naprawiliśmy ostatnią regresję, w wyniku której nie udało się skompilować cieniowania GLSL ES 1.00 z nazwami zmiennych, takimi jak isampler2D.
  • Zaktualizowaliśmy funkcję tłumaczenia cieniowania ANGLE o różne poprawki, które rozwiązywały możliwe problemy z kompilacją cieniowania w systemie Linux.
  • Jeśli nie uda się skompilować podstawowego programu do cieniowania ram bufora, emulator ulega awarii.
  • Zaktualizowano tłumacza cieniowania ANGLE, aby dotrzymać kroku ANGLE. Rozwiązano problem z uszkodzeniem pamięci podczas tłumaczenia i ciągłego składania shaderów OpenGL ES, które używały macierzy niekwadratowych. Tłumacz programu do cieniowania jest teraz oddzielną biblioteką udostępnianą – libshadertranslator.dll.
  • Naprawiono problem z inicjowaniem interfejsu Vulkan w niektórych sterownikach GPU, który powodował, że nie znaleziono określonych funkcji urządzenia w wersji 1.1.
  • Vulkan: Przywróciliśmy używanie gotowego modułu ładowania, ponieważ w niektórych konfiguracjach występowały problemy z systemowym ładowaniem interfejsu Vulkan. Poszukajmy lepszego rozwiązania.
  • Rozwiązaliśmy problem z używaniem pamięci zewnętrznej interfejsu Vulkan, który powodował, że mogły zostać zaimportowane niepasujące indeksy typu pamięci na hoście.
  • Rozwiązaliśmy problem z emulacją funkcji GL_ALIASED_POINT_SIZE_RANGE, który powodował, że wyliczenie nie było obsługiwane przez host.
  • Rozwiązaliśmy problem polegający na tym, że w przypadku niektórych GPU hosta nie można skompilować cieniowania Skia z powodu błędów związanych z GL_EXT_shader_framebuffer_fetch.
  • Kilka wersji temu usunęliśmy naszą kopię mechanizmu renderowania ANGLE D3D9, więc teraz automatycznie przełączamy użytkowników, którzy korzystali z tego mechanizmu renderowania, do wersji d3d11 ANGLE, jeśli została ona wybrana w ustawieniach interfejsu.
  • Do inicjowania WGL w systemie Windows dodaliśmy więcej informacji na temat debugowania, aby umożliwić prześledzenie błędów.
  • Gdy hw.gltransport=virtio-gpu-pipe działa, wydajność hosta nie jest przewijana w przypadku przenoszenia między hostem a gościem.
  • Dodano więcej rejestrowania debugowania w przypadku, gdy emulacja OpenGLES nie zainicjuje się.
  • Rozwiązaliśmy problem z migotaniem lub niewyświetlaniem się filmów z YouTube przy wczytywaniu zrzutu.
  • Na razie wróciliśmy do programowego dekodowania plików libvpx, ponieważ pojawiły się problemy ze sprzętowym dekodowaniem libvpx za pomocą CUDA. Jeśli po stronie hosta masz obsługiwaną implementację dekodowania sprzętowego CUDA po stronie hosta, sprzętowe dekodowanie biblioteki libvpx możesz włączyć ponownie 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żesz teraz uruchamiać bezpośrednio w Android Studio. Ta funkcja pozwala oszczędzać miejsce na ekranie, szybko poruszać się 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

Teraz możesz utworzyć film AVD z włączonym trybem dowolnego okna.W tym celu podczas tworzenia urządzenia wirtualnego w Android Studio wybierz profil sprzętowy dowolnego tabletu 13,5 cala. Ten profil sprzętu wymaga obrazu systemu z Androidem 11 w wersji dla programistów w wersji 3 lub nowszej.

Znane problemy

Zmiana rozmiaru dowolnego rozmiaru okien jest obecnie niedostępna z powodu problemów z przeniesieniem zaznaczenia do Menedżera okien. Rozwiążemy ten problem w przyszłej wersji obrazu systemu w Androidzie 11.

30.0.0 (19 lutego 2020 r.)

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

Obrazy systemowe Androida 11

Teraz możesz utworzyć AVD z Androidem 11, wybierając jeden z dostępnych obrazów systemu interfejsu API na poziomie 30:

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

Obsługa plików binarnych ARM w przypadku obrazów systemu Androida 9 i 11

Jeśli nie można było wcześniej użyć emulatora Androida, ponieważ Twoja aplikacja była zależna od plików binarnych ARM, możesz teraz użyć do uruchomienia obrazu systemu Android 9 x 86 lub dowolnego obrazu systemu Android 11. Nie trzeba już pobierać konkretnego obrazu systemu, aby uruchomić pliki binarne ARM. Te obrazy systemów Androida 9 i Androida 11 domyślnie obsługują architekturę ARM i zapewniają znacznie wyższą wydajność w porównaniu do systemów z pełną emulacją ARM.

Znane problemy

  • Niektóre pliki binarne ARMv7 nie działają w obrazach systemu Android 11 x 86 i x86_64. Jeśli kierujesz aplikację na Androida 11, rozważ utworzenie kompilacji pod kątem ARM64.

29.0.11 (29 maja 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Windows: zamiast statycznej kompilacji z libgcc emulator korzysta z biblioteki DLL libgcc, którą dostarczamy.
  • Linux: dodano obsługę logcat do interfejsu gRPC API. Więcej informacji o gRPC znajdziesz w artykule o emulatorze strumieniowania gRPC (Linux).
  • Emulator zawiera teraz bez interfejsu graficznego kompilację dla gości 32-bitowych procesorów x86 (qemu-system-i386). Ta funkcja umożliwia uruchamianie 32-bitowych obrazów x86 na poziomach API 26 i niższych w ramach kompilacji bez interfejsu graficznego. Pamiętaj, że w przypadku gości 32-bitowych procesorów x86 z interfejsem API 27 lub nowszym emulator używa 64-bitowego silnika (qemu-system-x86_64), ponieważ w tych obrazach systemowych, gdy przestrzeń użytkownika jest 32-bitowa, jądro jest 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.
  • Jeśli pliki wykonywalne QEMU1 (emulator[64]-[x86|arm|etc]) znajdują się w katalogu emulatora, możesz teraz uruchomić emulator z wcześniejszymi plikami binarnymi korzystającymi z QEMU1.
  • Windows: naprawiliśmy problem, który czasem powodował, że emulator nie uruchamiał się i wyświetlał komunikat „Żądanie wyłączenia procesora wirtualnego”.
  • Naprawiono 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 przy korzystaniu z fragmentacji kodowania transferu. Więcej informacji znajdziesz w szczegółach zobowiązania.

29.0.9 (7 maja 2019 r.)

Ta aktualizacja zawiera poprawkę:

  • Windows: naprawiono problem, który powodował, że kamera wirtualna i kamera internetowa nie działały w emulatorze.

29.0.8 (6 maja 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodaliśmy obsługę wielu wirtualnych wyświetlaczy sprzętowych w przypadku usługi gościa, która pozwala na wyliczenie i ustawienie każdego wyświetlacza. Przyszła aktualizacja obrazu systemu emulatora obejmie wiele wirtualnych wyświetlaczy sprzętowych.
  • Dodano nową opcję wiersza poleceń: -delay-adb. Ta opcja wstrzymuje przetwarzanie pakietów ADB do czasu zakończenia uruchamiania gościa przez gościa. Ta opcja pomaga rozwiązać problemy, które mogą wystąpić, gdy używasz emulatora w środowisku CI, które uruchamia ponownie emulator i jednocześnie używa DDMS.
  • Naprawiliśmy błąd, który występował podczas ładowania zrzutów, w wyniku którego funkcja glIsRenderbuffer zwracała nieprawidłową wartość.
  • Naprawiono problemy z nieaktualnym stanem podczas ponownego uruchamiania systemu Android jako gość.
  • Windows: usunięto problemy, które uniemożliwiały uruchamianie emulatora, gdy nazwa użytkownika w systemie Windows zawierała znaki lub spacje spoza zestawu ASCII.

Znane problemy

  • Interfejs zrzutów jest wyłączony w przypadku obrazów systemu Automotive, ponieważ w przypadku tych obrazów systemu zrzuty dysku nie są obecnie obsługiwane.

29.0.6 (1 maja 2019 r.)

Ta aktualizacja obejmuje kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

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

Aby ułatwić obsługę emulatora, nie udostępniamy już plików binarnych QEMU1 i 32-bitowych wersji systemu Windows. Jeśli używasz 32-bitowego systemu Windows, nie możesz uaktualnić go do wersji 29.0.6.

Wymagania dotyczące obrazów systemu Android Q

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

Projekt Marble – ulepszenia

Ta aktualizacja to kontynuacja naszych prac nad inicjatywą Project Marble, którą ogłoszono podczas Android Developer Summit w listopadzie 2018 roku. Więcej informacji o innych ulepszeniach Project Marble w poprzednich wersjach znajdziesz na stronie Android Emulator: Project Marble Tips.

W tej aktualizacji większość naszych działań w Project Marble dotyczyła ograniczenia wykorzystania zasobów emulatora, na przykład zmniejszenia wykorzystania procesora przez emulator podczas bezczynności. Wprowadziliśmy też zmiany, które ułatwiają pracę z emulatorem w wielu różnych środowiskach, a także rozwiązaliśmy ogólne problemy z jakością.

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

Ulepszenia dotyczące działania dźwięku hosta

Od wersji 28.0.3 emulator domyślnie blokuje wejście audio od hosta.

Jeśli chcesz używać danych audio hosta, możesz włączyć tę opcję. Aby to zrobić, kliknij Rozszerzone ustawienia > Mikrofon i włącz Wirtualny mikrofon używa danych wejściowych audio hosta. Ta opcja jest automatycznie wyłączana przy każdym uruchomieniu emulatora.

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

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Ulepszenia kompilacji emulatora bez interfejsu graficznego

Od wersji 28.0.25 emulator zawiera opcję kompilacji bez interfejsu graficznego, którą można uruchamiać bez interfejsu użytkownika. Możesz używać kompilacji bez interfejsu graficznego, aby łatwiej skonfigurować emulator na potrzeby przepływów pracy Dockera i ciągłej integracji (CI).

W tej aktualizacji wprowadziliśmy dalsze ulepszenia, które umożliwiają uruchamianie emulatora z minimalną liczbą zależności. W systemie Linux kompilacje bez interfejsu graficznego nie zawierają już bibliotek pulseaudio ani libX11. Zależne od systemu biblioteki współdzielone, które nie są w pakiecie z emulatorem, zostały ograniczone 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 w stosunku do wersji Qt 5.12 LTS:

  • Aby uniknąć awarii w dekodowaniu libpng systemu Qt podczas uruchamiania niektórych obrazów systemu, emulator używa teraz własnej kopii pliku libpng do dekodowania obrazów PNG.
  • Aby rozwiązać problemy z niektórymi instalacjami na Linuksa, które zawierają niezgodne wersje bibliotek zależnych od Qt, za pomocą emulatora pakiety libfreetype, libsoftokn, libsqlite3 i libxkbcommon są teraz dostępne.
  • Do pobierania wymiarów emulatora emulator używa teraz natywnych bibliotek okienkowania platformy, zamiast korzystać z bibliotek Qt, które zwracały nierzetelne wyniki.

Automatyczna optymalizacja procesora po uruchomieniu „na zimno”

Aby rozwiązać problem z wykorzystaniem procesora, emulator uruchamia teraz te polecenia ADB podczas uruchamiania „na zimno” po otrzymaniu sygnału boot complete:

adb shell settings put screen_off_timeout 214783647
To polecenie zwiększa czas oczekiwania na wyłączenie ekranu, aby można było używać emulatora w trybie baterii bez ładowania. W trybie baterii użycie procesora w tle jest znacznie ograniczone.
W trybie ładowania prądem zmiennym operacje w tle przez GMSCore, takie jak aktualizacje aplikacji, mogą przejąć wszystkie rdzenie procesora urządzenia, a co za tym idzie – komputer użytkownika bez żadnych ostrzeżeń.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
To polecenie cofa uprawnienia aplikacji Wyszukiwarka Google do używania mikrofonu, co znacznie zmniejsza użycie procesora w tle na ekranie głównym i w programie uruchamiającym, gdy wyszukiwarka Google jest aktywna.
To polecenie jest uruchamiane w uzupełnieniu domyślnego działania emulatora, czyli wyłączania dźwięku hosta dla hosta. Dodatkowo powoduje to automatyczne ograniczenie wykorzystania procesora opisane w przypadku wykrywania słów-kluczy w wersji 28.0.23.

Nowe zmienne środowiskowe do monitorowania wydajności

Możesz teraz używać 2 nowych zmiennych środowiskowych, aby włączyć 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 rozróżnia wykorzystanie karty graficznej od łącznej pamięci rezydentnej.
ANDROID_EMU_TRACING=1
Ta zmienna środowiskowa umożliwia drukowanie za każdym razem, gdy przetwarzanie danych wejściowych lub graficznych trwa długo (ponad 1 ms).
Używamy tej zmiennej środowiskowej również do diagnozowania problemów, które użytkownicy systemu Windows doświadczają w związku z większym zacinaniem (zmniejszeniem liczby klatek) niż w przypadku systemów macOS i Linux.

Ogólne ulepszenia w projekcie Marble.

Ta aktualizacja zawiera również następujące ogólne ulepszenia wprowadzone w inicjatywie Project Marble:

  • Możesz teraz natychmiast wstrzymać wszystkie procesory wirtualne w emulatorze, korzystając z tych poleceń konsoli:
    • adb emu avd pause
    • adb emu avd resume
  • Znacznie zmniejszony obszar rysowania w trybie OpenGL. To ulepszenie zmniejsza wykorzystanie procesora podczas odtwarzania animacji przez emulator.
  • Przywrócona obsługa wirtualnego urządzenia z siecią wirtualną QEMU E1000 głównej linii. Możesz użyć tego urządzenia, aby skonfigurować emulator w połączonym środowisku sieciowym. W środowisku z połączeniem sieciowym emulator jest pokazywany w sieci hosta, a sieć hosta – w emulatorze.
  • Do uruchamiania emulatora służą teraz pliki binarne BIOS dostosowane do wersji QEMU 2.12.
  • Uaktualniono ffmpeg do wersji 3.4.5 w zakresie kodowania i dekodowania wideo.
  • Znacznie zmniejszone obciążenie wejścia-wyjścia głównej pętli głównej QEMU w systemie macOS dzięki zastąpieniu głównej pętli głównej opartej na select() pętlą główną opartą na kqueue.
  • Zwiększono rozmiar bufora Logcat do 2 MB, aby rozwiązać problemy z nieoczekiwanym niestabilnym wynikiem operacji logcat za pomocą emulatora.
  • Emulator domyślnie eksportuje teraz zmienną środowiskową LC_ALL=C. Ta zmiana rozwiązuje problemy związane z awariami i brakiem zgodności związane z uruchamianiem emulatora w różnych językach.
  • Możesz teraz śledzić wykorzystanie procesora i pamięci RAM przez emulator, korzystając ze statystyk wydajności, które znajdziesz w sekcji Rozszerzone elementy sterujące > Ustawienia > Zaawansowane > Statystyki wydajności. Użyj tych statystyk, aby szybko zdiagnozować problemy, jeśli emulator wydaje się wykorzystywać za dużo procesora lub pamięci RAM.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE używa teraz wyniku GPU hosta zamiast emulowanego. Ta zmiana pomaga rozwiązać problemy, które powodują, że obrazy i zasoby nie wyświetlają się z powodu nieprawidłowego formatu do odczytu.
  • Dodano obsługę rozszerzeń OpenGL ES GL_EXT_texture_format_BGRA8888 i GL_APPLE_texture_format_BGRA8888, jeśli te rozszerzenia są obsługiwane przez hosta.
  • Dodaliśmy więcej informacji diagnostycznych do interfejsu raportu o błędach. Raporty o błędach możesz też wyświetlić w konsoli za pomocą tych poleceń:
    • telnet localhost 5554
    • avd bugreport
  • W przypadku obrazów systemu Android Q emulator zwiększa minimalny rozmiar pamięci RAM do 2 GB.
  • Dodano więcej logowania i drukowania za każdym razem, gdy nie zainicjuje się tryb OpenGL lub hipernadzorca.
  • Jeśli emulator nie może uruchomić równoczesnego wystąpienia AVD -read-only, emulator próbuje teraz ponownie uruchomić AVD -read-only 3 razy w ciągu 3 sekund. Ta zmiana zwiększa prawdopodobieństwo, że emulator będzie mógł uruchamiać równoczesne instancje -read-only AVD, jeśli inne wystąpienia tego komponentu z możliwością zapisu nie zostaną oczyszczone z 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 sterownika podczas uruchamiania większości animacji.
  • Kompilacja emulatora jest teraz oparta na CMake/Ninja.
  • W interfejsie rozszerzonych elementów sterujących emulatora zostały przywrócone linie rozdzielające w tabeli skrótów klawiszowych.
  • 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 dane, aby wzbogacać dane o wykorzystaniu zasobów emulatora o różne przypadki użycia. Dzięki temu możemy zwiększyć wydajność i responsywność emulatora.

Ogólne poprawki w Project Marble

Ta aktualizacja zawiera również ogólne poprawki wprowadzone w ramach inicjatywy Project Marble:

  • Rozwiązaliśmy problemy z drganiami i nieprawidłowymi klatkami wyświetlanymi w systemach z procesorami graficznymi Intel podczas korzystania z obrazów systemu Android Q.
  • Rozwiązaliśmy problemy z wyświetlaniem czarnego ekranu podczas korzystania z obrazów systemu Android Q ze skórkami Pixela 2 XL (lub skórą 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 problem, który powodował, że funkcja pulseaudio w emulatorze Linx w niektórych sytuacjach obracała się i zajmowała cały rdzeń procesora.
  • Rozwiązaliśmy problemy z ograniczonym dostępem do pamięci podczas przetwarzania skompresowanych tekstur.
  • Usunięto 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).
  • Naprawiono problem z wyświetlaniem obrazów systemu Android Q ze zrzutami, w wyniku których geometria obszaru powiadomień była renderowana z nieprawidłowym ustawieniem dzielnika instancji.
  • Poprawiliśmy kilka trudnych do powtórzenia problemów z awariami i blokadami podczas uruchamiania, które były spowodowane przez utratę sygnałów przez Qt lub niestabilne, niespójne stany przy uruchamianiu.
  • Naprawiono wiele problemów z równoczesnością. Możemy teraz stworzyć emulator systemu Linux za pomocą narzędzia ThreadSanitizer (TSAN), które pozwala bez trudu wykryć błędy, które trudno byłoby odtworzyć.
  • Użytkownicy systemu Linux: wykryliśmy, że w niektórych jądrach hosta gościnne jądro Androida może zakończyć się błędem, a następnie wyjść z maszyny wirtualnej z ogólnym błędem sprzętowym. W razie potrzeby emulator zmieni stan na abort(), aby zwiększyć możliwości debugowania (wcześniej emulator tylko się zawiesił).
  • Użytkownicy systemu Linux: dla wygody użytkowników w przypadku konfiguracji CI możesz użyć nowej opcji wiersza poleceń -stdouterr-file <file-name> do przekierowywania do pliku zarówno stdout, jak i stderr.
  • Naprawiono problem z nieprawidłowym używaniem elementu SO_REUSEADDR. Więcej informacji znajdziesz w szczegółach zobowiązania.
  • Naprawiono długotrwały problem z emulatorem systemu Windows, który powodował, że procesy podrzędne, takie jak polecenia ADB, nie uruchamiały się, jeśli nazwa użytkownika zawierała spacje.
  • Rozwiązaliśmy problem z brakiem inicjowania RCU w wątkach procesorów wirtualnych HAXM. Ta poprawka prawdopodobnie rozwiązała niektóre awarie i sytuacje wyścigów.
  • Usunięto awarię, która występowała przy określonych wzorcach zapisywania i wczytywania zrzutów ekranu w interfejsie zrzutów z wykorzystaniem najnowszych obrazów systemu Android Q.
  • Naprawiono błąd polegający na tym, że kamera wirtualnej sceny była pusta po uruchomieniu emulatora na podstawie zrzutu, jeśli makro AR było odtwarzane w momencie zapisywania zrzutu.
  • Rozwiązaliśmy problem, który powodował, że w przypadku niektórych użytkowników z konfiguracją pulpitu zdalnego wyświetlał się czarny ekran przy uruchamianiu emulatora w systemie Linux. Aby tego uniknąć, emulator teraz jawnie konfiguruje MESA_RGB_VISUAL. Więcej informacji znajdziesz w szczegółach zobowiązania.
  • Naprawiliśmy problem z wyświetlaniem przycisków obracania w telewizorach AVD.
  • Rozwiązaliśmy problem polegający na tym, że jeśli emulator był zawsze ustawiony na górze, przy każdym jego obróce było wyświetlane okno rozszerzonych elementów sterujących.

Profile sprzętu na urządzeniach składanych

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

Istnieją 2 składane profile sprzętu, których możesz użyć do utworzenia filmu z włączonym dźwiękiem.

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

Po uruchomieniu emulatora za pomocą jednego z tych profili sprzętowych możesz złożyć i rozwinąć urządzenie za pomocą działań składania i rozwijania na pasku narzędzi emulatora, poleceń w konsoli lub tych skrótów klawiszowych:

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

Makra AR

Emulator zawiera teraz makra AR, które pomagają testować typowe działania AR. Możesz na przykład użyć makra, aby zresetować 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 z interfejsem Vulkan za pomocą emulatora Androida do wersji Vulkan 1.1, używając zgodnego obrazu systemu (Android Q Beta 3 lub nowszy dla platformy Vulkan 1.1 i Android Q Beta 2 dla interfejsu Vulkan 1.0) oraz zgodnego hosta GPU (obejmuje to większość procesorów graficznych Intel, NVIDIA i AMD z 2014 r. i nowszych).

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

  • Vulkan = on
  • GLDirectMem = on

Wstępna pomoc dla programistów ROM

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

Ta obsługa jest nadal 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 i możesz teraz uruchomić samouczek dotyczący interfejsu Vulkan API.

Jeśli używasz systemu Linux, możesz spróbować wykonać te czynności 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 Skia z platformą Vulkan

Procesory graficzne NVIDIA i AMD, które obsługują interfejs Vulkan, obsługują również interoperacyjność bez kopiowania w OpenGL przez rozszerzenie GL_EXT_memory_objects. Dzięki tej możliwości emulator umożliwia pełne renderowanie interfejsu Androida za pomocą interfejsów Skia Vulkan API.

Jeśli masz GPU NVIDIA lub AMD z obsługą interfejsu Vulkan, przetestuj renderowanie Skia na zgodnym obrazie systemu za pomocą tych poleceń (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:

  • Strategia Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • możliwość przenoszenia: ANDROID_EMU_VK_ICD=portability

Znane problemy

HAXM czasami nie zmapuje spójnej pamięci interfejsu Vulkan na gościa i wyłącza emulator. Rozwiążemy ten problem w ramach zbliżającej się aktualizacji HAXM.

Emulator strumieniowania gRPC (Linux)

Cały czas staramy się, aby emulator był jak najbardziej uniwersalny, dlatego pozwalamy hostować renderowanie GPU i umożliwiać interaktywność w największej liczbie kontekstów. Użytkownicy CI i Pulpitu zdalnego mają długotrwałe problemy z tymi problemami:

  • Automatyczne wysyłanie poleceń wejściowych do emulatora obejmuje uruchamianie poleceń powłoki adb, które mogą powodować duże obciążenie, lub korzystanie z konsoli Telnet, która jest szybsza, ale może nie działać w niektórych konfiguracjach sieciowych.
  • Użytkownicy CI często używają emulatorów bez interfejsu graficznego, co utrudnia dostrzeżenie problemów, które wymagają widoczności lub interakcji z ekranem.
  • Użytkownicy pulpitu zdalnego często nie mogą korzystać z emulatora podczas renderowania GPU hosta, ponieważ renderowanie GPU jest często powiązane z niewirtualnymi wyświetlaczami hosta.

Aby rozwiązać ten problem, emulator obsługuje teraz usługę gRPC, gdy działa na maszynie z systemem Linux. gRPC to ogólna platforma RPC, która działa przez HTTP.

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

-grpc <port>

Po uruchomieniu usługi polecenia gRPC mogą być wydawane z klientów. Obecny zestaw poleceń umożliwia zarówno wysyłanie zdarzeń wejściowych, jak i odbieranie zrzutów ekranu. Te polecenia pomagają rozwiązać te problemy:

  • Polecenia wejściowe można wysyłać do emulatora z małym narzutem przez HTTP. HTTP umożliwia też wysyłanie poleceń w dodatkowych konfiguracjach sieci.
  • Polecenia zrzutu ekranu mogą wysyłać zapytania dotyczące bieżącego ekranu, nawet jeśli emulator działa bez interfejsu graficznego. Aby zwiększyć interaktywność, zdarzenia wejściowe można też wysyłać z powrotem do emulatora.
  • Użytkownicy Pulpitu zdalnego mogą uruchamiać emulator bez interfejsu graficznego na głównym wyświetlaczu z renderowaniem akcelerowanym 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ń znajdziesz w tym dokumencie.

Aby ułatwić Ci rozpoczęcie pracy z gRPC, udostępniamy kilka przykładowych klientów, których możesz użyć.

Obecnie obejmuje to te przykłady:

  • Usługa oparta na języku Go, której można używać do wysyłania zapytań dotyczących stanów emulatorów.
  • Aplikacja React, która pokazuje zdalną interaktywność za pomocą zrzutu ekranu i wejścia RPC. Ten przykład wymaga protokołu protobuf w wersji 3.7.0 lub nowszej.
  • Przykład w Pythonie, 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

Trudno było skonfigurować emulator w przypadku Dockera i innych przepływów pracy w trybie ciągłej integracji (CI) ze względu na niejawne oczekiwania co do możliwości obsługi Qt przez system i zależności od jego bibliotek wspólnych (między innymi).

Pierwszym krokiem w tym celu wprowadziliśmy wariant emulatora z plikami wykonywalnymi QEMU, który nie zależy od Qt. W systemie Linux link do libX11 jest nadal dostępny, ale mamy nadzieję, że wkrótce go usuniemy.

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

  • Naprawiono drgania i nieprawidłowe wyświetlanie klatek na procesorach Intel podczas wyświetlania obrazów systemu Android Q.
  • Rozwiązaliśmy problemy z wyświetlaniem czarnego ekranu podczas korzystania z obrazów systemu Android Q ze skórkami Pixela 2 XL.
  • Do uruchomienia emulatora służą teraz najnowsze pliki binarne BIOS. Ta zmiana może ograniczyć liczbę błędów związanych z żądaniem wyłączenia procesora wirtualnego, które pojawiają się czasami podczas uruchamiania emulatora w systemie Windows.
  • Poprawiliśmy błąd związany z problemem z nieprawidłowym wyświetlaniem obrazów systemu Android Q ze zrzutu.
  • W wyniku niekompatybilnej zmiany w narzędziu platformy w wersji 28.0.2 wystąpiły problemy z nieautoryzowanymi emulatorami. Możesz teraz bezpiecznie używać ADB z platformy Platform-tools 28.0.2 za pomocą emulatora. Jeśli występują problemy z nieautoryzowanymi emulatorami, wykonaj te czynności, aby je rozwiązać:
    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. Wymaż dane AVD.
    6. Ponownie uruchom emulator.

28.0.23 (29 stycznia 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

Wejście audio hosta jest domyślnie wyłączone

W niedawnym poście na Reddit wyjaśniono, jak system operacyjny Android gościa zawsze używa dźwięku z mikrofonu gospodarza, dzięki czemu „OK Google” może działać w nieoczekiwany sposób. Przykro nam z tego powodu. Wspólnie z zespołem Androida wyłączymy wykrywanie słów-kluczy również w obrazie systemu.

Aby rozwiązać ten problem, wprowadziliśmy następujące zmiany:

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

Aktualności na temat analizy wykorzystania procesora

Podczas badań w ramach Project Marble zauważyliśmy, że wysokie wykorzystanie procesora przez emulator można ogólnie podzielić na 3 kategorie:

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

Z naszych danych wynika, że w losowych odstępach czasu wszystkie zainstalowane aplikacje są aktualizowane, nawet jeśli użytkownik nie jest zalogowany. W trakcie tego procesu wykorzystanie procesora jest obliczane na podstawie liczby rdzeni x 100% (zwykle około 400%) w GMSCore i dex2oat. Możesz rozwiązać ten problem, wyłączając automatyczne aktualizacje aplikacji w aplikacji Sklep Play.

Podczas bezczynności: wykrywanie słowa-klucza

Gdy korzystasz z ekranu głównego, a nie masz na pierwszym planie żadnej aplikacji, może to oznaczać duże zużycie procesora (około 25%, skoki do 50%). Jest to spowodowane tym, że ciągłe wykrywanie słów-kluczy wysyła pingi do hosta. Nie można rozwiązać tego problemu, wyłączając wejście audio hosta, ponieważ koszty procesora zależą głównie od czasu potrzebnego na dotarcie do gościa z hosta. Możesz jednak rozwiązać ten problem, anulując uprawnienia do mikrofonu w aplikacji Google.

Podczas aktywności, ale czasem podczas bezczynności: animacje

Trzecim źródłem dużego obciążenia procesora są animacje. Zauważyliśmy, że optymalizacja stosu sterowników karty graficznej pozwala też ograniczyć wykorzystanie procesora nawet wtedy, gdy emulator nie jest nieaktywny. W ramach projektu Marble stopniowo będziemy wdrażać optymalizacje sterowników karty graficznej.

28.0.22 (21 grudnia 2018 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Naprawiono długotrwały problem, który powodował, że w niektórych ustawieniach emulator Maca uruchamiał się ponownie lub wyzwalał panik jądra podczas zapisywania w Quickboot. (Numer 120951634)
  • Jeśli używasz zmapowanego pliku jako zrzutu pamięci RAM, emulator wyraźnie cofa mapowanie pliku przy zamykaniu.

28.0.20 (11 grudnia 2018 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Rozwiązaliśmy problem w systemie Windows, który powodował blokowanie się emulatora podczas wczytywania zrzutu dysku w przypadku niektórych modeli procesorów graficznych Intel.
  • Rozwiązaliśmy problem, który powodował, że stan urządzenia ADB unauthorized był używany podczas 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.
  • Usunięto problem z wyświetlaniem emulatora pikseli. Zmniejszenie próbki powinno już działać.
  • Rozwiązaliśmy problem w systemie macOS 10.14 lub nowszym, w wyniku którego sterowanie obrazem myszy w wirtualnej scenerii mogło być zbyt czułe z powodu interakcji z nowymi ustawieniami zabezpieczeń ułatwień dostępu.
  • Naprawiliśmy błąd w obliczaniu strefy czasowej, który mógł powodować sporadyczne zmiany zegara emulatora.
  • Naprawiono błędy renderowania w różnych aplikacjach cocos2d i Unrealengine.
  • Dodaliśmy obsługę typu Wi-Fi peer-to-peer w emulatorze. Jeśli używasz najnowszego obrazu Sklepu Play, dwa emulatory mogą komunikować się ze sobą bezpośrednio przez Wi-Fi. Aby używać połączenia peer-to-peer w sieci Wi-Fi, rozpocznij dwa testy AVD z takimi 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
  • Większa obsługa większej liczby kamer internetowych w systemie Windows dzięki uwzględnieniu niezgodnych rozmiarów klatek i dynamicznej zmiany rozmiaru w celu dopasowania do ustawień kamery u gościa z Androidem.

28.0.16 (listopad 2018 r.)

Ta aktualizacja obejmuje kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Użycie zasobów

Emulator zajmuje teraz mniej pamięci RAM, zwłaszcza w przypadku używania obrazów systemu z interfejsem API na poziomie 28 lub wyższym. Te obrazy systemu obejmują zwiększone wykorzystanie pamięci przez sterowniki karty graficznej po stronie klienta.

Zwiększyliśmy też wykorzystanie zasobów w tych obszarach:

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

Uruchamiaj wiele instancji 1 komponentu AVD jednocześnie

Teraz możesz uruchomić wiele instancji tego samego AVD i uruchamiać je równocześnie. Instancje, które uruchamiasz po pierwszej instancji, są tylko do odczytu, a ich zmiany na dysku wirtualnym gościa są odrzucane przy zamykaniu.

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

Jest to możliwe dzięki kopiowaniu plików QCOW2 powiązanych z częściami obrazu Androida, które można zapisać. Aby ułatwić zarządzanie miejscem na dysku, udostępniliśmy 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ą opartych na pliku zrzutów pamięci RAM gościa wiele instancji AVD korzysta z podstawowego zrzutu AVD Quickboot jako wspólnego źródła pamięci gościnnej do kopiowania przy zapisie. Ta właściwość oznacza, że instancje mają wspólną znaczną część pamięci RAM. Za pomocą tej funkcji możesz przeprowadzać testy, które wymagają równoległego działania na kilku urządzeniach.

Będziemy wdzięczni za Twoją opinię na temat możliwych przypadków użycia w ramach normalnego przepływu pracy interaktywnego lub CI. Napisz lub oddaj głos za w narzędziu Issue Tracker.

Kopie zapasowe pamięci RAM gości

Dzięki wstępnemu przydzielaniu pamięci RAM i mapowaniu jej na plik emulator może teraz zapisywać zrzuty dysku szybkiego rozruchu w czasie działania, zamiast wykonywać całą pracę przy zamykaniu. Jeśli obecnie występuje długi czas zapisywania przy zamykaniu emulatorów, włącz tę funkcję, aby poprawić wydajność Quickboot. Domyślnie szybki rozruch jest zapisywany przy zamykaniu i wczytywany ponownie za każdym razem, np. gdy użytkownik zawiesza lub wybudza prawdziwe urządzenie.

Pamięć RAM Androida dla gości jest teraz domyślnie zapisywana automatycznie. Jeśli chcesz określić stan urządzenia i wielokrotnie wczytywać dane z tego stanu, musisz wskazać emulatorowi, aby odrzucał zmiany po każdej sesji. Możesz to zrobić na kilka sposobów:

  • Użyj flag -no-snapshot-save lub -read-only podczas uruchamiania emulatora z poziomu wiersza poleceń.
  • Kliknij Rozszerzone elementy sterujące > Zrzuty dysku > Ustawienia i przełącz opcję Czy automatycznie zapisywać bieżący stan w Szybki rozruch? na Nie.
  • Po wybraniu tej opcji musisz ponownie uruchomić emulator. Jeśli emulator jest ustawiony na automatyczne zapisywanie, możesz uruchomić to polecenie, aby ustawić punkt kontrolny:
    adb emu avd snapshot remap 0
    
    Po uruchomieniu tego polecenia zrzut szybkiego rozruchu emulatora pozostanie w tym punkcie kontrolnym. Uruchom to samo polecenie jeszcze raz, aby wczytać emulator z punktu kontrolnego.

Zrzuty są wykonywane i wczytywane przez funkcję interfejsu zrzutów w takiej samej postaci jak wcześniej, bez mapowania plików.

Jest to duża zmiana w sposobie działania Quickboot, dlatego będziemy wdzięczni za Twoją opinię na temat poprawy wydajności Quickboot i rodzajów problemów, jakie napotykasz podczas korzystania z niego. Jeśli wystąpią problemy, możesz wyłączyć tę funkcję, dodając ten wiersz do pliku ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

Gdy uruchamiasz emulator ze zrzutu (za pomocą opcji wiersza poleceń -snapshot lub uruchamiając zrzut w menedżerze AVD), emulator wyłącza zarówno automatyczne zapisywanie zrzutów szybkiego rozruchu, jak i zapisy zrzutów ekranu szybkiego rozruchu przy zamykaniu. Zmniejsza to ryzyko przypadkowego zastąpienia zrzutu programu Quickboot i pozwala uniknąć powolnych ścieżek zastępczych, które nie korzystają ze zrzutów szybkiego rozruchu w postaci plików.

QEMU 2.12

Zmieniliśmy wersję QEMU z QEMU 2.9 na QEMU 2.12. Ta aktualizacja obejmuje następujące zmiany w QEMU:

Oto kilka najważniejszych zmian, które wpływają na działanie emulatora Androida:

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

Ułatwienia dostępu

  • Rozwiązaliśmy problemy z czytnikami ekranu i dodaliśmy lepszą obsługę tych narzędzi w interfejsie nagrywania ekranu i zrzutu ekranu.
  • Zwiększyliśmy dostępność ikon powiadomień w ramach szybkiego uruchamiania dla użytkowników z zaburzeniami rozpoznawania barw.

Grafika

  • Naprawiono problem z dostępem do pamięci spoza zakresu, który mógł występować w przypadku wskaźników tablicy wierzchołkowej OpenGL ES.
  • Niektóre starsze procesory graficzne nie obsługiwały trybu OpenGL 2.1 lub nowszego (co jest wymagane) albo wystąpiły inne problemy z niezawodnością. Mogą one powodować awarię emulatora przy uruchamianiu, blokowanie się lub brak możliwości korzystania z domyślnego ustawienia GPU. Jeśli wykryje, że procesory graficzne są używane, emulator automatycznie przełącza się na mechanizm renderowania Swiftshader.
  • Rozwiązaliśmy problem, który powodował, że emulator nie publikował prawidłowego bufora ramki, jeśli element FBO != 0 był powiązany w momencie eglSwapBuffers.
  • Rozwiązaliśmy problem polegający na tym, że wirtualny wyświetlacz Androida był wyświetlany tylko w lewym górnym rogu. Naszym zdaniem wynika to z błędnej konfiguracji zmiennych środowiskowych Qt. Emulator zastępuje teraz wszystkie zmienne środowiskowe zwią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 dotyczące równoczesności w trybie OpenGL i uruchamianie wątków renderowania, które mogły spowodować podwójne zwolnienie lub uszkodzenie danych.
  • Emulator Androida obsługuje teraz obsługę skompresowanych tekstur ASTC LDR (GL_KHR_texture_compression_astc_ldr) w przypadku obrazów systemu, które korzystają z interfejsu API na poziomie 28 lub wyższym.
  • Większość nowoczesnych GPU powinna teraz mieć możliwość uruchamiania emulatora z domyślnie włączonym OpenGL ES 3.x bez używania flagi funkcji GLESDynamicVersion.
  • Usługa -gpu guest (renderowanie oprogramowania w trybie gościa) została wycofana. Obrazy systemowe dla interfejsu API na poziomie 28 lub wyższym są teraz automatycznie przełączane na używanie narzędzia Swiftshader (-gpu swiftshader_indirect).
  • Jeśli emulator uruchamia się z poziomu wiersza poleceń za pomocą flagi -no-window, domyślnym mechanizmem renderowania jest teraz Swiftshader.

Lokalizacja

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

Aparat

W systemie Windows można teraz korzystać z większej liczby kamer internetowych, ponieważ emulator dynamicznie zmienia rozmiar klatek przesyłanych z kamery. Zapobiega to też zawieszaniu się emulatora przez błędy w wyświetlaniu klatek.

Sklep Play

Aby rozwiązać problemy z brakiem miejsca na dysku w obrazach ze Sklepu Play, emulator automatycznie zmienia rozmiar partycji danych użytkownika na 6 GB po uruchomieniu nowego narzędzia AVD ze Sklepu Play.

Ogólna poprawa jakości i poprawa jakości

  • Niektórzy użytkownicy zgłaszali, że emulator działa zbyt wolno. Znaleźliśmy jedną z możliwych przyczyn powodujących, że w katalogu tymczasowym emulatora znajduje się zbyt wiele starych plików. Aby obejść ten problem, emulator nie przechowuje już plików kontroli żywotności ADB w tym katalogu. Pomóc może też usunięcie zawartości tego folderu. W zależności od systemu operacyjnego folder znajduje się w jednej z tych lokalizacji:
    • 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świetla się komunikat o błędzie. Jeśli korzystasz z systemu Windows i zauważasz wolną pamięć RAM, a mimo to nie możesz uruchomić emulatora, możliwe, że opłata za zatwierdzenie została przekroczona. Więcej informacji o tym problemie znajdziesz na stronie rozwiązywania problemów z emulatorem.
  • Opcja wiersza poleceń -sysdir prawidłowo zastępuje teraz wywnioskowany katalog obrazu systemu.
  • Modem wirtualny obsługuje teraz zapytanie +MAI o aktywność modelu.
  • Rozwiązaliśmy różne problemy związane z wyciekami pamięci, uszkodzeniem pamięci i wykorzystaniem procesora. Jeśli występują awarie, wycieki pamięci lub inne duże zużycie zasobów, utwórz problem w narzędziu do śledzenia błędów.
  • Rozwiązaliśmy problem, który ponownie występował w systemie macOS 10.14, gdy używanie zestawów słuchawkowych Bluetooth w połączeniu z emulatorem powodowało globalne pogorszenie dźwięku. Aby temu zapobiec, emulator nie używa teraz dźwięku Bluetooth w systemie macOS. (Numer 37070892)
  • Rozwiązaliśmy problem w systemie Windows, który powodował, że zegar emulatora nie znajdował się we właściwej strefie czasowej.
  • Naprawiono wolne działanie emulatora i zawieszenie się emulatora w systemach Linux z obracającymi się dyskami twardymi (HDD).
  • Naprawiliśmy kilka ostrzeżeń dotyczących kompilacji, które mogły powodować uszkodzenie stosu w systemie macOS.
  • Rozwiązano problemy, które mogły powodować mylące raporty o zawieszaniu.
  • Rozwiązaliśmy problem z niszczeniem pul wątków, który mógł powodować awarię w przypadku nieutworzenia jednego z wątków.
  • Rozwiązaliśmy problem w systemie macOS, który powodował, że liczniki czasu były niestabilne, co prowadziło do zawieszania się i innych dziwnych zachowań. Jeśli zauważysz, że emulator zawiesza się w systemie macOS, utwórz problem w narzędziu do śledzenia problemów.
  • Rozwiązaliśmy problem, który powodował, że zamknięcie emulatora wyłączało interfejs, ale nie zamykało emulatora.
  • Rozwiązaliśmy problemy z rzadkimi awariami, w tym przerwami z powodu otwierania zbyt wielu instancji /dev/urandom.
  • Rozwiązaliśmy problem, który powodował, że emulator nie uruchamiał się po pierwszym uruchomieniu narzędzia ADB w wyniku zdecydowanego zakończenia działania.
  • Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, utwórz problem w narzędziu do śledzenia problemów.
  • Rozwiązaliśmy problem, który powodował uszkodzenie połączeń ADB podczas wczytywania zrzutu.
  • Naprawiono błąd, który powodował, że podczas wznawiania zrzutu ekranu okno emulatora występowało po obrazie lub teleportowanie poza ekran, gdy orientacja urządzenia różniła się od domyślnej orientacji AVD.
  • Rozwiązaliśmy problemy powodujące awarie występujące podczas zapisywania zrzutów.
  • W systemie Linux systemy plików btrfs mogą powodować ekstremalne spowolnienia, ponieważ emulator automatycznie zapisuje zrzuty i wykorzystuje mechanizm kopiowania przy zapisie na dyskach wirtualnych. Zalecamy wyczyszczenie katalogu ~/.android/avd i uruchomienie tego polecenia w pustym katalogu ~/.android/avd:
    chattr +C
    
    Spowoduje to utworzenie nowych zrzutów w folderze, w którym funkcja kopiowania przy zapisie jest wyłączona.

HAXM 7.3.2

Ponownie chcemy wspomnieć o HAXM 7.3.2, ponieważ musi ona być zainstalowana, by najnowsze obrazy systemu działały prawidłowo w emulatorze. Technologia HAXM 7.3.2 powinna być już dostępna w wersji stabilnej. Można ją też zainstalować ręcznie na stronie https://github.com/intel/haxm/releases.

Oto kilka problemów, które rozwiązała ta wersja HAXM:

  • Usunięto losowe awarie systemów operacyjnych gościa, które używają najnowszego jądra systemu Linux (w wersji 4.6 lub nowszej). Na przykład Ubuntu 18.04 (#39, #74).
  • Usunięto błąd emulatora instrukcji x86, który mógł prowadzić do awarii hosta (#93).

Wycofanie wersji 32-bitowej w systemie Windows

Ze względu na niewielkie wykorzystanie i wysokie koszty konserwacji planujemy wycofać 32-bitową wersję emulatora Androida, która działa w systemie Windows. Przed usunięciem i zakończeniem okresu eksploatacji 32-bitowej wersji emulatora Androida wdrożymy plan przejścia. Cały czas czekamy jednak na opinie i wątpliwości dotyczące tej przyszłej zmiany.

Jeśli używasz obecnie 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ć, co możemy zrobić w przyszłości.

27.3.10 (sierpień 2018 r.)

Ta aktualizacja zawiera następujące poprawki błędu:

Poprawka konfiguracji rozmiaru pamięci RAM

Niektórzy użytkownicy zgłaszali, że emulator działa zbyt wolno. Ustaliliśmy, że jedną z możliwych przyczyn jest nieprawidłowe ustawienie rozmiaru pamięci RAM AVD w pliku config.ini komponentu AVD.

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

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

27.3.9 (lipiec 2018 r.)

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

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

Niektórzy użytkownicy mieli trudności z diagnozowaniem przyczyn, dla których nie udało się zainicjować systemu Windows Hypervisor Platform (WHPX) po aktywowaniu emulatora WHPX. Aby ułatwić diagnozowanie takich problemów, dodaliśmy bardziej szczegółowe komunikaty o błędach. Aby włączyć wyświetlanie tych komunikatów o błędach, uruchom emulator z poziomu wiersza poleceń przy użyciu flagi -verbose.

Poprawki ogólne

  • Usunięto błędy OpenGL występujące podczas wczytywania migawki w aplikacji aparatu.

27.3.8 (lipiec 2018 r.)

Ta aktualizacja obejmuje kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Zrzuty danych

Możesz teraz zapisać wiele zrzutów AVD z danej konfiguracji urządzenia i wybrać, który z nich ma zostać wczytany po uruchomieniu emulatora.

Począwszy od Androida Studio 3.2 w wersji Canary 13, każda konfiguracja urządzenia zawiera element sterujący w ustawieniach zaawansowanych w oknie Konfiguracja urządzenia wirtualnego, za pomocą którego można określić, który zrzut AVD ma być wczytywany przy uruchamianiu AVD.

Aby uwzględnić to rozszerzenie funkcji zrzutów, do okna Rozszerzone elementy sterujące dodaliśmy kategorię Zrzuty. Zawiera on elementy sterujące zapisywaniem i wczytywaniem zrzutów AVD, w tym opcje zapisywania i wczytywania zrzutu szybkiego rozruchu, które wcześniej znajdowały się w panelu Ustawienia.

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

Szczegółowe informacje znajdziesz w sekcji Zrzuty dysku.

HAXM 7.2.0

HAXM 7.2.0 jest teraz dostępne na wszystkich kanałach.

Ta aktualizacja zawiera poprawki błędów i ulepszoną obsługę dużej ilości pamięci RAM. Ponadto aktualizacja HAXM i emulator w wersji 27.3 i nowszych pozwalają na wczytywanie treści do pamięci RAM na żądanie, a nie cały zrzut podczas uruchamiania urządzenia wirtualnego. Ta zmiana powinna znacznie skrócić czas potrzebny na wczytanie zrzutu.

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

27.2.9 (maj 2018 r.)

Ta aktualizacja obejmuje kilka nowych funkcji, ulepszenia dotychczasowych funkcji i poprawki błędów.

Nagrywanie ekranu

Możesz teraz nagrywać obraz i dźwięk w emulatorze Androida oraz zapisywać nagrania w formacie WebM lub animowanym GIF-ie.

Elementy sterujące nagrywaniem 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 Nagrywanie ekranu. Aby zakończyć nagrywanie, kliknij Zatrzymaj nagrywanie.

Elementy sterujące odtwarzaniem i zapisywaniem nagranego filmu znajdują się u dołu karty Nagrywanie ekranu. Aby zapisać film, wybierz WebM lub GIF z menu na dole karty i kliknij Zapisz.

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

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

Zrzuty ekranu

Zrzuty ekranu możesz tworzyć w wierszu poleceń, używając jednego z tych poleceń:

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

Zrzuty ekranu są zapisywane w formacie PNG.

Aparat do wirtualnej sceny i ARCore

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

Informacje o używaniu kamery wirtualnej sceny w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.

Obrazy Sklepu Google Play na urządzeniu Pixel

W Sklepie Google Play są teraz dostępne obrazy urządzeń Pixel i Pixel 2. W aplikacji AVD Manager w Android Studio 3.2 i nowszych wersjach znajduje się logo Google Play w kolumnie Sklep Play. Aplikacje AVD z włączonym Sklepem Google Play mają w oknie Rozszerzone elementy sterujące kartę Google Play, która zawiera wygodny przycisk aktualizowania usług Google Play na urządzeniu.

Zrzuty danych

Możesz teraz wczytać szybki zrzut dysku bez ponownego uruchamiania emulatora. Aby wczytać zrzut, otwórz okno Rozszerzone elementy sterujące i wejdź na stronę Ustawienia, a potem kliknij przycisk Wczytaj teraz.

Wprowadziliśmy wiele ulepszeń w zakresie wczytywania i zapisywania zrzutów, aby zwiększyć wydajność wykorzystania zasobów i skrócić czas potrzebny na każdą operację. Jeśli zapisywanie danych nadal trwa wyjątkowo długo, zgłoś problem, podając informacje o CPU, pamięci RAM i ustawieniach uruchomionego oprogramowania antywirusowego, zapory sieciowej / zabezpieczającej.

Renderowanie za pomocą platformy Skia

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

Na razie musisz włączyć Skia.

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

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

Aparat

W systemie Windows emulator Androida wykorzystuje teraz Media Foundation jako backend kamery internetowej, co znacznie poprawia wydajność i liczbę klatek podczas nagrywania z kamery internetowej – do 720p 30 kl./s.

Na Macu możesz teraz używać kamery internetowej0 i kamery internetowej1.

Inne

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

Możesz teraz używać alfanumerycznych adresów SMS.

Poprawki

  • Wersja emulatora Androida dla systemu Linux jest teraz tworzona przy użyciu nowoczesnego łańcucha narzędzi Clang++. Ta zmiana rozwiązuje problem z nieuruchamianiem się emulatora z powodu błędów libGL i libstdc++.
  • Naprawiono kilka przyczyn awarii i zawieszania się aplikacji.
  • 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 przy uruchamianiu, i uruchamia się tylko wtedy, gdy wolne są co najmniej 2 GB.
  • Rozwiązaliśmy problem, który uniemożliwiał renderowanie niektórych gier na Unity.
  • Rozwiązaliśmy problem z DNS, który uniemożliwiał połączenie emulatora z siecią.
  • Rozwiązaliśmy problem, który powodował, że zmiany w pamięci wewnętrznej przydzielonej do AVD przez okno Konfiguracja 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 części interfejsu nie odpowiadał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, chyba że okno rozszerzonych elementów sterujących zostało otwarte co najmniej raz.
  • Prostokąt zmiany rozmiaru emulatora bez ramek został zaktualizowany tak, aby lepiej współgrał z motywem wizualnym emulatora.
  • W trybie samolotowym połączenia telefoniczne i SMS-y są teraz prawidłowo dezaktywowane.
  • Rozwiązaliśmy problem, który powodował, że po wczytaniu zrzutu ekranu nie działały funkcje SMS-ów i sieci komórkowej.
  • Nie będziesz już otrzymywać fałszywych ostrzeżeń o treści “Unable to open... \pstore.bin. Permission denied.”
  • Rozwiązaliśmy problem, który uniemożliwiał zmianę pozycji komponentu AVD na niektórych ekranach komputerów Mac.
  • Rozwiązaliśmy problemy z migotaniem i pustymi ekranami na nowszych komputerach MacBook Pro podczas używania kombinezonów AVD ze skórkami Pixela 2 XL.
  • Rozwiązaliśmy problemy z pustymi ekranami podczas przełączania się w tryb powiększony, gdy aktywny był emulator bez ramek.
  • Naprawiono błąd, który powodował, że wygląd skóry i emulatora urządzenia przewijał się z synchronizacją po powiększeniu.

Jeśli nadal występują zawieszenia lub inne problemy ze stabilnością, zgłoś problem.

27.1.12 (marzec 2018 r.)

Ta aktualizacja zawiera poprawki tych problemów:

  • Jakość dźwięku Bluetooth pogorszyła się po uruchomieniu emulatora. (Numer 37095756)
  • Lokalizacje zostały przesłane do jednego emulatora do każdego z nich. (Numer 73450633)
  • Lokalizacja GPS ustawiona w konsoli została zastąpiona przez wartości ustawione w graficznym interfejsie użytkownika Rozszerzone ustawienia > Lokalizacja. (Numer 73471760)

Jeśli nadal występują zawieszenia lub inne problemy ze stabilnością, zgłoś problem.

Dzięki tej aktualizacji, aktualnemu obrazowi systemu i wersji testowej Android Studio możesz używać emulatora Androida do uruchamiania aplikacji rzeczywistości rozszerzonej za pomocą ARCore. Szczegółowe wymagania i instrukcje znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.

27.1.10 (luty 2018 r.)

  • Rozdzielczość robienia zdjęć aparatem

    Klatki w rozdzielczości 720p można teraz przechwytywać za pomocą podłączonej kamery internetowej.

    Obsługa Androida 8.1 (poziom interfejsu API 27) i nowszych obrazów systemu wymaga, by każda podłączony kamera internetowa mogła rejestrować klatki w rozdzielczości 720p.

  • Poprawki

    • Rozwiązaliśmy problem, który czasami powodował, że obraz z kamery internetowej był zniekształcony lub był całkowicie zielony.
    • Naprawiliśmy błąd, który umożliwiał wyświetlanie następującego komunikatu nawet wtedy, gdy nie było informacji o zawieszeniu: „emulator: ERROR: detect a hanging thread 'Qt event loop'”. Brak odpowiedzi przez 15 000 ms”.

Jeśli nadal występują zawieszenia lub inne problemy ze stabilnością, zgłoś problem.

27.1.7 (luty 2018 r.)

  • Okno emulatora bez ramek:

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

  • Ulepszenia szybkiego uruchamiania, które usprawniają pracę ze zrzutami AVD:

    • Zrzut dysku AVD możesz zapisać w każdej chwili, klikając przycisk Zapisz teraz w panelu Ustawienia w oknie Rozszerzone elementy sterujące.
    • W wielu przypadkach emulator skraca czas potrzebny na zapisanie zrzutu, bo zapisuje tylko różnicę między obecnym stanem a wcześniej zapisanym zrzutem.

    Więcej informacji znajdziesz w dokumentacji szybkiego uruchamiania.

  • Emulator został zaktualizowany do wersji QEMU 2.9.

    Niektóre ważne ulepszenia to:

    • Zoptymalizowane wejścia-wyjścia i dokładniejsze blokowanie wątków dla większej wydajności.
    • Naprawione błędy wprowadzone od wersji QEMU 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 w emulatorze jest teraz w pełni zgodny z platformą OpenGL ES 3.0. Szczegółowe informacje o mechanizmie renderowania Swiftshader znajdziesz w sekcji Ustawienia > Zaawansowane w rozszerzonych ustawieniach.

  • Poprawki

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

27.0.5 (styczeń 2018 r.)

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

    Jeśli działa lepiej, możesz włączyć ANGLE przy użyciu flagi wiersza poleceń -gpu angle_indirect. Możesz też otworzyć okno rozszerzonych elementów sterujących, kliknąć Ustawienia > Zaawansowane i wybrać ANGLE D3D11 jako ustawienie mechanizmu renderowania OpenGL ES.

  • Naprawiono błąd polegający na tym, że kombinacja Shift+B nie wpisała wielkiego znaku B.

27.0.2 (grudzień 2017 r.)

  • Nowa funkcja szybkiego uruchamiania przyspiesza uruchamianie emulatora na podstawie zrzutu instancji AVD.

    Szybki rozruch jest domyślnie włączony dla wszystkich AVD. Chociaż przy pierwszym uruchomieniu AVD musi zostać przeprowadzone „na zimno” (tak samo jak w przypadku urządzenia), kolejne uruchomienia są szybkie, a system jest przywracany do stanu, w którym emulator został zamknięty (podobnie do wybudzania urządzenia).

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

    • Tak: po zamknięciu emulatora zawsze zapisuj zrzut w szybkim rozruchu. Jest to ustawienie domyślne.
    • Nie: nigdy nie zapisuj zrzutu dysku w trybie szybkiego uruchamiania; zawsze uruchamiaj urządzenie „na zimno”.
    • Pytaj: pytaj, czy po zamknięciu emulatora pytaj, czy zapisać szybki zrzut rozruchu.

    Twój wybór ma zastosowanie tylko do aktualnie otwartego AVD.

    Więcej informacji znajdziesz w dokumentacji szybkiego uruchamiania.

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

  • Aby zwiększyć stabilność w aplikacjach OpenGL ES 2+, emulator używa teraz profilu głównego OpenGL, jeśli jest dostępny.

  • Nowe opcje renderowania za pomocą Swiftshader / ANGLE:

    • -gpu swiftshader_indirect: szybsza i bardziej stabilna wersja Swiftshadera, która obsługuje funkcję szybkiego uruchamiania.
    • -gpu angle_indirect (tylko Windows): bardziej stabilna wersja ANGLE D3D, która działa też z funkcją szybkiego uruchamiania.

    Starsze opcje -gpu swiftshader i -gpu angle zostały wycofane. W oknie rozszerzonych elementów sterujących opcje „SwiftShader” i „ANGLE” dla ustawienia mechanizmu 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.)

Jest to drobna wersja z poprawkami błędów i tymi ulepszeniami w konfiguracji GPU:

  • Włącz animację podczas uruchamiania z użyciem mechanizmu renderowania ANGLE
  • Wyłącz GLES3 w przypadku działania z mechanizmem renderowania ANGLE

26.1.3 (sierpień 2017 r.)

To jest drobna wersja z poprawkami błędów, ulepszeniami w zakresie wydajności i drobnymi zmianami w funkcjach.

  • Ta wersja jest teraz niezbędna do korzystania z najnowszych obrazów systemu Android 8.0. Są zgodne z wysokimi tonami i zawierają oddzielne partycje vendor.img.
  • Nowa wersja HAXM 6.2.0 jest już dostępna (sprawdź w SDK Manager). Zawiera ona te aktualizacje:
    • Zwiększone wykorzystanie pamięci. Szczytowy zbiór roboczy pamięci przypiętej przez HAXM nie jest już równy rozmiarowi pamięci RAM AVD. Pamięć jest wstrzymywana na żądanie. Powinno to sprawić, że emulator będzie działać bardziej niezawodnie na komputerach z mniejszą ilością pamięci RAM.
    • Emulator z HAXM 6.2.0 może teraz uruchamiać się szybciej w systemie macOS, pomijając długą fazę inicjowania.
  • Ulepszenia konfiguracji GPU
    • Rozwiązaliśmy problemy z czarnym ekranem podczas uruchamiania podczas renderowania oprogramowania po stronie gościa przez powrót do renderowania oprogramowania po stronie hosta za pomocą narzędzia Swiftshader. Najnowsze wersje obrazów systemu dla interfejsów API poziomów 19–25 z interfejsami API Google powinny mieć działające renderowanie po stronie gościa.
    • Naprawiono problem, który powodował, że emulator był przełączany na mechanizm renderowania programowego ze względu na wykrywanie starszych GPU firmy Intel, ale działał on na oddzielnym GPU. Procesory graficzne, które zostaną przełączone na korzystanie z renderowania ANGLE lub Swiftshader, są określane w ten sposób:
      • Starsze procesory Intel iGPU mają problemy ze sterownikami zarówno w sterownikach OpenGL i ANGLE D3D. Użytkownicy z procesorem Intel HD Graphics 3xxx lub starszym będą korzystać z Swiftshader.
      • Niektórzy użytkownicy zgłaszali brak możliwości korzystania z obrazów interfejsu API poziomu 25 z powodu błędu polegającego na tym, że „Pixel Launcher ciągle się zatrzymuje”. W niektórych modelach Intel HD 4xxx może to być problem ze sterownikami. Dlatego automatycznie zostaną przełączone na ANGLE.
    • Aby uzyskać najlepsze wyniki w ramach emulacji GPU, zalecamy użycie oddzielnego GPU NVIDIA lub AMD albo nowszego GPU firmy Intel (Iris, HD 5xxx, HD 5xx/6xx).
    • Naprawiono problem z uruchamianiem emulatora (emulacja OpenGL nie powiodła się), jeśli narzędzie AVD zostało skonfigurowane za pomocą hw.gpu.mode=host, a emulator został uruchomiony 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 wystąpienia problemów lub konieczności przeprowadzenia testów na niższych poziomach interfejsu OpenGL ES API.
    • Mechanizm renderowania Mesa został wycofany; interfejs hw.gpu.mode=mesa zostanie automatycznie przełączony na używanie na hoście Swiftshader.
  • Ulepszenia w systemie macOS:
    • Emulator jest teraz w pełni zgodny z systemem macOS 10.13 High Sierra za pomocą Hypervisor.Framework i HAXM 6.2.0.
    • Komponent Hypervisor.framework jest teraz domyślnie włączony w macOS w przypadku 32-bitowych obrazów w formacie x86, aby zwiększyć wydajność i zgodność z macOS. Jeśli napotkasz właśnie z nim problemy, prześlij raport o błędzie i dodaj HVF = off do ~/.android/advancedFeatures.ini (utwórz ten plik, jeśli nie istnieje).
    • Rozwiązano problemy bez połączenia z internetem lub problemów z podłączeniem debugera podczas korzystania z funkcji Hypervisor.framework.
    • Aby poprawić zgodność i wydajność nagrywania z kamery internetowej, nagrywanie z kamery opartej na QTKit zastąpiliśmy aparatem zbuforowanym na podstawie metody AVFoundation.
  • Dodano obsługę sieci Wi-Fi w niektórych obrazach systemu (obecnie tylko interfejs API na poziomie 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 zgłaszali obawy, że obrazy systemu Sklep Play o stałym rozmiarze 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), aby otworzyć stronę interfejsu raportowania błędów bezpośrednio na stronie ustawień.
  • Rozwiązaliśmy problem, który powodował, że w przypadku starszego procesora z procesorem Intel x86 EPT, ale bez UG, emulator nie uruchamiał się, jeśli skonfigurowano więcej niż jeden rdzeń.
  • Naprawiono błąd, który powodował, że funkcja HyperV była nieprawidłowo wykrywana, jeśli emulator działał w ramach hipernadzorcy Xen.
  • Rozwiązaliśmy problem, który powodował awarię emulatora przy uruchamianiu w niektórych konfiguracjach Linuxa.

26.1.2 (lipiec 2017 r.)

Ta wersja zawiera nowe funkcje i ulepszenia w zakresie wydajności.

  • W rozszerzonych elementach sterujących dodaliśmy możliwość definiowania niestandardowej konfiguracji serwera proxy HTTP (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ę VNC dla GPU w trybie gościa, co umożliwia zdalne wyświetlanie i sterowanie emulatorem. Możesz np. uruchomić emulator i pozwolić VNC na odsłuchiwanie portu 5901 w ten sposób:

    1. Wykonaj: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Otwórz przeglądarkę VNC, np. gogle VNC, aby połączyć się z portem 5901.

      • Korzystanie z wbudowanego klienta udostępniania ekranu Maca wymaga podania hasła VNC podczas uruchamiania emulatora. 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.

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

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

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

  • Dodaliśmy eksperymentalna obsługę 32-bitowych obrazów x86 w systemie macOS Hypervisor.Framework przez flagi serwera, co powinno poprawić czas uruchamiania i wydajność.

    • Jeśli wystąpią problemy, dodaj wiersz HVF = off w sekcji ~/.android/advancedFeatures.ini.
  • Oprogramowanie OpenGL ES 3.x jest teraz domyślnie włączone w przypadku obrazów systemu i GPU hosta, które obsługują OpenGL ES 3. Obecnie tylko hosty OpenGL O (poziom interfejsu API 26) i Windows/Linux obsługują język OpenGL ES 3.

    • Jeśli występują problemy z algorytmem OpenGL ES 3, dodaj wiersz GLESDynamicVersion = off w komponencie ~/.android/advancedFeatures.ini.
  • Emulator używa teraz trybów FBO pozaekranowych OpenGL podczas renderowania z wyjątkiem ostatecznego publikowania obrazów displayowych. Powinno to pomóc w rozwiązaniu problemów ze spójnością kolorów na różnych platformach.

  • Po zgromadzeniu danych o nagłym spowolnieniu emulatora 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 użytkownicy urządzeń z procesorami Intel HD 4000, 3000 i 2000 (oraz powiązane z nimi GPU) mają teraz domyślnie ustawione renderowanie na D3D (ANGLE) lub Swiftshader (mechanizm renderowania oprogramowania).

26.0.0 (marzec 2017 r.)

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

Drobna wersja 26.0.3 (maj 2017 r.)

  • Dodaje flagi funkcji aktualizowanych online, które pozwalają szybko rozwiązywać problemy wynikające z problematycznych konfiguracji sprzętowych. Dzięki temu Google może wdrażać poprawki i funkcje zależne od konfiguracji użytkownika przez aktualizowanie flag po stronie serwera. Jeśli zauważysz problemy z konkretnym sprzętem, zgłoś błąd, żebyśmy mogli go zbadać.
  • Nowa obsługa obrotowych elementów wejściowych w przypadku obrazów systemu Android Wear API na poziomie 25. Aby emulować pokrętło wejściowe na urządzeniu Wear, kliknij kartę Obrót w rozszerzonym oknie.
  • Możesz teraz zmieniać rozmiar okna Zgłaszanie awarii i nie resetuje się już opcja 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. W ten sposób emulator nie zabraknie miejsca w wirtualnej przestrzeni adresowej 2 GB.
  • Dodaje obsługę ścieżek bezwzględnych w obrazach emulatora.
  • Dodaje w rozszerzonym oknie nową kartę z obrazami ze Sklepu Google Play, na której widać wersję Usług Google Play i przycisk do sprawdzania dostępności aktualizacji Usług Google Play.
  • Dodaje menu umożliwiające wybór mechanizmu renderowania OpenGL na stronie Ustawienia emulatora. Jeśli występują problemy ze sterownikiem OpenGL na komputerze z systemem Windows, spróbuj użyć opcji ANGLE (D3D11) lub ANGLE (D3D9) (wymaga ponownego uruchomienia). Jeśli masz problemy ze sterownikiem OpenGL na komputerze z systemem innym niż Windows, spróbuj użyć mechanizmu renderowania oprogramowania Swiftshader (wymaga ponownego uruchomienia).
  • Usunięto rzadką awarię przy zamknięciu, gdy emulator odbiera zarówno polecenia exit, jak i minimize.
  • Rozwiązano problem ze skalowaniem podczas zmiany wyświetlacza na komputerze Mac. (numer 268296)
  • Naprawia problem polegający na tym, że emulator pobiera 300% mocy procesora i podtrzymuje go po wznowieniu ze stanu uśpienia lub gdy emulator działa od dłuższego czasu.
  • Naprawia awarię występującej przy zamykaniu emulatora.

Aktualizacje HAXM w wersji 6.1.1 (marzec 2017 r.)

Uwaga: od 30 marca wersja HAXM w wersji 6.1.1 jest dostępna dla użytkowników komputerów Mac w Menedżerze pakietów SDK. Wkrótce będzie dostępna dla użytkowników systemu Windows.

Wersja 26.0.0 emulatora Androida obsługuje HAXM w wersji 6.1.1, która zawiera te aktualizacje:

  • Włącza emulację jednostek monitorowania wydajności (PMU). (Numer 223377)
  • Poprawki współistnienia z VirtualBox i Dockerem na komputerach Mac. (numer 197915)
  • Poprawia komunikat o błędzie instalacji wyświetlany, gdy instalator nie wykrywa procesora Intel VT-x w systemie Windows, zwykle dlatego, że włączona jest funkcja Hyper-V.
  • Dodaje obsługę przyspieszenia emulatora Androida w maszynie wirtualnej z systemem Windows i wykorzystującej technologię Hyper-V. Ta aktualizacja wymaga, aby instancja Hyper-V (ta, która zarządza maszyną wirtualną/gościem z systemem Windows) używała najnowszej wersji Hyper-V z włączoną wirtualizacją zagnieżdżoną. Funkcja Hyper-V musi być wyłączona w instancji Hyper-V gościa (maszynie 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. Jeśli procesor graficzny hosta ma zgodne sterowniki OpenGL na komputery, emulator przekazuje teraz 100% danych z listy mustpass CTS dEQP-GLES2 na urządzeniach z Androidem. Wprowadziliśmy tę funkcję w przypadku obrazów 24 x 86 na poziomie interfejsu API (w wersji 11 i nowszych). Wkrótce dodamy ją do wszystkich obrazów systemu.
  • Poprawiona wydajność odtwarzania filmów. Emulator przechowuje teraz wszystkie bufory kolorów filmu w pamięci współdzielonej hosta/gościa i wykonuje niezbędną ostateczną konwersję YUV na RGB w GPU. Format 1080p30 powinien być obecnie łatwo dostępny dla większości systemów. Wprowadziliśmy tę funkcję w przypadku obrazów 24 x 86 na poziomie interfejsu API (w wersji 11 i nowszych). Wkrótce dodamy ją do wszystkich obrazów systemu.
  • Emulator prawidłowo wyrejestrowuje się teraz z listy adb devices przy zamykaniu 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ż do stanu „offline” lub „nieautoryzowany”.

25.3.0 (marzec 2017 r.)

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

Drobna wersja 25.3.1 (marzec 2017 r.)

  • Naprawiono awarię występującą w niektórych konfiguracjach GPU, domyślnie wyłączając GLAsyncReplace. Ta funkcja została dodana w wersji 25.3.0, aby poprawić czas wyświetlania klatek i liczbę klatek na sekundę w grach i filmach, ale w niektórych nieznanych konfiguracjach komputerów powoduje ona awarię emulatora. Aby włączyć ją ręcznie, otwórz plik android_sdk/emulator/lib/advancedFeatures.ini i ustaw GLAsyncSwap = on.

Zależności

  • Android SDK Platform-Tools w wersji 24 lub nowszej.
  • Android SDK Tools w wersji 25.3.0.

Nowe funkcje i poprawki błędów

  • Zaktualizowany mechanizm emulacji do QEMU 2.7 obejmuje wszystkie najnowsze poprawki błędów, ulepszoną wydajność i nowe funkcje.
  • Nowa obsługa protokołu IPv6.
  • Emulator używa teraz SwiftShader jako mechanizmu renderowania oprogramowania na hoście.
  • Ulepszenia wydajności Android Pipe: Android Pipe, główny kanał komunikacji między emulatorem a systemem operacyjnym Android, działa teraz znacznie szybciej, ma mniejsze opóźnienia i oferuje lepszą wydajność wielowątkową. Zwiększa to wydajność emulatora, między innymi:
    • Większa szybkość wpychania/pobierania ADB.
    • Lepsza obsługa akceleracji w 3D.
    • Zwiększono ogólną sprawność emulatora.
    • Poprawiona wydajność grafiki.
  • Emulator używa teraz buforów po stronie GPU (glBindBuffers / glBufferData), gdy gość ich zażąda, co zmniejsza obciążenie procesora w niektórych aplikacjach.
  • Ulepszona obsługa dźwięku.
  • Szybsze operacje wejścia-wyjścia dysku: emulator używa teraz osobnych wątków do wysyłania operacji wejścia-wyjścia dysku, co przekłada się na krótszy czas oczekiwania i większą przepustowość (ok.1, 5 raza sekwencyjnego wejścia/wyjścia i około 5 razy większa szybkość wejścia-wyjścia dostępu losowego). Zmniejsza to również liczbę opróżnień dysku, co powoduje znacznie mniejsze fizyczne obciążenie urządzenia.
  • Emulator używa teraz rozproszonych plików przy rozruchu dysku na komputerach z systemem Windows, co przyspiesza zarówno pierwszy uruchomienie, jak i uruchomienie typu „Wyczyść dane”. Podczas tworzenia lub resetowania AVD emulator zapisuje teraz 100–200 MB danych na dysku zamiast 2 GB lub więcej.
  • Różne ulepszenia interfejsu GUI:
    • Emulator używa teraz wersji Qt 5.7.0, która zawiera poprawki błędów i ulepszenia wydajności.
    • Inicjowanie interfejsu użytkownika nie próbuje już ładować wszystkich plików wykonywalnych emulatora jako wtyczek Qt, więc proces jest znacznie krótszy, zwłaszcza na dyskach HDD.
    • Interakcje z interfejsem są teraz szybsze i płynniejsze, w tym obroty, zmiana rozmiaru okna oraz rozszerzone elementy sterujące wczytywaniem i zamykaniem okien.