Android Emulator jest dołączony do Android Studio.
Wersje emulatora starsze niż 25.3.0 były rozpowszechniane w ramach narzędzi Android SDK Tools.
Aby mieć pewność, że używasz najnowszej wersji, sprawdź dostępność aktualizacji w SDK Manager.
Aby pobrać poprzednie wersje Android Emulator, zapoznaj się z archiwum pobierania emulatora.
Informacje o wersjach emulatora starszych niż 25.3.0 znajdziesz w informacjach o wersjach Android SDK Tools.
Aby dowiedzieć się, jakie problemy zostały rozwiązane w najnowszych wersjach emulatora Androida, zapoznaj się z zamkniętymi problemami.
Znane problemy i sposoby ich rozwiązywania znajdziesz w artykule Rozwiązywanie problemów z emulatorem.
Poprawka 37.2.13 (28 października 2026 r.)
- [Poprawka błędu]Problem nr 568480829 Naprawiliśmy wyciek pamięci hosta w emulacji OpenGL ES, w której konteksty graficzne, powierzchnie i bufor ramki nie były zwalniane po zamknięciu aplikacji na Androida lub procesów gościa.
Android Emulator nowej generacji (wersja testowa)
Od wersji Android Studio Rabbit 3 Canary 1 dostępna jest wersja testowa Android Emulatora nowej generacji, która jest domyślnie używana na kwalifikujących się urządzeniach wirtualnych.
Nowy silnik, który jest uaktualnieniem starszego forka QEMU 2 do nowoczesnego upstreamu QEMU (wersja 11+), oferuje rozdzielenie procesów silnika i interfejsu, co zapewnia większą wierność i wydajność.
Deweloperzy zyskają:
- Szybsze uruchamianie i mniejsze obciążenie procesora i pamięci
- Zwiększona stabilność sesji dzięki odizolowanym procesom silnika i interfejsu
- Nowoczesna wirtualizacja ze zaktualizowanymi modelami sprzętowymi virtio i grafiką Vulkan
Aby rozpocząć, utwórz AVD telefonu z interfejsem API na poziomie 37.0 lub wyższym i uruchom go z Android Studio Canary. Istniejące urządzenia AVD będą na razie nadal działać bezproblemowo w klasycznym silniku emulatora.
37.2.12 – wersja stabilna (1 października 2026 r.)
[Poprawka błędu]Problem nr 537802959 macOS (Apple Silicon): strumień gRPC streamScreenshot z ImageTransport MMAP powoduje awarię silnika emulatora lub po cichu nie zapisuje klatek
[Poprawka błędu]Problem nr 507078580 Emulator uniemożliwia przejście systemu macOS w tryb uśpienia
[Poprawka błędu]Problem nr 506475581 Rozwiązaliśmy pozostałe problemy ze zniekształceniami dźwięku i trzaskami podczas uruchamiania w systemie macOS, gdy używany jest interfejs audio z więcej niż 2 kanałami (sprzężenie zwrotne, wiele wyjść).
37.1.11 – wersja stabilna (30 lipca 2026 r.)
Sterownik hipernadzorcy Android Emulator (AEHD) zostanie wycofany 31 grudnia 2026 r. Aby ułatwić przejście, Android Studio pomaga teraz użytkownikom systemu Windows przejść z AEHD na Windows Hypervisor Platform (WHPX). Informacje o konfigurowaniu akceleracji maszyny wirtualnej za pomocą WHPX znajdziesz w artykule o konfigurowaniu akceleracji maszyny wirtualnej za pomocą WHPX.

Dodano urządzenie wirtualne Pixel 10a
Dodaliśmy obsługę nowych rozszerzeń Vulkan wymaganych do uruchamiania obrazów systemu API 37.
[Poprawka błędu]Problem nr 324465986 Brak błędu o braku miejsca na dane podczas robienia zrzutu ekranu na emulatorze bez miejsca na dane
[Poprawka błędu]Problem nr 526671872 Obsługa sufiksów jednostek (np. „6G”, „32M”) w konfiguracjach pamięci RAM AVD i rozmiaru sterty maszyny wirtualnej w pliku config.ini
[Poprawka błędu]Problem nr 325814592 Problem wprowadzony w systemie macOS 14, który powoduje, że po uruchomieniu aparatu emulator zaczyna się zawieszać i działać bardzo wolno.
36.6.11 – wersja stabilna (2 czerwca 2026 r.)
Począwszy od interfejsu API 37, minimalna ilość pamięci (RAM) używanej przez maszynę wirtualną AVD została zwiększona do 4 GB.
Aby sprostać wyższym wymaganiom Androida 17 (API 37) dotyczącym pamięci, urządzenia wirtualne z Androidem (AVD) na telefonach wymagają teraz co najmniej 4 GB pamięci RAM. Jeśli urządzenie AVD jest skonfigurowane z mniejszą ilością pamięci, emulator automatycznie zastąpi ustawienie, aby przydzielić co najmniej 4 GB, co zapobiegnie potencjalnym problemom z czasem działania.
Dodaliśmy tryb kamery „środowisko” do emulatora, aby umożliwić konfigurowanie tła sceny wirtualnej. Te sceny są zdefiniowane w pliku environment.ini urządzenia AVD i można je dynamicznie ponownie wczytywać w czasie działania.
Naprawiliśmy błąd, który powodował, że podgląd zrzutu w samodzielnym emulatorze nie był czyszczony po usunięciu zrzutu.
[Poprawka błędu]Problem nr 506475581 Dźwięk emulatora jest poważnie zniekształcony w systemie macOS, gdy używany jest interfejs audio z ponad 2 kanałami (sprzężenie zwrotne, wiele wyjść)
[Poprawka błędu]Problem nr 516455370 Naprawiliśmy poważny wyciek pamięci w systemie macOS 26.3 podczas zamykania emulatora, związany z czyszczeniem zasobów używanych przez interfejsy API Hypervisor.framework.
Poprawka 36.5.11 (23 kwietnia 2026 r.)
- [Poprawka błędu]Problem nr 492228020: Android Emulator wyświetla czarny ekran podczas renderowania grafiki sprzętowej/automatycznej na procesorze graficznym Intel
36.5.10 – wersja stabilna (2 kwietnia 2026 r.)
Ta aktualizacja zawiera te funkcje i poprawki błędów:
Testowanie interakcji na wielu urządzeniach za pomocą emulatora Androida
Android Emulator zawiera teraz nowy stos sieciowy, który ułatwia testowanie na wielu urządzeniach, eliminując potrzebę ręcznego przekierowywania portów w celu połączenia wielu instancji AVD na tym samym hoście. Urządzenia AVD mogą teraz automatycznie wykrywać się nawzajem i komunikować się ze sobą, jakby znajdowały się w tej samej sieci wirtualnej. Umożliwia to bezproblemowe testowanie interakcji peer-to-peer przy użyciu protokołów takich jak Wi-Fi Direct i wykrywanie usług sieciowych.
Nowy stos sieciowy oferuje deweloperom kilka kluczowych korzyści:
- Zero konfiguracji: nie musisz już ręcznie przekierowywać portów ani pisać skryptów poleceń adb.
- Płynna komunikacja peer-to-peer: kluczowe protokoły, takie jak Wi-Fi Direct i wykrywanie usług sieciowych, działają od razu między emulatorami.
- Większa stabilność: rozwiązuje długotrwałe problemy ze stabilnością, takie jak utrata danych (problem nr 150758736) i przerwy w połączeniu (problem nr 449817856) występujące w starszym stosie.
Aby rozpocząć, zaktualizuj Android Emulator do najnowszej wersji w SDK Managerze w Android Studio. Więcej informacji znajdziesz w dokumentacji.
Dodatkowe funkcje i poprawki błędów
Dodano nowe urządzenia wirtualne z Androidem, w tym Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL i Pixel 10 Pro Fold.
Wyświetlanie kamer internetowych jako przyjaznych dla użytkownika nazw i rozwiązanie problemu w systemie Linux, który powodował, że emulator nie wykrywał i nie wyświetlał wszystkich podłączonych kamer internetowych.
[Poprawka błędu]Problem nr 333628462 Proces crashpad_handler zużywa zbyt dużo mocy procesora w systemie macOS
Poprawka 36.4.10 (9 marca 2026 r.)
- [Poprawka błędu]Problem nr 489369080 Naprawiono błąd powodujący awarię emulatora telewizora po najechaniu kursorem po aktualizacji do wersji Panda 2
36.4.9 wersja stabilna (10 lutego 2026 r.)
Aby uprościć wybór GPU w interfejsie użytkownika, rozszerzone elementy sterujące Android Emulator zawierają teraz opcje sprzętu i oprogramowania. Użytkownicy wiersza poleceń mogą teraz używać opcji „-gpu software”, aby wybrać najlepsze dostępne backendy renderowania oprogramowania GLES i Vulkan dla swojego systemu
Włączyliśmy Lavapipe jako domyślny programowy renderer grafiki, aby poprawić zgodność z interfejsem Vulkan na wszystkich platformach.
Ulepszenia interfejsu Vulkan:
- Zaktualizowano program ładujący Vulkan dołączony do emulatora.
- Naprawiono różne przypadki nieprawidłowego użycia w backendzie Vulkan.
- Dodano obsługę SkiaVk w systemui z emulacją kolejki grafiki w nowych obrazach systemu.
- Dodaliśmy obsługę kompozycji Vulkan, aby wyłączyć użycie GL na hoście. Ta opcja jest domyślnie włączona w przypadku obrazów XR i można ją włączyć za pomocą opcji wiersza poleceń „-feature VulkanNativeSwapchain”.
[Poprawka błędu]Problem nr 471008659 Wyciek pamięci po stronie hosta emulatora podczas otwierania i zamykania aktywności
36.4.3 Canary (8 grudnia 2025 r.)
Nowy emulator okularów z AI
Dodaliśmy nowy, eksperymentalny emulator okularów z AI do tworzenia i testowania aplikacji utworzonych za pomocą pakietu Jetpack XR SDK na okulary z AI. Możesz uruchomić emulator okularów wraz z emulatorem telefonu, sparować je i wykonywać typowe interakcje, które można wykonywać na okularach. Informacje o instalowaniu emulatora okularów z AI i konfigurowaniu środowiska programistycznego znajdziesz w artykule Tworzenie wirtualnych urządzeń z okularami z AI.
Emulator okularów z AI to narzędzie eksperymentalne. Możesz napotkać problemy, zwłaszcza podczas ponownego parowania okularów z emulatorami telefonów i interakcji z interfejsem panelu dotykowego.
Nowy emulator okularów XR
Rozszerzyliśmy wcześniej wprowadzony emulator Androida XR na okulary XR z optyczną przezroczystością (OST). Możesz użyć emulatora okularów XR, aby wyświetlić podgląd aplikacji z przybliżonym polem widzenia i rozdzielczością okularów XR. Informacje o instalowaniu emulatora okularów XR i konfigurowaniu środowiska programistycznego znajdziesz w artykule Tworzenie wirtualnych okularów XR.
Emulatory okularów XR i okularów z AI to narzędzia eksperymentalne. Możesz napotkać problemy, zwłaszcza w przypadku niektórych konfiguracji GPU i sterowników w systemie Windows (patrz Wymagania systemowe systemu Windows).
Znane problemy
Twoja opinia pomoże nam ulepszyć tę funkcję i ustalić priorytety dotyczące przyszłych funkcji. Informacje o zgłaszaniu błędów związanych z Android Studio lub Android Emulatorem znajdziesz w artykule Zgłaszanie błędu.
36.3.10 – wersja stabilna (4 grudnia 2025 r.)
[Poprawka błędu]Problem nr 452843321 Pogorszona wydajność podczas przesyłania dużych plików do emulatora w interfejsie Android API 34 i nowszych.
Naprawiono błędy kompozycji Vulkan, gdy kodeki wideo działają w trybie tekstury GPU.
Naprawiliśmy błąd powodujący awarię emulatora podczas zdarzenia na ekranie dotykowym, gdy jest on uruchamiany z opcją -debug-events.
Poprawka 36.2.12 (13 października 2025 r.)
- Naprawiliśmy błąd powodujący awarię w systemie Windows, który występował podczas uruchamiania aplikacji Vulkan w trybie renderowania programowego.
Wersja stabilna 36.2.11 (9 października 2025 r.)
Obsługa funkcji HAXM została usunięta z emulatora. Jeśli spróbujesz utworzyć AVD za pomocą HAXM, zobaczysz baner z informacją o braku hipernadzorcy i link do działania umożliwiający zainstalowanie AEHD.

Informacje o odinstalowywaniu HAXM znajdziesz w artykule na ten temat.
Naprawiono błąd, aby procesor graficzny Intel używał OpenGL ES 3.0 i nie powodował awarii sterownika
[Poprawka błędu]Problem nr 340322888 Nie można uruchomić AVD, gdy na urządzeniu nie ma wolnego miejsca
[Poprawka błędu]Problem nr 150758736 Przerywana utrata danych jednobajtowych w połączeniach TCP w emulatorze
[Poprawka błędu]Problem nr 434774381 Jądro gościa ulegało awarii po szybkim uruchomieniu w przypadku interfejsów API 36 i 35 (być może też innych) w systemie Windows 11 przy użyciu WHPX na procesorze i7-11850H
36.1.9 – wersja stabilna (31 lipca 2025 r.)
[Poprawka błędu]Problem nr 419157428 Znaki UTF-8 w nazwie użytkownika lub ścieżce AVD mogły uniemożliwiać uruchomienie emulatora
[Poprawka błędu]Problem nr 423670833: Android Emulator ulega awarii w systemie plików btrfs
Uwaga: jeśli masz problemy z uruchomieniem emulatora na X11, rozważ użycie renderowania programowego. Informacje o konfigurowaniu renderowania programowego znajdziesz w artykule Konfigurowanie akceleracji grafiki.
35.6.11 – wersja stabilna (24 czerwca 2025 r.)
Ulepszyliśmy obsługę procesorów graficznych AMD i Nvidia w systemach Windows i Linux na potrzeby emulacji XR.
AVD XR można uruchomić jako osadzone w oknach Android Studio.
Ulepszenie szczegółów raportu o awarii w systemie Windows, aby umożliwić pełny zrzut emulatora
[Poprawka błędu]Problem nr 410485043 Urządzenie XR w emulatorze Androida ulega awarii z błędem Vulkan
[Poprawka błędu]Problem nr 388718417: libndk_translation.so przerywa działanie i powoduje awarię w Arm64AesEncode
35.5.10 – wersja stabilna (6 maja 2025 r.)
Dodano dodatkowe testy zgodności procesora z komunikatami o błędach (np. niewystarczająca ilość miejsca na dysku).
Naprawiliśmy błędy związane z zarządzaniem pamięcią Vulkan i nieprawidłowymi przypadkami użycia.
Obsługa migawek Vulkan jest sprawdzana i prawidłowo pomijana podczas uruchamiania w terminalu.
Dodano obsługę rozszerzenia VK_KHR_multiview i formatu tekstury A1R5G5B5.
Dodano urządzenie wirtualne Pixel 9a
Wersja stabilna 35.4.9 (25 lutego 2025 r.)
Dodano menu w rozszerzonych ustawieniach sterowania, które umożliwia wybór preferencji sterownika GLES gościa.
[Poprawka błędu]Problem nr 389330750: wysyłanie SMS-a do emulatora ze znakiem Ñ powoduje podzielenie wiadomości
[Poprawka błędu]Problem nr 382180488 Funkcja „emuglConfig_get_vulkan_hardware_gpu_support_info” ulega awarii z powodu braku wykrytych urządzeń Vulkan
Uwaga: emulator Androida XR jest dostępny tylko w wersjach Canary Android Studio.
Wersja stabilna 35.3.11 (9 stycznia 2025 r.)
[Poprawka błędu]Problem nr 368059211: dostęp automatyczny do VHAL w systemie operacyjnym Android Auto nie działa przy użyciu interfejsu Car Service API
[Poprawka błędu]Problem nr 348598513 Emulator ma niepotrzebną, niebezpieczną dla wątków metodę publiczną w blokadzie wielowątkowej
[Poprawka błędu]Problem nr 356896486 Wyłączanie wywołań interfejsu Vulkan API podczas uruchamiania z parametrem -feature -Vulkan
35.4.4 Canary (12 grudnia 2024 r.)
Nowy emulator Androida XR
Dodaliśmy nowy, eksperymentalny emulator Androida XR do tworzenia i testowania aplikacji utworzonych za pomocą pakietu Jetpack XR SDK na gogle. Informacje o instalowaniu emulatora Androida XR i konfigurowaniu środowiska programistycznego znajdziesz w artykule Konfigurowanie pakietu SDK Jetpack XR.
Emulator Androida XR to narzędzie eksperymentalne. Zdecydowaliśmy się jednak udostępnić Ci tę funkcję wcześniej, aby umożliwić Ci jej przetestowanie. Możesz napotkać problemy, zwłaszcza w przypadku niektórych konfiguracji GPU i sterowników w systemie Windows. Problemy mogą też dotyczyć testów zgodności istniejących aplikacji mobilnych 2D. Twoja opinia pomoże nam ulepszyć tę funkcję i ustalić priorytety dotyczące przyszłych funkcji.
Do tej pory emulator Androida XR został przetestowany na tych konfiguracjach sprzętowych:
- Mac (ARM)
- Windows 11
- GPU nVidia, 4 GB pamięci vRAM, sterownik w wersji 553.35 lub nowszej
- 16 GB lub więcej pamięci RAM
- 8 rdzeni lub więcej
Znane problemy
Emulator – stabilność i wydajność:
- W niektórych konfiguracjach systemu Windows mogą wystąpić krytyczne blokady systemu lub awarie podczas uruchamiania systemu lub aplikacji. Upewnij się, że platforma Windows Hypervisor Platform (WHPX) jest włączona, postępując zgodnie z przewodnikiem dla deweloperów Android Studio dotyczącym włączania WHPX.
- Problemy takie jak brak reakcji AVD lub elementów interfejsu na laptopach po cyklu zawieszenia i wznowienia (np. zamknięcie i otwarcie laptopa).
- Sporadyczne awarie podczas przełączania aplikacji z „trybu ekranu głównego” na „tryb pełnego ekranu”
- Interfejsy Gemini API nie są jeszcze dostępne. Aplikacja szablonu startowego Gemini API ulegnie awarii.
Emulator – symulowanie danych wejściowych i wyjściowych:
- Klawiatura wirtualna do pól wyszukiwania i edycji może być tylko częściowo widoczna w polu widzenia.
Elementów nie można przesuwać w kierunku osi Z (w głąb ekranu i na zewnątrz) za pomocą myszy i klawiatury.
Niestabilność wejścia audio hosta mikrofonu AVD może powodować ponowne uruchamianie i awarie AVD.
Dźwięk czasami zawiera zakłócenia lub jest zniekształcony.
Gdy kamera zostanie przesunięta poza wirtualny salon, widoczne są błędy renderowania.
Konfiguracje systemu Windows wyświetlają ciemniejsze kolory niż zwykle.
Dźwięk przestaje działać po pozostawieniu emulatora w stanie bezczynności i zablokowaniu ekranu w systemie macOS. (ponowne uruchomienie emulatora przywróci go).
Połączenie sieciowe zostaje przerwane, gdy maszyna hosta zmienia sieć Wi-Fi.
Po włączeniu klawisza Caps Lock nadal wpisywane są małe litery.
Przewijanie za pomocą trackpada na Macu nie jest płynne.
Przewijanie niektórych elementów interfejsu przez kliknięcie i przeciągnięcie może nie działać zgodnie z założeniami. Jeśli nie, użyj kółka myszy, aby przewinąć.
Rozmyty tekst, interfejs i inne błędy w Chrome na niektórych konfiguracjach systemu Windows. Prawdopodobne obejście: włączenie WHP.
Emulator – symulowanie płaszczyzn i punktów zakotwiczenia:
- Kotwice czasami nie odradzają się w pobliżu tej samej lokalizacji
- Ruchome panele nie mogą być zakotwiczone do ścian ani sufitu
- Symulowane płaszczyzny nie pasują do fizycznego układu pokoju 3D w trybie passthrough
- Ogólnie ograniczone obszary do zakotwiczania obiektów w wirtualnym pokoju
- Mały widoczny artefakt w widoku otoczenia w systemie Windows
- W niektórych przypadkach umieszczanie kotwic może spowodować awarię aplikacji.
- Podczas przenoszenia aplikacji blisko podłoża w systemie Windows nad aplikacjami mogą pojawiać się czarne linie
Emulator – inne:
- Emulator uruchamia się tylko w trybie „samodzielnym”. Tryb „Wbudowany” (wbudowany interfejs użytkownika) nie jest jeszcze obsługiwany.
- Logowanie się na konta w emulatorze w systemie Windows może spowodować, że emulator przestanie odpowiadać.
- Treść interfejsu okien może zniknąć po zmianie rozmiaru (obejście: naciśnięcie przycisku „Ekran główny”).
- W aplikacji JXRCore ActivityPanelTest panel dodatkowy nie jest początkowo wyświetlany
- Elementy szybkich ustawień mogą po dłuższym czasie zniknąć z ustawień systemu.
- Interfejs emulatora może początkowo pojawić się poza obszarem ekranu. Jeśli tak, dostosuj nieco rozmiar okna emulatora, a powinno ono wrócić na swoje miejsce.
- Emulator może się nie uruchomić, gdy używasz Pulpitu zdalnego Chrome w systemie Windows
- OpenXR nie jest jeszcze obsługiwany w emulatorze, a aplikacje OpenXR mogą powodować awarię emulatora.
- Rzadkie błędy podczas próby przesłania raportów o błędach przy użyciu ustawień rozszerzonych Android Studio w systemie Windows.
- Ikona „Wstecz” nie jest prawidłowo widoczna w aplikacji Ustawienia, dopóki kursor nie znajdzie się blisko niej na Macu
- W niektórych przypadkach podczas kompilowania może wystąpić błąd, gdy moduł „Profil podstawowy” jest używany jako część projektu szablonu XR.
- Ułatwienia dostępu „XR Talkback” są na razie tylko częściowo zintegrowane z emulatorem
Aplikacja Scene Viewer:
- Przenoszenie elementów w przeglądarce Scene Viewer może spowodować jej awarię. Aby obejść ten problem, przed próbą przeniesienia elementu lekko zmień pozycję głowy (np. za pomocą funkcji przesuwania, najazdu, klawiszy WASD itp.).
- Funkcja rzeczywistego rozmiaru 1:1 nie będzie działać prawidłowo, jeśli rzeczywisty rozmiar modelu 3D jest mniejszy lub większy niż minimalny i maksymalny limit skali (obecnie ustawiony odpowiednio na 20 cm i 70 m).
- Model 3D może przeskoczyć na pierwszą klatkę po załadowaniu.
35.2.10 (1 października 2024 r.)
- Dodano nowe urządzenia wirtualne z Androidem, w tym Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL i Pixel 9 Pro Fold.
- Dodano nowy obraz systemu tabletu dla Vanilla Ice Cream (API 35)
35.1.20 (29 sierpnia 2024 r.)
- Dodano AVD Pixela 8a
- Poprawki różnych błędów na urządzeniach składanych
- Aktualizacja Qt i poprawki dotyczące awarii i zawieszeń związanych z Qt
- [Poprawka błędu] Rozwiązaliśmy problem z awariami i zawieszaniem się aplikacji korzystających z Vulkana w systemie Windows.
34.2.16 (9 lipca 2024 r.)
- [Poprawka błędu] Zawieszanie się interfejsu na Pixelu Fold podczas składania i rozkładania
- [Poprawka błędu] Nieprawidłowe wyświetlanie wersji Androida jako Android Vanilla Ice Cream Preview zamiast API 35 na Macu M1.
- [Poprawka błędu] Problem nr 296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE zwraca wartość „true” w emulatorze tabletu Pixel C
34.2.15 (31 maja 2024 r.)
- Różne poprawki błędów powodujących awarie związane z trybem swangle i czyszczeniem reklamodawców
34.2.14 (20 maja 2024 r.)
Przetestowano z Android Studio Jellyfish Stable Patch 1.
- [Poprawka błędu] Zrzut czasami zawiesza się we wbudowanym emulatorze
- [Poprawka błędu] Przyciski „Nie” i „Anuluj” nie działają prawidłowo w przypadku migawki
- [Poprawka błędu] Przyciski pada kierunkowego nie działają
- [Poprawka błędu] Rozwiązaliśmy problem występujący w systemie Windows, który w niektórych warunkach uniemożliwiał uruchomienie emulatora podczas korzystania z trybów GPU z ANGLE i powodował wyświetlanie w dzienniku komunikatu o błędzie „Nie udało się zainicjować emulacji GL”. Pamiętaj, że uruchomienie emulatora z wiersza poleceń z opcją
-gpu swangle_indirectmoże nadal powodować ten błąd w tej wersji. Jeśli nadal chcesz uruchomić emulator za pomocą wiersza poleceń w systemie Windows z renderowaniem grafiki programowej w tej wersji, użyj-gpu swiftshader_indirect - [Poprawka błędu] Skrót lokalizacji na klawiaturze wczytuje nieprzydatną mapę
- [Poprawka błędu] Podczas ustawiania lokalizacji brakuje okna „Zapisz trasę”
34.2.13 (30 kwietnia 2024 r.)
Przetestowano ze stabilną wersją Android Studio Jellyfish.
- Aktualizacja do Qt 6.5.3
- Zgodność z aktualizacjami interfejsu API Map Google używanego w funkcjach lokalizacji w rozszerzonych ustawieniach emulatora, które zostaną wprowadzone pod koniec maja.
- Naprawianie awarii o dużym wpływie
- Różne poprawki dotyczące urządzeń wirtualnych z Androidem na Pixelu
- Aktualizowanie biblioteki graficznej używanej do renderowania oprogramowania
- [Poprawka błędu]Problem 225541819: uruchomienie Chrome powoduje awarię emulatora na x86_64
- [Poprawka błędu]Problem 314614435 Przełącznik
-http-proxyjest nieprawidłowo analizowany
34.1.20 (1 kwietnia 2024 r.)
Przetestowano w stabilnej wersji Android Studio Iguana.
- [Poprawka błędu] Problem nr 314614435: rozwiązaliśmy problem, który powodował nieprawidłowe analizowanie przełącznika
-http-proxy
34.1.19 (7 marca 2024 r.)
Przetestowano w stabilnej wersji Android Studio Iguana.
- [Poprawka błędu] Problem nr 312677259: naprawiliśmy błąd powodujący zawieszanie się ekranu we wbudowanym emulatorze po zmianie rozmiaru okna.
34.1.18 (29 lutego 2024 r.)
Przetestowano w stabilnej wersji Android Studio Iguana.
- Do emulatora dodano 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 z instrumentacją uruchamianych w emulatorze, co umożliwia testowanie realistycznych scenariuszy. Ta funkcja umożliwia deweloperom bezpieczną interakcję z punktem końcowym gRPC hostowanym przez emulator Androida w ramach testów z instrumentacją Androida.
- Poprawki różnych błędów
- Poprawka błędu: ulepszenia dotyczące użyteczności urządzeń składanych.
- Poprawka błędu: dostosowanie pozycji emulatora po obróceniu.
- Poprawki błędów powodujących awarie
33.1.24 (28 grudnia 2023 r.)
Przetestowano w Android Studio Hedgehog Stable i Iguana Beta 1.
- Rozwiązaliśmy problem z kamerą internetową emulatora, który uniemożliwiał nagrywanie ekranu w formacie MP4.
- Naprawiliśmy błąd powodujący awarię emulatora na urządzeniu wirtualnym z Androidem Pixel Fold, gdy jest ono rozkładane podczas nagrywania ekranu.
- Rozwiązaliśmy problem, który powodował, że Pixel Fold wyświetlał inną obudowę telefonu z odłączoną klawiaturą i nie można było go używać (naprawiono w systemach Windows, Mac Intel i Linux).
- Naprawiono błąd wyglądu w czujnikach wirtualnych w trybie samodzielnym (naprawiono w systemach Windows, Mac Intel i Linux).
- Naprawiliśmy niektóre błędy powodujące awarie, zwłaszcza podczas zamykania emulatora.
33.1.23 (30 listopada 2023 r.)
Przetestowano z Android Studio Giraffe Patch 4 i Hedgehog Stable.
- Nowa implementacja urządzenia składanego, która lepiej emuluje Pixela Fold i działa z najnowszym interfejsem API 34.
- Uaktualnienie backendu graficznego: wdrożyliśmy protokół gfxstream dla naszego backendu graficznego. To ulepszenie zwiększa ogólną wydajność grafiki i stabilność systemu. Dodatkowo wprowadzamy obsługę Vulkan 1.3, począwszy od obrazu systemu z interfejsem API 34.
- Prośba o dodanie funkcji: opcja wyłączenia gestu „ściągnij, aby powiększyć” lub przypisania go do innego skrótu klawiszowego
- [Poprawka błędu] Problem nr 302562962 – naprawiono błąd powodujący awarię kamery internetowej emulatora podczas korzystania z systemu macOS Sonoma
- [Poprawka błędu] Problem nr 293503871 – rozwiązaliśmy problem polegający na tym, że ustawienie „Mikrofon” nie było zapisywane po ponownym uruchomieniu emulatora
- [Poprawka błędu] Problem nr 270386314 Naprawiono błąd animacji, który powodował, że pasek boczny pozostawał otwarty po zminimalizowaniu ekranu AVD
- [Poprawka błędu] Problem nr 154896775 Naprawiono narzędzie do przesyłania błędów
32.1.15 (29 sierpnia 2023 r.)
Przetestowano z Android Studio Giraffe Patch 1 i Hedgehog Canary 16.
- Spełnianie wymagań dotyczących sprzętu GAS w przypadku czujników w emulatorze AAE
- [Poprawka błędu] Problem nr 266201208 SMS-y w języku hebrajskim nie są wysyłane w interfejsie API 33
- [Poprawka błędu] Problem nr 257097404 Emulator nie pokazuje prawidłowego czasu po wybudzeniu hosta w interfejsie API 29 i 30
- [Poprawka błędu] Problem nr 228201899 Nie widać Map Google w rozszerzonych ustawieniach Android Emulator
32.1.14 (27 czerwca 2023 r.)
Przetestowano z Android Studio Hedgehog Canary 8, Giraffe Beta 5 i Flamingo Stable.
- Naprawiono orientację i zniekształcenia kamery emulatora.
- [Poprawka błędu] Problem nr 257097404 „Emulator nie pokazuje prawidłowego czasu po wybudzeniu hosta”. Ten błąd nadal występuje w przypadku interfejsów API 29 i API 30.
- [Poprawka błędu] Problem nr 243456582 „Wersje Androida po API 30 mogą nie uruchamiać się prawidłowo w emulatorze na komputerach Mac M1”
32.1.13 (22 maja 2023 r.)
Przetestowano w Android Studio Hedgehog Canary 2, Giraffe Beta 1 i Flamingo Stable.
- Dodano obsługę urządzeń wirtualnych z Androidem Pixel Fold i Pixel Tablet.
- Rozwiązaliśmy problem z awarią gLinuksa.
- [Poprawka błędu] Problem nr 215231636 „Emulator z interfejsem API powyżej API 30 nie działa na procesorze Intel 12 generacji”.
- [Poprawka błędu] Problem nr 275397905: wysoka częstotliwość awarii emulatora Androida M1 podczas wielokrotnego przesuwania kursora do emulatora i poza niego.
- Znany problem z uruchamianiem AVD, gdy istnieje raport o awarii nowszego emulatora. Więcej informacji znajdziesz w sekcji Rozwiązywanie problemów z emulatorem.
32.1.12 (21 marca 2023 r.)
Przetestowano z Android Studio Giraffe Canary 10, Flamingo RC i Electric Eel Patch 2.
- [Poprawka błędu] Problem nr 267647323 Sieć nie działa w emulatorze uruchomionym z Android Studio
- [Poprawka błędu] Problem nr 268498686 Ekran emulatora migocze
- [Poprawka błędu] Problem nr 270034824 Wydajność emulatora pogorszyła się po aktualizacji do wersji 33.1.1
- [Poprawka błędu] Problem nr 225541819: uruchomienie Chrome powoduje awarię emulatora na x86_64
- [Poprawka błędu] Problem nr 257097404 Emulator nie pokazuje prawidłowego czasu po wybudzeniu hosta
- Dodawanie zgłaszania awarii na urządzeniach Apple M1
32.1.11 (8 lutego 2023 r.)
Przetestowano z Android Studio Giraffe Canary 2, Flamingo Beta 1 i Electric Eel Patch 1.
- Optymalizacje szybkości sieci
- Obsługa myszy we wbudowanym emulatorze
- Ulepszenia Virtio-snd
- Wyłączanie używania dowiązań symbolicznych podczas rozpakowywania emulatora Androida podczas instalacji
- Naprawiono błąd powodujący awarię w emulator-check
31.3.14 (13 grudnia 2022 r.)
Przetestowano w Android Studio Dolphin, Electric Eel RC1 i Flamingo Canary 9.
- [Poprawka błędu] Naprawiono błąd powodujący awarie AVD podczas logowania się w Sklepie Play.
31.3.13 (27 października 2022 r.)
Przetestowano z Android Studio Dolphin, Electric Eel Beta 2 i Flamingo Canary 5.
- [Poprawka błędu] Problem nr 249948338: parametr strefy czasowej nie działa
- [Poprawka błędu] Problem nr 249366543: opcja emulatora -dns-server nie działa po interfejsie API 31
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ększenie rozmiaru dysku w przypadku interfejsu API w wersji 24 i nowszych
31.3.11 (23 września 2022 r.)
Przetestowano w Android Studio Dolphin i Electric Eel Canary 10.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- [Poprawka błędu] Awaria wbudowanego emulatora AVD w oknie rozszerzonych ustawień
- [Poprawka błędu] Problem nr 183139207: problemy z dźwiękiem związane z aktywacją mikrofonu przez emulator
- [Poprawka błędu] Problem nr 229764024: błąd związany z blokowaniem dotyku w AVD, który powoduje problemy z działaniem interfejsu
- [Poprawka błędu] Błąd podczas uruchamiania AVD z interfejsem API 33 na Macu M1.
- [Poprawka błędu] Problem nr 243053479: niska szybkość sieci 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 ustawienia > Telefon.
- Aktualizowanie emulatora Androida do minigbm
- Migracja skryptów kompilacji do Pythona 3
31.3.10 (18 sierpnia 2022 r.)
Przetestowano w Android Studio Dolphin Beta 5 i Electric Eel Canary 9.
Samodzielne wersje emulatora są już dostępne do pobrania. Jeśli masz problemy z najnowszą stabilną wersją lub występują w niej błędy, zgłoś błąd i rozważ pobranie poprzedniej działającej wersji z archiwum pobierania emulatora.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Lepsza obsługa ścieżek Unicode w systemie Windows
- Ulepszyliśmy obsługę wyłączania emulatora, aby można było ponownie uruchomić to samo urządzenie AVD.
- Zaktualizowany projekt i ustawienia domyślne urządzenia wirtualnego z Androidem ze składanym ekranem
- Zaktualizowane przyciski emulatora Wear
- Ulepszenia strumieniowego przesyłania dźwięku gRPC
- Dodano polecenie konsoli emulatora umożliwiające zmianę rozmiaru
- Poprawka Chrome dla interfejsu API 31
- [Poprawka błędu] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18
31.2.10 (20 kwietnia 2022 r.)
Przetestowano w Android Studio Dolphin Canary 8 i Chipmunk RC 1.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodanie narzędzia do wczytywania funkcji Vulkan z opcjami zastępczymi
- [Poprawka błędu] Naprawiono błąd kompilacji gcc8
31.2.9 (23 marca 2022 r.)
Przetestowano w Android Studio Dolphin Canary 7.
Ta aktualizacja zawiera tę poprawkę:
- [Poprawka błędu] Ignorowanie obciążenia pamięci podczas zapisywania zrzutu na M1
31.2.8 (7 lutego 2022 r.)
Przetestowano w 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: „adb reboot” na platformie Intel powoduje awarię avd z komunikatem „vcpu shutdown request”
31.2.7 (1 lutego 2022 r.)
Przetestowano w Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.
Ta aktualizacja zawiera tę poprawkę:
- [Poprawka błędu] Błąd zawieszania się emulatora na komputerach z procesorem M1.
31.2.6 (20 stycznia 2022 r.)
Przetestowano w Android Studio Arctic Fox, Bumblebee Beta 4 i Chipmunk Canary 6.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodano przyciski Wear do emulatora Wear OS.
- Wszystkie właściwości pojazdu można teraz edytować na karcie VHAL.
- [Poprawka błędu] Niepowodzenie uwierzytelniania konta Google w GmsCore w wersji 21.42.18.
- [Poprawka błędu] Netshaper nie działał prawidłowo z VirtioWifi.
- [Poprawka błędu] Polecenie konsoli zdarzenia myszy nie działało.
- Dodano sprawdzanie KVM na potrzeby tworzenia lokalnego urządzenia AVD.
31.1.3 (18 stycznia 2022 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Włączono porty konsoli dla systemu Fuchsia.
- Podczas zmiany rozmiaru okna z wieloma wyświetlaczami orientacja jest ignorowana.
- Wi-Fi: dodano obsługę filtrowania pakietów unicast na podstawie adresu MAC MAT.
- Wi-Fi: naprawiono błąd powodujący awarię, gdy używana jest sieć vmnet.
30.9.5 (15 grudnia 2021 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodaliśmy możliwość łatwej zmiany rozmiaru okna na rozmiar komputera lub tabletu.
- Dodaliśmy obsługę wielodotykowego wprowadzania danych ze zgodnych urządzeń hosta.
- VirtioWifi: dodano obsługę sieci TAP.
- Włączono pokrętło w obrazach systemu Wear.
- Rozwiązaliśmy problem z konfiguracją dźwięku gRPC.
- Zaktualizowaliśmy odtwarzanie w emulatorze SensorReplay, aby obsługiwało standardowe czujniki Androida.
- podłączanie emulatora do urządzeń peryferyjnych i innych urządzeń przez USB z przekazywaniem przez USB;
30.4.5 (23 lutego 2021 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- macOS: rozwiązaliśmy problemy ze zniekształceniami wejścia audio.
- Dodaliśmy obsługę virtio-vsock w przestrzeni użytkownika.
- Przyszłe obrazy systemu będą używać virtio-console do logcat i komunikatów jądra.
- Przyspiesz renderowanie w interfejsie Vulkan.
- Dodaliśmy obsługę debugowania zrzutów w przypadku niepowodzenia testu.
- virtio-gpu: zaktualizowano definicje, aby obsługiwały najnowsze typy wyliczeniowe zasobów blob.
- Dodaliśmy obsługę zrzutów ekranu w przypadku transportu grafiki typu „asg”.
- macOS: dodaliśmy obsługę kompilacji z użyciem pakietu macOS SDK w wersji 11.1 lub nowszej.
- Zegar KVM jest domyślnie włączony w nowszych obrazach systemu.
- Dodaliśmy obsługę czujnika tętna w emulatorach Wear.
- Usunęliśmy backend Vulkan libportability.
- Dodaliśmy obsługę większej liczby funkcji w symulatorze modemu.
30.0.26 (16 sierpnia 2020 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia istniejących funkcji i poprawki błędów.
Obsługa urządzeń składanych z wirtualnym czujnikiem zawiasu i widokiem 3D
Dodaliśmy obsługę czujników zawiasów w urządzeniach składanych. Wymaga to przyszłego obrazu systemu Android 11 i konfiguracji AVD. Widok 3D urządzenia składanego i parametry zawiasu są teraz zintegrowane z istniejącymi gotowymi ustawieniami urządzeń składanych. Poniższy kod można wykorzystać na przykład w pliku
config.iniurządzenia AVD ze składanym ekranem o przekątnej 7,3 cala: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=4Urządzenia składane mają teraz też parametr podtypu. Właściwość
config.inihw.sensor.hinge.sub_type = hinge/foldjuż jest. Więcej informacji znajdziesz we wpisie na blogu Developing for Android 11 with the Android Emulator (Tworzenie aplikacji na Androida 11 za pomocą emulatora Androida).Czujnik zawiasu jest teraz domyślnie włączony.
Jeśli skonfigurowane jest urządzenie składane, emulator wysyła teraz do gościa aktualizacje czujników kąta zawiasu i zmiany pozycji. Istniejące urządzenia składane będą teraz aktualizować kąt czujnika zawiasu i pozycję po naciśnięciu przycisków składania lub rozkładania na pasku narzędzi.

Emulator dla hostów ARM64
Kod źródłowy emulatora Linuksa obsługuje teraz kompilację skrośną z hostów x86_64 na hosty arm64, co umożliwia uruchamianie obrazów systemu arm64 z wykorzystaniem wirtualizacji KVM. Obecnie obsługiwany jest tylko
-gpu swiftshader_indirect(renderowanie hosta Swiftshader arm64), ale można też użyć zgodnego zestawu bibliotek libEGL/libGLESv2 hosta GPU, zastępując nimi lib64/gles_swiftshader, a następnie ponownie uruchamiając z-gpu swiftshader_indirect. Zrzuty mogą też nie działać (dodaj-no-snapshotdo 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_aarch64Trwają prace nad obsługą Apple Silicon.
Obsługa virtio-gpu
- Dodaliśmy obsługę po stronie hosta dla nadchodzących zasobów spójnych obiektów blob hosta virtio-gpu.
- Ze względu na sposób renderowania emulatora przetwarzamy teraz kolejkę virtqueue virtio-gpu w wątku vcpu (ponieważ renderowanie i tak jest przenoszone do innych wątków). Renderowanie virtio-gpu zostanie włączone w przyszłej wersji obrazu systemu i emulatora.
- W przyszłym obrazie systemu emulator będzie mógł uruchamiać wszystkie grafiki ze stosem opartym na virtio-gpu.
Inne nowe funkcje i ulepszenia
- Przekazywanie USB jest już dostępne w systemie Windows za pomocą
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>. (Ta funkcja powinna już działać na Linuksie i macOS). - Zaktualizowaliśmy biblioteki WebRTC do wersji M83.
- Emulator obsługuje teraz strumieniowe przesyłanie strumienia audio w kontenerach przez WebRTC.
- Punkt końcowy potoku darwinn został usunięty.
- Dekodowanie CUDA VPx dla filmów jest już dostępne, jeśli dekodowanie CUDA VPx jest dostępne w sprzęcie, za pomocą zmiennej środowiskowej
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1. - W systemie macOS instrukcje SSE 4.1 i 4.2 są teraz dostępne w systemie operacyjnym gościa Androida.
- W systemie macOS funkcja INVTSC jest teraz domyślnie włączona. Może to poprawić dokładność pomiarów czasu przez system operacyjny gościa.
- Teraz śledzimy w danych, który panel sterowania został wybrany przez użytkownika.
- Emulator Linuksa używa teraz parawirtualizowanego zegara KVM, gdy wersja jądra systemu gościa jest większa lub równa 5.4 (obrazy systemu R lub nowsze).
- Emulator używa teraz LZ4 do dekompresji jądra gościa, dzięki czemu jest zgodny z nowoczesnym potokiem jądra.
Dodaliśmy polecenia konsoli, które umożliwiają uzyskanie katalogu AVD emulatora, ścieżki pliku wykrywania w przypadku użycia wbudowanego w Studio i ś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 miejsca na ekranie w pionie, dodaliśmy opcję ukrywania ramki urządzenia dla bieżącego AVD w sekcji Rozszerzone ustawienia > Ustawienia. Aby ukryć ramki urządzeń we wszystkich urządzeniach AVD, udostępniliśmy flagę funkcji
NoDeviceFrame, którą można aktywować, uruchamiając emulator z wiersza poleceń z parametrem-feature NoDeviceframe, lub zablokować, dodającNoDeviceFrame = ondo~/.android/advancedFeatures.ini(utwórz ten plik, jeśli jeszcze nie istnieje).Dodano element menu na stronie sieci komórkowej, który umożliwia włączanie i wyłączanie obsługi połączeń taryfowych. Nie działa on w przypadku starszych obrazów systemu, które nie obsługują przełącznika połączeń taryfowych 5G.
- Dodaliśmy też polecenie konsoli do tego samego celu:
gsm meter on|off
- Dodaliśmy też polecenie konsoli do tego samego celu:
Zaktualizowano łańcuch narzędzi / kompilację do C++17.
Poprawki: wbudowany emulator
- Schowek powinien teraz działać.
- Rozwiązaliśmy problem, który powodował, że wielkie litery były wyświetlane w emulatorze jako małe.
- Naprawiono błąd związany z wczytywaniem tokena konsoli ze ścieżki Unicode w systemie Windows.
- Naprawiono komunikat o błędzie
SO_REUSEPORTw systemie Linux. - Rozwiązaliśmy problem z uszkodzeniem zrzutu ekranu podczas wysyłania poleceń zrzutu ekranu przez gRPC, a także podczas naciskania przycisku zapisywania zrzutu ekranu w emulatorze wbudowanym w Android Studio.
Podczas korzystania z emulatora Linuksa wbudowanego w Studio odkryliśmy, że jeśli odbywa się to za pomocą Pulpitu zdalnego Chrome, występuje błąd, w wyniku którego zmienna
XDG_RUNTIME_DIRnie jest ustawiona. Może to spowodować, że wbudowany emulator nie pojawi się, ponieważ pliki wykrywania emulatora są umieszczane w kataloguXDG_RUNTIME_DIR. Stan odpowiedniego problemu możesz sprawdzić w narzędziu Issue Tracker w Chrome.Aby obejść ten problem, emulator używa teraz plików wykrywania w innym katalogu, który jest oparty na identyfikatorze UID użytkownika:
/run/user/<uid>.Wbudowany emulator: urządzenia z zaokrąglonymi rogami lub wycięciami prawidłowo zmieniają teraz układ, aby zrobić miejsce na rogi i wycięcie. Wymaga to zimnego rozruchu tych emulatorów.
Punkt końcowy gRPC obsługuje teraz wysyłanie SMS-ów na urządzenie.
Ogólne poprawki
- Zauważyliśmy problemy ze zgodnością podczas uruchamiania emulatora systemu Windows z aktywnym Riot Vanguard. Emulator systemu Windows wykrywa teraz system Vanguard zapobiegający oszustwom i wyświetla komunikat ostrzegawczy, jeśli go wykryje.
- Naprawiono błąd
FD_SETSIZEw systemie Windows. Do nawiązywania nieblokujących połączeń z serwerami pętli zwrotnej używamy terazWSAEventSelect()zamiastselect(). - Dodaliśmy obsługę funkcji CPUID F16C w emulatorze Linux, co rozwiązuje problemy z uruchamianiem niektórych aplikacji ARM64 za pomocą translacji NDK. Trwają prace nad wersjami na macOS i Windows.
- Naprawiliśmy odtwarzanie tras GPX/KML, aby były zgodne z sygnaturami czasowymi.
- Naprawiliśmy problem z podskakującą ikoną podczas uruchamiania w systemie macOS.
- Jeśli
hw.audioInput=noihw.audioOutput=nowconfig.ini, emulator dźwięku jest teraz prawidłowo wyłączony. - Rozwiązaliśmy problem, który powodował, że jeśli okno emulatora zostało zminimalizowane, gdy okno rozszerzonych elementów sterujących było otwarte, ale nieaktywne, okno rozszerzonych elementów sterujących nadal pojawiało się podczas zmiany rozmiaru okna emulatora. W przyszłej aktualizacji całkowicie usuniemy to zachowanie (przypadek z aktywnym oknem rozszerzonych ustawień).
- Naprawiliśmy błąd, który powodował, że po uruchomieniu emulatora Wi-Fi nie było połączone.
- Rozwiązaliśmy problem z zawieszaniem się emulatora podczas zamykania, gdy wydaje on polecenia powłoki z długimi lub nieokreślonymi limitami czasu.
- Zaktualizowano pc-bios, wprowadzając poprawki, które zapewniają lepszą obsługę dużych obrazów przekazywanych do
-initrd. Poprzedni BIOS używał bardzo nieefektywnej metody. - Naprawiliśmy błąd powodujący awarię podczas kończenia działania, gdy używana jest opcja
-wifi-server-port. - Emulator wyświetla teraz ostrzeżenie, jeśli do
-propzostaną przekazane nieobsługiwane opcje (obsługiwane są tylko właściwości qemu.*). - Podczas tworzenia emulatora w systemie Windows powinno być mniej przypadków niepowodzeń zapisu do plików. Więcej informacji znajdziesz w instrukcjach kompilacji w systemie Windows.
- Wyłączono przycisk powiększenia w przypadku składanych urządzeń AVD, który powodował problemy.
- Emulator prawidłowo raportuje teraz czas uruchamiania po ponownym uruchomieniu urządzenia.
- Linux: w przypadku niewystarczających uprawnień KVM emulator wyświetla teraz instrukcje debugowania szybciej.
- Rozwiązaliśmy problem, który powodował, że emulator nie mógł uruchomić najnowszych obrazów systemu bez przyspieszenia.
- Naprawiono uszkodzenie pamięci lub awarię podczas uruchamiania z detektora zakończenia rozruchu.
- Naprawiliśmy wyciek pamięci podczas długich sesji nagrywania ekranu.
- Zaktualizowano ikony emulatora, aby odzwierciedlały markę Studio 4.1.
- Ulepszyliśmy wykrywanie sesji zdalnych w systemie Windows.
Poprawki: grafika i dekodowanie wideo
- Rozwiązaliśmy problem, który powodował, że najnowsza wersja gry Asphalt 9 wyświetlała czarny ekran.
- Usunięto spam dotyczący czyszczenia zmapowanego bufora za pomocą
NULL. - Rozwiązaliśmy problem z sytuacją wyścigu podczas usuwania stanu Vulkana po zamknięciu aplikacji Vulkan gościa.
- Programy do cieniowania emulacji Vulkan ASTC/ETC2 są teraz wbudowane w bibliotekę libOpenglRender. Będzie to bardziej niezawodne niż odczytywanie z systemu plików.
- Rozwiązaliśmy problem w interfejsie Vulkan, który powodował, że jeśli na hoście działała instancja Vulkan 1.0, funkcja
vkGetImageMemoryRequirements2KHRnieprawidłowo czyściła polepNextzwracanej strukturyVkMemoryRequirements2. - Naprawiliśmy wyciek pamięci w renderowaniu Vulkan.
- Naprawiliśmy niedawny błąd, który powodował, że kompilacja programów do cieniowania GLSL ES 1.00 z nazwami zmiennych takimi jak
isampler2Dkończyła się niepowodzeniem. - Zaktualizowano translator cieniowania ANGLE, wprowadzając różne poprawki, które rozwiązują problem z możliwym niepowodzeniem kompilacji cieniowania w systemie Linux.
- Teraz, jeśli nie uda się skompilować podstawowego shadera blit bufora ramki, emulator ulega awarii, aby można było śledzić to zjawisko.
- Zaktualizowano translator cieniowania ANGLE, aby był zgodny z najnowszą wersją ANGLE. Rozwiązaliśmy problem z uszkodzeniem pamięci podczas tłumaczenia i stałego składania programów do cieniowania OpenGL ES, które używały macierzy niekwadratowych. Tłumacz obiektów cieniujących jest teraz osobną biblioteką udostępnioną
libshadertranslator.dll. - Rozwiązaliśmy problem z inicjowaniem Vulkan na niektórych sterownikach GPU, gdy nie znaleziono niektórych funkcji urządzenia 1.1.
- Vulkan: wróciliśmy do korzystania z gotowego programu ładującego, ponieważ preferowanie systemowego programu ładującego Vulkan powodowało problemy w niektórych konfiguracjach. Znajdziemy lepsze rozwiązanie.
- Rozwiązaliśmy problem, który występował podczas korzystania z pamięci zewnętrznej Vulkan, gdy mogły zostać zaimportowane niezgodne indeksy typów pamięci na hoście.
- Rozwiązaliśmy problem z emulacją
GL_ALIASED_POINT_SIZE_RANGE, gdy typ wyliczeniowy nie był obsługiwany na hoście. - Rozwiązaliśmy problem, który powodował, że na niektórych procesorach graficznych hosta nie można było skompilować obiektów cieniujących Skia z powodu błędów związanych z
GL_EXT_shader_framebuffer_fetch. - Ponieważ nasza kopia mechanizmu renderowania D3D9 ANGLE została usunięta kilka wersji temu, teraz automatycznie przełączamy użytkowników, którzy korzystali z tego mechanizmu, na d3d11 ANGLE, jeśli został on wybrany w preferencjach interfejsu.
- Do inicjowania WGL w systemie Windows dodano więcej danych debugowania, aby ułatwić śledzenie błędów.
- Gdy
hw.gltransport=virtio-gpu-pipe, wydajność jest zwiększona, ponieważ nie dochodzi do obciążenia hosta podczas przesyłania danych z hosta do gościa. - Dodano więcej dzienników debugowania na wypadek niepowodzenia inicjowania emulacji OpenGLES.
- Rozwiązaliśmy problem z migotaniem filmów na YouTube lub ich niewyświetlaniem się podczas wczytywania podsumowania.
- Na razie wróciliśmy do dekodowania programowego w przypadku libvpx, ponieważ zauważyliśmy problemy z dekodowaniem sprzętowym CUDA w libvpx. Jeśli po stronie hosta masz obsługiwaną implementację dekodowania sprzętowego CUDA, możesz ponownie włączyć dekodowanie sprzętowe libvpx 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 oraz urządzeń wirtualnych z domyślnie aktywowanym trybem okna o dowolnym rozmiarze.
Uruchamianie emulatora w Android Studio
Android Emulator można teraz uruchamiać bezpośrednio w Android Studio. Ta funkcja pozwala zaoszczędzić miejsce na ekranie, szybko przełączać się między emulatorem a oknem edytora za pomocą skrótów klawiszowych oraz organizować pracę w IDE i emulatorze w jednym oknie aplikacji.
Tryb swobodnego okna
Możesz teraz utworzyć AVD z włączonym trybem okna swobodnego, wybierając profil sprzętowy tabletu 13,5 cala z oknem swobodnym podczas tworzenia urządzenia wirtualnego w Android Studio. Ten profil sprzętowy wymaga obrazu systemu z Androidem 11 w wersji przedpremierowej dla programistów 3 lub nowszej.
Znane problemy
Zmiana rozmiaru okien o dowolnym rozmiarze obecnie nie działa z powodu problemów z przenoszeniem zaznaczenia do menedżera okien. Ten problem zostanie rozwiązany w przyszłej wersji obrazu systemu Android 11.
30.0.0 (19 lutego 2020 r.)
Ta aktualizacja zawiera obrazy systemu Android 11 (poziom interfejsu API 30) i poprawioną wydajność podczas uruchamiania plików binarnych ARM.
Obrazy systemu Android 11
Możesz teraz utworzyć urządzenie AVD z Androidem 11, wybierając jeden z dostępnych obrazów systemu na poziomie interfejsu API 30:
- x86: obejmuje interfejsy ABI x86 i ARMv7.
- x86_64: obejmuje interfejsy ABI x86, x86_64, ARMv7 i ARM64.
Obsługa plików binarnych ARM w obrazach systemowych Androida 9 i 11
Jeśli wcześniej nie można było używać emulatora Androida, ponieważ aplikacja była zależna od plików binarnych ARM, teraz możesz uruchomić aplikację, korzystając z obrazu systemu Android 9 x86 lub dowolnego obrazu systemu Android 11. Nie musisz już pobierać konkretnego obrazu systemu, aby uruchamiać pliki binarne ARM. Te obrazy systemowe Androida 9 i Androida 11 domyślnie obsługują architekturę ARM i zapewniają znacznie lepszą wydajność w porównaniu z obrazami z pełną emulacją ARM.
Znane problemy
- Niektóre pliki binarne ARMv7 nie działają na obrazach systemu Android 11 x86 i x86_64. Jeśli kierujesz reklamy na Androida 11, rozważ utworzenie aplikacji na architekturę ARM64.
29.0.11 (29 maja 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Windows: emulator korzysta teraz z dostarczanej przez nas biblioteki DLL
libgcc, a nie jest kompilowany statycznie zlibgcc. - 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 kompilację bez interfejsu graficznego dla 32-bitowych systemów x86 (
qemu-system-i386). Ta funkcja umożliwia uruchamianie 32-bitowych obrazów x86 na poziomie interfejsu API 26 i niższym w kompilacji bez interfejsu graficznego. Pamiętaj, że w przypadku 32-bitowych systemów gościa x86 z interfejsem API 27 lub nowszym emulator używa silnika 64-bitowego (qemu-system-x86_64), ponieważ w tych obrazach systemu przestrzeń użytkownika jest 32-bitowa, ale jądro jest 64-bitowe. Android Studio używa jądra do wybierania silników emulacji. - Możesz teraz określić niestandardowe ścieżki biblioteki Qt za pomocą zmiennej środowiskowej
ANDROID_QT_LIB_PATH. - Teraz możesz uruchamiać emulator z poprzednimi plikami binarnymi, które używają QEMU1, jeśli pliki wykonywalne QEMU1 (
emulator[64]-[x86|arm|etc]) znajdują się w katalogu emulatora. - Windows: rozwiązaliśmy problem, który czasami powodował, że emulator nie uruchamiał się i wyświetlał komunikat „vCPU shutdown request” (Żądanie wyłączenia vCPU).
- Rozwiązaliśmy problem z niepotrzebną barierą potoku w emulowanych skompresowanych teksturach w Vulkanie.
- Naprawiliśmy błąd, który występował w przypadku żądań serwera proxy HTTP, gdy używane było kodowanie fragmentowane. Więcej informacji znajdziesz w szczegółach zatwierdzenia.
29.0.9 (7 maja 2019 r.)
Ta aktualizacja zawiera tę poprawkę:
- Windows: rozwiązaliśmy problem, który powodował, że kamera wirtualnej sceny i kamera internetowa nie działały w emulatorze.
29.0.8 (6 maja 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodano obsługę wielu wirtualnych wyświetlaczy sprzętowych, gdy dostępna jest usługa gościa do wyliczania i ustawiania każdego wyświetlacza. W przyszłej aktualizacji obrazu systemu emulatora zostanie uwzględnionych kilka wirtualnych wyświetlaczy sprzętowych.
- Dodaliśmy nową opcję wiersza poleceń:
-delay-adb. Ta opcja blokuje przetwarzanie pakietów ADB do momentu zakończenia uruchamiania systemu operacyjnego gościa (po zimnym rozruchu). Ta opcja pomaga rozwiązać problemy, które mogą wystąpić, jeśli używasz emulatora w środowisku CI, które restartuje emulator i jednocześnie używa DDMS. - Rozwiązaliśmy błąd, który występował podczas wczytywania zrzutów, gdy
glIsRenderbufferzwracało nieprawidłową wartość. - Rozwiązaliśmy niektóre problemy z nieaktualnym stanem po ponownym uruchomieniu systemu Android w trybie gościa.
- Windows: rozwiązaliśmy problemy, które uniemożliwiały uruchomienie emulatora, gdy nazwa użytkownika systemu Windows zawierała znaki spoza zestawu ASCII lub spacje.
Znane problemy
- Interfejs zrzutów jest wyłączony w przypadku obrazów systemu Automotive, ponieważ zrzuty nie są obecnie obsługiwane w przypadku tych obrazów systemu.
29.0.6 (1 maja 2019 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia istniejących funkcji i poprawki błędów.
Usunięcie obsługi QEMU1 i 32-bitowych wersji systemu Windows
Aby ułatwić utrzymanie emulatora, nie dostarczamy już plików binarnych QEMU1 i 32-bitowych plików binarnych systemu Windows. Jeśli używasz 32-bitowej wersji systemu Windows, nie możesz przejść na wersję 29.0.6.
Wymagania dotyczące obrazów systemu Android Q
Jeśli chcesz uruchomić urządzenie AVD, które używa obrazu systemu Android Q, musisz teraz używać wersji 29.0.6 (tej wersji do publikacji) lub nowszej.
Ulepszenia w ramach Project Marble
Ta aktualizacja stanowi kontynuację naszych prac nad inicjatywą Project Marble, którą ogłosiliśmy na Android Dev Summit w listopadzie 2018 r. Więcej informacji o innych ulepszeniach w ramach Project Marble w poprzednich wersjach znajdziesz w artykule Android Emulator: ulepszenia w ramach Project Marble.
W przypadku tej aktualizacji większość naszych działań w ramach Project Marble była poświęcona zmniejszeniu wykorzystania zasobów przez emulator, np. zmniejszeniu wykorzystania procesora przez emulator w stanie bezczynności. Wprowadziliśmy też zmiany, które ułatwiają pracę z emulatorem w różnych środowiskach, i rozwiązaliśmy ogólne problemy z jakością.
W sekcjach poniżej opisujemy ulepszenia wprowadzone w ramach Project Marble, które są zawarte w tej aktualizacji:
Ulepszenia dotyczące dźwięku gospodarza
Począwszy od wersji 28.0.3, emulator domyślnie blokuje wejście audio z hosta.
Jeśli chcesz używać danych audio hosta, możesz włączyć tę opcję, klikając Rozszerzone ustawienia > Mikrofon i włączając Mikrofon wirtualny używa wejścia audio hosta. Ta opcja jest automatycznie wyłączana po ponownym uruchomieniu emulatora.
Jeśli używasz wiersza poleceń, możesz też włączyć dźwięk hosta za pomocą opcji -allow-host-audio. Możesz też użyć tych poleceń ADB, aby włączyć lub wyłączyć dane dźwiękowe hosta:
adb emu avd hostmiconadb emu avd hostmicoff
Ulepszenia kompilacji emulatora bez interfejsu graficznego
Począwszy od wersji 28.0.25, emulator zawiera opcję kompilacji bez interfejsu graficznego, która może działać bez interfejsu użytkownika. Możesz używać kompilacji bez interfejsu graficznego, aby skonfigurować emulator na potrzeby Dockera i przepływów pracy ciągłej integracji (CI).
W ramach 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. Lista zależnych od systemu bibliotek współdzielonych, które nie są dołączone do emulatora, została ograniczona do tych pozycji:
Linux-vdso.so.1Libutil.so.1Libm.so.6Libdl.so.2Librt.so.1Libpthread.so.0Libgcc_s.so.1Libc.so.6ld-linux-x86-64.so.2
Zaktualizowano biblioteki interfejsu Qt do wersji 5.12 LTS.
Ta aktualizacja obejmuje te ulepszenia z wersji Qt 5.12 LTS:
- Aby uniknąć awarii podczas dekodowania
libpngw Qt przy uruchamianiu niektórych obrazów systemu, emulator używa teraz własnej kopiilibpngdo dekodowania obrazów PNG. - Aby rozwiązać problemy z niektórymi instalacjami Linuksa zawierającymi niezgodne wersje niektórych bibliotek zależnych od Qt, dołączamy teraz do emulatora
libfreetype,libsoftokn,libsqlite3ilibxkbcommon. - Emulator używa teraz natywnych bibliotek okien platformy do uzyskiwania wymiarów monitora, zamiast bibliotek Qt, które zwracały niewiarygodne wyniki.
Automatyczne optymalizacje procesora po zimnym rozruchu
Aby rozwiązać problem z użyciem procesora, po otrzymaniu sygnału boot complete emulator uruchamia teraz te polecenia ADB podczas zimnego rozruchu:
adb shell settings put screen_off_timeout 214783647- To polecenie wydłuża czas do wyłączenia ekranu, dzięki czemu emulatora można używać w trybie zasilania z baterii bez ładowania. W trybie baterii wykorzystanie procesora w tle jest znacznie mniejsze.
- W trybie ładowania prądem przemiennym operacje GMSCore w tle, takie jak aktualizacje aplikacji, mogą bez ostrzeżenia przejąć wszystkie rdzenie procesora urządzenia, a tym samym komputer użytkownika.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO- To polecenie odbiera aplikacji wyszukiwarki Google dostęp do mikrofonu, co znacznie zmniejsza wykorzystanie procesora w tle na ekranie głównym i w menu z aplikacjami, gdy aplikacja wyszukiwarki Google jest aktywna.
- To polecenie jest uruchamiane dodatkowo do domyślnego działania emulatora, jakim jest wyłączenie dźwięku hosta. Ponadto automatycznie zapewnia to 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 umożliwić szczegółowe monitorowanie wydajności emulatora i wykorzystania zasobów.
SHOW_PERF_STATS=1- Ta zmienna środowiskowa umożliwia śledzenie wykorzystania zarówno procesora, jak i pamięci RAM. Śledzenie wykorzystania pamięci RAM rozróżnia wykorzystanie grafiki i całkowitą pamięć rezydentną.
ANDROID_EMU_TRACING=1- Ta zmienna środowiskowa umożliwia drukowanie za każdym razem, gdy operacja wejściowa lub graficzna trwa długo (ponad 1 ms).
- Używamy tej zmiennej środowiskowej również do diagnozowania problemów, które powodują, że użytkownicy systemu Windows doświadczają większej liczby przeskoków (pominiętych klatek) niż użytkownicy systemów macOS lub Linux.
Ogólne ulepszenia w ramach Project Marble
Ta aktualizacja obejmuje też te ogólne ulepszenia, które są częścią inicjatywy Project Marble:
- Teraz możesz natychmiast wstrzymać wszystkie procesory wirtualne w emulatorze za pomocą tych poleceń konsoli:
adb emu avd pauseadb emu avd resume
- Znacznie zmniejszone koszty ogólne rysowania w OpenGL. To ulepszenie zmniejsza wykorzystanie procesora podczas odtwarzania animacji przez emulator.
- Przywrócono obsługę urządzenia sieci wirtualnej e1000 w głównej wersji QEMU. Możesz użyć tego urządzenia, aby skonfigurować emulator w środowisku sieci mostkowanej. W środowisku sieci mostkowanej emulator jest widoczny w sieci hosta, a sieć hosta jest widoczna w emulatorze.
- Do uruchamiania emulatora są teraz używane pliki binarne BIOS-u odpowiednie dla QEMU 2.12.
- Zaktualizowano wersję
ffmpegdo 3.4.5 na potrzeby kodowania i dekodowania filmów. - Znacznie zmniejszono narzut operacji wejścia-wyjścia pętli głównej QEMU w systemie macOS przez zastąpienie pętli głównej opartej na
select()pętlą główną opartą nakqueue. - Rozmiar bufora Logcat został zwiększony do 2 MB, aby rozwiązać problemy z nieoczekiwanym błędem EOF podczas uruchamiania Logcat z emulatorem.
- Emulator domyślnie eksportuje teraz zmienną środowiskową
LC_ALL=C. Ta zmiana rozwiązuje problemy z awariami i niezgodnością związane z uruchamianiem emulatora w różnych regionach. - Możesz teraz śledzić wykorzystanie procesora i pamięci RAM przez emulator za pomocą statystyk wydajności, które znajdziesz w sekcji Rozszerzone ustawienia > Ustawienia > Zaawansowane > Statystyki wydajności. Użyj tych statystyk, aby szybko zdiagnozować problemy, jeśli emulator wydaje się zużywać zbyt dużo zasobów procesora lub pamięci RAM.
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPEużywa teraz wyniku GPU hosta zamiast emulowanego. Ta zmiana pomaga rozwiązać problemy, w których obrazy i zasoby nie wyświetlają się z powodu nieprawidłowego formatu odczytu.- Dodaliśmy obsługę rozszerzeń OpenGL ES
GL_EXT_texture_format_BGRA8888iGL_APPLE_texture_format_BGRA8888, jeśli są one obsługiwane przez hosta. - Dodaliśmy więcej informacji diagnostycznych do interfejsu raportu o błędzie. Możesz też uzyskać dostęp do raportów o błędach z poziomu konsoli, używając tych poleceń:
telnet localhost 5554avd bugreport
- W przypadku obrazów systemu Android Q emulator zwiększa minimalny rozmiar pamięci RAM do 2 GB.
- Dodaliśmy więcej funkcji logowania i drukowania, gdy nie uda się zainicjować OpenGL lub hipernadzorcy.
- Jeśli emulator nie może uruchomić równoczesnej instancji
-read-onlyAVD, spróbuje ponownie uruchomić-read-onlyAVD jeszcze 3 razy w ciągu 3 sekund. Ta zmiana zwiększa prawdopodobieństwo, że emulator będzie mógł uruchomić równocześnie-read-onlyinstancji AVD, jeśli inne instancje tego AVD z możliwością zapisu nie zakończą czyszczenia nieaktualnych plików. - W przypadku nadchodzących obrazów systemu emulator obsługuje teraz 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 przywrócono linie podziału 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 odstępach 10-sekundowych. Używamy tych danych, aby wzbogacić nasze dane o wykorzystaniu zasobów emulatora o różne przypadki użycia przez naszych użytkowników. Dzięki temu możemy zwiększyć wydajność i szybkość działania emulatora.
Ogólne poprawki w ramach Project Marble
Ta aktualizacja zawiera też te ogólne poprawki, które są częścią 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, które powodowały wyświetlanie czarnego ekranu podczas używania obrazów systemu Android Q ze skórkami Pixela 2 XL (lub dowolną skórką z wycięciem lub zaokrąglonymi rogami).
- Rozwiązaliśmy problem, który powodował, że opcja wiersza poleceń
-partition-sizenie ustawiała rozmiaru partycji danych. - Rozwiązaliśmy problem, który powodował, że w niektórych sytuacjach pulseaudio w emulatorze Linuksa działało w pętli i zajmowało cały rdzeń procesora.
- Rozwiązaliśmy problemy z dostępem do pamięci poza zakresem podczas przetwarzania skompresowanych tekstur.
- Naprawiliśmy błędy GL, które występowały na hoście w
glTexSubImage2Dpodczas aktualizowania niektórych buforów gralloc (w formatach RGB 565, RGB10A2, RGB(A)16F). - Rozwiązaliśmy problem z wyświetlaniem w obrazach systemu Android Q z migawkami, w których geometria obszaru powiadomień była renderowana z nieprawidłowym ustawieniem dzielnika instancji.
- Rozwiązaliśmy kilka trudnych do odtworzenia problemów z awariami i zawieszaniem się aplikacji podczas uruchamiania, które były spowodowane utratą sygnałów przez Qt lub niestabilnymi, niespójnymi stanami podczas uruchamiania.
- Rozwiązano liczne problemy z równoczesnością. Teraz możemy utworzyć emulator Linuksa za pomocą ThreadSanitizer (TSAN), który może łatwo wykrywać błędy, które w inny sposób są trudne do odtworzenia.
- Użytkownicy systemu Linux: odkryliśmy, że w przypadku niektórych jąder hosta jądro gościa Androida może zgłosić błąd i zakończyć działanie w KVM z ogólnym błędem sprzętowym. Teraz w takiej sytuacji emulator będzie
abort(), aby ułatwić debugowanie (wcześniej emulator po prostu się zawieszał). - Użytkownicy Linuksa: dla wygody w konfiguracjach CI możesz użyć nowej opcji wiersza poleceń
-stdouterr-file <file-name>, aby przekierować zarównostdout, jak istderrdo pliku. - Rozwiązaliśmy problem, który powodował nieprawidłowe użycie
SO_REUSEADDR. Więcej informacji znajdziesz w szczegółach zatwierdzenia. - Rozwiązaliśmy 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 brakującą inicjalizacją RCU w wątkach vCPU HAXM. Ta poprawka może rozwiązać niektóre problemy z awariami i sytuacjami wyścigu.
- Naprawiliśmy błąd powodujący awarię, który występował w przypadku niektórych wzorców zapisywania i wczytywania zrzutów z interfejsu zrzutów przy użyciu najnowszych obrazów systemu Android Q.
- Rozwiązaliśmy problem, który powodował, że kamera wirtualnej sceny była pusta, gdy emulator był inicjowany z migawki, jeśli podczas zapisywania tej migawki było odtwarzane makro AR.
- Rozwiązaliśmy problem, który powodował, że niektórzy użytkownicy z konfiguracją pulpitu zdalnego widzieli czarny ekran podczas uruchamiania emulatora na Linuksie. Aby tego uniknąć, emulator wyraźnie konfiguruje teraz
MESA_RGB_VISUAL. Więcej informacji znajdziesz w szczegółach zatwierdzenia. - Rozwiązaliśmy problem, który powodował, że przyciski obracania pojawiały się na urządzeniach wirtualnych Androida na telewizorze.
- Rozwiązaliśmy problem, który powodował, że jeśli emulator był ustawiony jako zawsze na wierzchu, okno rozszerzonych elementów sterujących pojawiało się za każdym razem, gdy emulator był obracany.
Profile sprzętu dla urządzeń składanych
Emulator zawiera teraz profile sprzętu dla urządzeń składanych. Aby korzystać z tych nowych profili sprzętowych, musisz używać Android Studio 3.5 Canary 10 lub nowszego.
Do utworzenia AVD możesz użyć 2 profili sprzętowych urządzeń składanych:
- Składany 7,3 cala: 1536 x 2152 po rozłożeniu, 4,6 cala 840 x 1960 po złożeniu
- Składany 8": 2200 x 2480 po rozłożeniu, 6,6" 1480 x 2480 po złożeniu
Gdy uruchomisz emulator za pomocą jednego z tych profili sprzętowych, możesz składać i rozkładać urządzenie, korzystając z odpowiednich działań na pasku narzędzi emulatora, poleceń konsoli lub tych skrótów klawiszowych:
- Zwiń:
Ctrl + F(Command + Fw systemie macOS) - Rozwiń:
Ctrl + U(Command + Uw systemie macOS)
Makra AR
Emulator zawiera teraz makra AR, które mogą pomóc w testowaniu typowych działań AR. Możesz na przykład użyć makra, aby przywrócić domyślny stan wszystkich czujników urządzenia.
Więcej informacji znajdziesz w artykule Testowanie typowych działań AR za pomocą makr.
Obsługa Vulkan (Windows, Linux)
Użytkownicy systemów Windows i Linux mogą teraz testować aplikacje Vulkan za pomocą emulatora Androida do wersji Vulkan 1.1, jeśli używają zgodnego obrazu systemu (Android Q Beta 3 lub nowszy w przypadku Vulkan 1.1, Android Q Beta 2 w przypadku Vulkan 1.0) i zgodnego procesora graficznego hosta (dotyczy to większości procesorów graficznych Intel, NVIDIA i AMD z 2014 roku i nowszych).
Aby włączyć obsługę Vulkan, musisz dodać do pliku ~/.android/advancedFeatures.ini te flagi funkcji (jeśli plik nie istnieje, utwórz go):
Vulkan = onGLDirectMem = on
Wstępna pomoc dla deweloperów ROM
Deweloperzy ROM, którzy tworzą cele sdk_phone_x86 lub sdk_phone_x86_64 (warianty userdebug, eng) w gałęzi AOSP master, mogą teraz uruchamiać emulator z obsługą 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. Wciąż brakuje wielu rozszerzeń.
Jednak pamięć HOST_COHERENT jest obsługiwana i powinno być możliwe uruchomienie przykładowych samouczków dotyczących interfejsu Vulkan API.
Jeśli używasz Linuksa, możesz to zrobić za pomocą tych poleceń:
mkdir aosp-mastercd aosp-masterrepo init -u https://android.googlesource.com/platform/manifest -b master --depth=1repo sync -c -j12. build/envsetup.shlunch sdk_phone_x86_64-userdebugmake -j12emulator -no-snapshot -feature Vulkan,GLDirectMem
Renderowanie Skia z Vulkanem
Procesory graficzne NVIDIA i AMD, które obsługują Vulkan, obsługują też współdziałanie z OpenGL bez kopiowania za pomocą rozszerzenia GL_EXT_memory_objects. Emulator wykorzystuje tę funkcję, aby zapewnić kompletny sposób renderowania interfejsu Androida za pomocą interfejsów API Skia Vulkan.
Jeśli masz procesor graficzny NVIDIA lub AMD, który obsługuje Vulkan, użyj tych poleceń, aby przetestować renderowanie Skia ze zgodnym obrazem systemu (Android Q Beta 3 lub nowszy):
adb shellsusetprop debug.hwui.renderer skiavkstopstart
Obsługa Vulkan w systemie macOS
Obsługa systemu macOS jest nadal eksperymentalna, ale emulator zawiera już interfejsy API Swiftshader, MoltenVK i libportability (gfx-rs). Możesz eksperymentować z tymi interfejsami API, ustawiając te zmienne środowiskowe:
- Swiftshader:
ANDROID_EMU_VK_ICD=swiftshader - MoltenVK:
ANDROID_EMU_VK_ICD=moltenvk - libportability:
ANDROID_EMU_VK_ICD=portability
Znane problemy
HAXM może czasami nie zmapować spójnej pamięci Vulkan na gościa i wyłączyć emulator. Ten problem zostanie rozwiązany w nadchodzącej aktualizacji HAXM.
Emulator strumieniowania gRPC (Linux)
Zawsze staramy się, aby emulator był jak najbardziej wszechstronny, umożliwiając renderowanie i interaktywność na GPU hosta w jak najszerszym zakresie kontekstów działania. Użytkownicy CI i pulpitu zdalnego mają te długotrwałe problemy:
- Programowe wysyłanie poleceń wejściowych do emulatora wymaga uruchamiania poleceń powłoki adb, które mogą powodować duże obciążenie, lub używania konsoli telnet, która jest szybsza, ale może nie działać z niektórymi konfiguracjami sieci.
- Użytkownicy CI często uruchamiają emulatory bez interfejsu graficznego, co może utrudniać zauważenie problemów, które wymagają widoczności ekranu lub interakcji z nim.
- Użytkownicy pulpitu zdalnego często nie mogą korzystać z emulatora, gdy używają renderowania GPU hosta, ponieważ renderowanie GPU jest często powiązane z niewirtualnymi wyświetlaczami hosta.
Aby rozwiązać ten problem, emulator uruchomiony na maszynie z systemem Linux obsługuje teraz usługę gRPC. gRPC to ogólna platforma do obsługi RPC, która działa przez HTTP.
Domyślnie usługa gRPC emulatora jest wyłączona, ale możesz ją aktywować za pomocą tej opcji wiersza poleceń, gdzie <port> to port, na którym emulator powinien obsługiwać żądania gRPC (zwykle 5556):
-grpc <port>
Po uruchomieniu usługi klienci mogą wydawać polecenia gRPC. Bieżący 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 niewielkim obciążeniem przez HTTP. HTTP umożliwia też wysyłanie poleceń w dodatkowych konfiguracjach sieci.
- Polecenia zrzutu ekranu można wysyłać, aby wysłać zapytanie o bieżący ekran, nawet jeśli emulator działa bez interfejsu graficznego. W celu zapewnienia interaktywności 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 przyspieszanym przez GPU, korzystając z 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 pliku protobuf.
Aby ułatwić Ci rozpoczęcie korzystania z gRPC, udostępniliśmy kilka przykładowych klientów, do których możesz się odwoływać.
Obecnie obejmuje to te przykłady:
- Usługa oparta na Go, której można używać do wysyłania zapytań o stany emulatora.
- Aplikacja React, która demonstruje zdalną interaktywność za pomocą zrzutu ekranu i wywołań RPC danych wejściowych. Ten przykład wymaga protobuf w wersji 3.7.0 lub nowszej.
- Przykładowy kod w Pythonie, który wysyła zapytanie o konfigurację 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
Konfigurowanie emulatora z Dockerem i innymi procesami ciągłej integracji (CI) było trudne ze względu na domyślne oczekiwania systemu, że będzie on w stanie obsługiwać Qt wraz z zależnościami bibliotek współdzielonych (między innymi).
W pierwszej kolejności wprowadziliśmy wariant programu uruchamiającego emulator z plikami wykonywalnymi QEMU, który nie zależy od Qt. W systemie Linux nadal istnieje link do libX11, ale mamy nadzieję, że wkrótce go usuniemy.
Aby użyć emulatora bez interfejsu graficznego, uruchom go z wiersza poleceń jak zwykle, ale zastąp wywołanie pliku binarnego emulatora poleceniem emulator-headless. Więcej informacji znajdziesz w aktualizacji wersji 28.1.8 Canary.
- Rozwiązaliśmy problem z drganiem i nieprawidłowym wyświetlaniem klatek na procesorach graficznych Intel podczas uruchamiania obrazów systemu Android Q.
- Rozwiązaliśmy problemy, które powodowały wyświetlanie czarnego ekranu podczas korzystania z obrazów systemu Android Q ze skórkami Pixela 2 XL.
- Do uruchamiania emulatora używane są teraz najnowsze pliki binarne BIOS-u. Ta zmiana może pomóc w ograniczeniu błędów „żądania wyłączenia vCPU”, które czasami występują podczas uruchamiania emulatora w systemie Windows.
- Przenieśliśmy poprawkę dotyczącą problemu z nieprawidłowym wyświetlaniem obrazów systemu Android Q po wznowieniu z migawki.
- Użytkownicy mieli problemy z „nieautoryzowanymi” emulatorami z powodu niezgodnej zmiany w ADB w narzędziach platformy w wersji 28.0.2. Możesz teraz bezpiecznie używać ADB z platform-tools 28.0.2 z emulatorem. Jeśli masz problemy z „nieautoryzowanymi” emulatorami, wykonaj te czynności rozwiązywania problemów:
- Zamknij wszystkie emulatory.
- Usuń pliki
~/.android/adbkeyi~/.android/adbkey.pub. - Uruchom to polecenie:
adb kill-server - Uruchom to polecenie:
adb devices - Wyczyść dane AVD.
- Uruchom ponownie emulator.
28.0.23 (29 stycznia 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
Wejście audio gospodarza jest domyślnie wyłączone
W niedawnym poście na Reddicie szczegółowo opisano, jak system operacyjny Android gościa zawsze korzysta z mikrofonu hosta, co umożliwia nieoczekiwane działanie funkcji „OK Google”. Przepraszamy za tę sytuację. Wspólnie z zespołem Androida postaramy się, aby wykrywanie słów kluczowych było wyłączone również w obrazie systemu.
Aby rozwiązać ten problem, wprowadziliśmy te zmiany:
- Rzeczywiste dane audio hosta są teraz domyślnie wyciszane. Gdy gość używa mikrofonu, zamiast dźwięku gospodarza przesyłana jest cisza.
- Jeśli chcesz używać danych audio hosta, możesz teraz włączyć tę opcję, klikając Rozszerzone ustawienia > Mikrofon i włączając Mikrofon wirtualny używa wejścia audio hosta. Ta opcja jest automatycznie wyłączana po każdym ponownym uruchomieniu emulatora.
Aktualizacje dotyczące analizy wykorzystania procesora
Podczas analiz w ramach Project Marble zauważyliśmy, że wysokie wykorzystanie procesora przez emulator zwykle należy do jednej z tych 3 kategorii:
W stanie bezczynności: automatyczne aktualizacje aplikacji w obrazach Sklepu Play
Zauważyliśmy, że w losowych odstępach czasu wszystkie zainstalowane aplikacje są aktualizowane, nawet gdy użytkownik nie jest zalogowany. Podczas tego procesu wykorzystanie procesora wzrasta do liczby rdzeni x 100% (zwykle ok. 400%) w GMSCore i dex2oat. Możesz rozwiązać ten problem, wyłączając automatyczne aktualizacje aplikacji w aplikacji Sklep Play.
W stanie bezczynności: wykrywanie słów-kluczy
Na ekranie głównym, gdy żadna aplikacja nie jest na pierwszym planie, może wystąpić duże wykorzystanie procesora (około 25% ze skokami do 50%). Jest to spowodowane wykrywaniem słów-kluczy, które stale wysyła pingi do hosta. Nie możesz rozwiązać tego problemu przez wyłączenie wejścia audio hosta, ponieważ koszt procesora jest spowodowany głównie czasem potrzebnym na przesłanie danych z hosta do gościa. Możesz jednak rozwiązać ten problem, odbierając aplikacji Google dostęp do mikrofonu.
Podczas aktywności, czasem w stanie bezczynności: animacje
Trzecim źródłem wysokiego wykorzystania procesora są animacje. Odkryliśmy, że optymalizując stos sterowników graficznych, możemy również zmniejszyć wykorzystanie procesora, nawet gdy emulator nie jest bezczynny. Będziemy stopniowo wprowadzać optymalizacje sterowników graficznych w ramach Project Marble.
28.0.22 (21 grudnia 2018 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Rozwiązaliśmy długotrwały problem, który powodował, że w niektórych ustawieniach emulator Maca uruchamiał się ponownie lub występował błąd kernel panic podczas zapisywania Quickboot. (Problem 120951634)
- Gdy jako zrzut pamięci RAM używany jest zmapowany plik, emulator podczas zamykania jawnie wyłącza mapowanie pliku.
28.0.20 (11 grudnia 2018 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Rozwiązaliśmy problem w systemie Windows, który powodował zawieszanie się emulatora podczas wczytywania migawki na niektórych modelach procesorów graficznych Intel.
- Rozwiązaliśmy problem, który powodował, że urządzenie ADB miało stan
unauthorized, gdy używana była niestandardowa lokalizacjaANDROID_SDK_HOME. - Rozwiązaliśmy problem w systemie Windows, który powodował awarię emulatora podczas uruchamiania obrazów systemu z wyłączonym przyspieszeniem procesora.
- Rozwiązaliśmy problem z rozpikselowanym wyświetlaczem emulatora. Downsampling powinien teraz działać.
- Rozwiązaliśmy problem z systemem macOS 10.14 lub nowszym, który powodował, że sterowanie kamerą wirtualnej sceny za pomocą myszy 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.
- Naprawiliśmy błędy renderowania w różnych aplikacjach cocos2d i Unreal Engine.
- Dodaliśmy w emulatorze obsługę Wi-Fi peer-to-peer.
Dwa emulatory mogą teraz komunikować się ze sobą bezpośrednio przez Wi-Fi, jeśli używają najnowszego obrazu Sklepu Play na Androida Pie. Aby używać Wi-Fi peer-to-peer, uruchom 2 urządzenia AVD z tymi samymi argumentami
-wifi-server-porti-wifi-client-port:emulator @<server-avd-name> -wifi-server-port 9999emulator @<client-avd-name>-wifi-client-port 9999
- Dodaliśmy obsługę większej liczby kamer internetowych w systemie Windows, pobierając niezgodne rozmiary klatek i dynamicznie zmieniając ich rozmiar, aby pasowały do ustawień kamery w systemie Android.
28.0.16 (listopad 2018 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia istniejących funkcji i poprawki błędów.
Użycie zasobów
Emulator zużywa teraz mniej pamięci RAM, zwłaszcza gdy używa obrazów systemu z interfejsem API na poziomie 28 lub wyższym. Te obrazy systemu obejmują ulepszone wykorzystanie pamięci przez sterowniki graficzne po stronie gościa.
Dodatkowo ulepszyliśmy wykorzystanie zasobów w tych obszarach:
- Zmniejszyliśmy wykorzystanie pamięci przez emulator podczas długotrwałych testów. Jeśli nadal masz problemy z wykorzystaniem pamięci podczas długotrwałych testów, utwórz zgłoszenie opisujące Twój przypadek użycia w narzędziu Issue Tracker.
- Zmniejszone wykorzystanie procesora podczas uruchamiania aplikacji z animacjami.
- Rozwiązaliśmy problem, który mógł powodować wyciek kontekstu QEMU AIO w systemie Windows.
Uruchamianie wielu instancji jednego urządzenia AVD jednocześnie
Teraz możesz uruchamiać wiele instancji tego samego urządzenia AVD i korzystać z nich jednocześnie. Instancje uruchomione po pierwszej instancji są tylko do odczytu, a zmiany wprowadzone na wirtualnym dysku gościa są odrzucane po wyjściu.
Aby uruchomić kilka instancji tego samego urządzenia AVD jednocześnie, uruchom dowolne instancje po pierwszej instancji z wiersza poleceń, używając flagi -read-only.
Ta funkcja jest możliwa dzięki kopiowaniu plików QCOW2 powiązanych z zapisywalnymi częściami obrazu Androida. Aby ułatwić zarządzanie miejscem na dysku, dołączyliśmy też narzędzie wiersza poleceń qemu-img, które umożliwia wstępne zatwierdzanie plików QCOW2 przed uruchomieniem wielu instancji.
Dodatkowo, gdy używasz tej funkcji w połączeniu z funkcją migawki pamięci RAM gościa zapisywane w pliku , wiele instancji AVD udostępnia podstawową migawkę Quickboot AVD jako wspólne źródło pamięci RAM gościa z funkcją kopiowania przy zapisie. Ta właściwość oznacza, że instancje współdzielą dużą część pamięci RAM. Użyj tej funkcji, aby przeprowadzać testy, które wymagają równoległego działania wielu urządzeń.
Chętnie poznamy Twoją opinię na temat możliwych przypadków użycia, które są częścią Twojego normalnego interaktywnego przepływu pracy lub przepływu pracy CI. Utwórz zgłoszenie lub zagłosuj na nie w narzędziu Issue Tracker.
Zrzuty pamięci RAM gościa oparte na plikach
Dzięki wstępnemu przydzielaniu i mapowaniu pamięci RAM gościa jako pliku emulator może teraz zapisywać migawki Quickboot podczas działania, zamiast wykonywać całą pracę przy wyjściu. Jeśli obecnie zapisywanie podczas zamykania emulatorów trwa długo, włącz tę funkcję, aby poprawić wydajność szybkiego uruchamiania. Domyślnie przy wyjściu zapisywany jest zrzut Quickboot, który jest ponownie wczytywany za każdym razem, podobnie jak w przypadku zawieszania i wybudzania prawdziwego urządzenia.
Ponieważ pamięć RAM gościa Androida jest teraz domyślnie zapisywana automatycznie, jeśli chcesz zdefiniować stan urządzenia i wielokrotnie wczytywać go z tego stanu, musisz poinformować emulator, aby odrzucał zmiany po każdej sesji. Możesz to zrobić na te sposoby:
- Użyj flagi
-no-snapshot-savelub-read-onlypodczas uruchamiania emulatora z wiersza poleceń. - Kliknij Extended Controls > Snapshots > Settings (Rozszerzone ustawienia > Migawki > Ustawienia) i zmień ustawienie Auto-save current state to Quickboot? (Automatycznie zapisywać bieżący stan w Quickboot?) na No (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:
Po uruchomieniu tego polecenia zrzut Quickboot emulatora pozostanie w tym punkcie kontrolnym. Uruchom ponownie to samo polecenie, aby wczytać emulator z punktu kontrolnego.adb emu avd snapshot remap 0
Zrzuty, które są robione i wczytywane za pomocą interfejsu zrzutów, działają tak jak wcześniej, bez mapowania plików.
Ponieważ jest to duża zmiana w sposobie działania funkcji Quickboot, będziemy wdzięczni za Twoją opinię na temat tego, czy poprawia ona wydajność tej funkcji i jakie problemy napotykasz podczas korzystania z niej. Jeśli wystąpią problemy, możesz wyłączyć tę funkcję, dodając do pliku ~/.android/advancedFeatures.ini ten wiersz:
QuickbootFileBacked = off
Gdy uruchamiasz emulator z migawki (za pomocą opcji wiersza poleceń -snapshot lub z migawki w menedżerze AVD), emulator wyłącza zarówno automatyczne zapisywanie migawek Quickboot, jak i zapisywanie migawek Quickboot przy wyjściu. Zmniejsza to ryzyko niezamierzonego zastąpienia zrzutu Quickboot i pozwala uniknąć powolnych ścieżek zastępczych, które nie korzystają ze zrzutów Quickboot opartych na plikach.
QEMU 2.12
Zmieniliśmy bazę naszego wariantu QEMU z QEMU 2.9 na QEMU 2.12. Ta aktualizacja obejmuje te zmiany w QEMU:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
Oto kilka istotnych zmian, które mają wpływ na emulator Androida:
- x86:
gdbstubzapewnia teraz dostęp do rejestrów SSE. - Obrazy dysków: blokowanie obrazów jest dodane i domyślnie włączone. Wiele procesów QEMU nie może zapisywać danych w tym samym obrazie, o ile host obsługuje blokowanie OFD lub POSIX, chyba że opcje są określone inaczej.
qemu-img: qemu-img resizeobsługuje wstępną alokację nowych części obrazu.- Zmniejszanie obrazów QCOW2 jest teraz obsługiwane w
qemuiqemu-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 robienia zrzutów ekranu.
- Ikony powiadomień Quick Boot są teraz bardziej dostępne dla użytkowników, którzy nie rozróżniają kolorów.
Grafika
- Rozwiązaliśmy problem z dostępem do pamięci poza zakresem, który mógł wystąpić w przypadku wskaźników tablicy wierzchołków OpenGL ES.
- Niektóre starsze GPU nie obsługiwały standardu OpenGL 2.1 lub nowszego (który jest wymagany) albo miały inne problemy z niezawodnością. Te problemy mogą powodować awarię emulatora podczas uruchamiania, jego zawieszanie się lub uniemożliwiać korzystanie z niego przy domyślnym ustawieniu GPU. Emulator automatycznie przełącza się na mechanizm renderowania Swiftshader, jeśli wykryje, że te GPU są używane.
- Rozwiązaliśmy problem, który powodował, że emulator nie publikował prawidłowego bufora ramki, jeśli
FBO != 0był powiązany w czasieeglSwapBuffers. - Rozwiązaliśmy problem, który powodował, że wirtualny wyświetlacz Androida pojawiał się tylko w lewym górnym rogu. Uważamy, że było to spowodowane nieprawidłową konfiguracją zmiennych środowiskowych Qt. Emulator zastępuje teraz wszystkie zmienne środowiskowe związane ze skalowaniem Qt.
- Rozwiązaliśmy problem, który powodował, że emulator ulegał awarii w niektórych sytuacjach podczas wczytywania aplikacji GLES1 z migawki.
- Rozwiązaliśmy problemy ze współbieżnością w OpenGL i uruchamianiem wątków renderowania, które mogły powodować podwójne zwalnianie pamięci lub uszkodzenie danych.
- Android Emulator obsługuje teraz skompresowane tekstury ASTC LDR (
GL_KHR_texture_compression_astc_ldr) w przypadku obrazów systemowych, które używają interfejsu API na poziomie 28 lub wyższym. - Większość nowoczesnych GPU powinna teraz móc uruchamiać emulator z domyślnie włączonym OpenGL ES 3.x bez użycia flagi funkcji
GLESDynamicVersion. -gpu guest(renderowanie oprogramowania w systemie operacyjnym gościa) zostało wycofane. Obrazy systemowe dla interfejsu API na poziomie 28 lub wyższym automatycznie przełączają się teraz na Swiftshader (-gpu swiftshader_indirect).- Jeśli emulator zostanie uruchomiony z wiersza poleceń za pomocą flagi
-no-window, domyślnym mechanizmem renderowania będzie Swiftshader.
Lokalizacja
- Emulator może teraz aktualizować kierunek oraz szerokość i długość geograficzną. Wirtualny czujnik magnetometru dynamicznie dostosowuje się do północy magnetycznej, wnioskując o ruchu podczas odtwarzania pliku GPX lub KML.
- Szybkość urządzenia można teraz ustawić na stronie Lokalizacja.
- Podczas odtwarzania pliku GPX lub KML prędkość jest ustawiana automatycznie i jest ustawiana na zero po zakończeniu odtwarzania.
- 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 okresowo aktualizowana, chyba że okno rozszerzonych ustawień zostało otwarte co najmniej raz.
Aparat
W systemie Windows obsługiwanych jest teraz więcej kamer internetowych, ponieważ emulator dynamicznie zmienia rozmiar klatek kamery dostarczanych przez kamerę internetową. Ta funkcja zapobiega też zawieszaniu się emulatora z powodu błędów w dostarczaniu klatek.
Sklep Play
Aby rozwiązać problemy z brakiem miejsca na dysku w przypadku obrazów Sklepu Play, emulator automatycznie zmienia teraz rozmiar partycji danych użytkownika na 6 GB, gdy jest uruchamiany z nowym urządzeniem wirtualnym Androida ze Sklepem Play.
Ogólne ulepszenia i poprawki jakości
- Niektórzy użytkownicy zgłaszali, że emulator działa wolno. Zidentyfikowaliśmy jedną możliwą przyczynę, którą jest zbyt duża liczba nieaktualnych plików w katalogu tymczasowym emulatora. Aby rozwiązać ten problem, emulator nie przechowuje już plików sprawdzania aktywności ADB w tym katalogu. Może jednak pomóc usunięcie zawartości tego folderu. Folder znajduje się w jednej z tych lokalizacji, w zależności od systemu operacyjnego:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\* - macOS lub Linux:
/tmp/android-<username>/*
- Windows:
- Jeśli emulator nie może się uruchomić z powodu niewystarczającej ilości wolnej pamięci RAM, wyświetla się komunikat o błędzie. Jeśli używasz systemu Windows i zauważysz, że jest wolna pamięć RAM, ale nadal nie możesz uruchomić emulatora, być może został przekroczony limit pamięci zatwierdzonej. Pomoc dotyczącą tego problemu znajdziesz na stronie rozwiązywania problemów z emulatorem.
- Opcja wiersza poleceń
-sysdirteraz prawidłowo zastępuje wywnioskowany katalog obrazu systemu. - Modem wirtualny obsługuje teraz zapytanie
+MAIdotyczące informacji o aktywności modelu. - Rozwiązaliśmy różne problemy z wyciekami pamięci, uszkodzeniem pamięci i wykorzystaniem procesora. Jeśli występują awarie, wycieki pamięci lub inne problemy związane z wysokim wykorzystaniem zasobów, utwórz zgłoszenie w narzędziu Issue Tracker.
- Rozwiązaliśmy problem, który ponownie pojawił się w systemie macOS 10.14, polegający na tym, że używanie zestawów słuchawkowych Bluetooth z emulatorem powodowało pogorszenie jakości dźwięku na całym urządzeniu. Aby temu zapobiec, emulator nie używa już dźwięku Bluetooth podczas działania na macOS. (Problem 37070892)
- Rozwiązaliśmy problem w systemie Windows, który powodował, że zegar emulatora nie był w prawidłowej strefie czasowej.
- Rozwiązaliśmy problem z powolnym działaniem i zawieszaniem się emulatora na systemach Linux z dyskiem twardym (HDD).
- Naprawiliśmy kilka ostrzeżeń dotyczących kompilacji, które mogły prowadzić do uszkodzenia stosu w systemie macOS.
- Rozwiązaliśmy problemy, które mogły powodować wyświetlanie mylących raportów o zawieszaniu się.
- Rozwiązaliśmy problem z niszczeniem pul wątków, który mógł powodować awarię, jeśli jeden z wątków nie został utworzony.
- Rozwiązaliśmy problem w systemie macOS, który powodował, że liczniki czasu stawały się zawodne, co prowadziło do zawieszania się i innych nietypowych zachowań. Jeśli emulator zawiesza się w systemie macOS, zgłoś problem w narzędziu Issue Tracker.
- Rozwiązaliśmy problem, który powodował, że zamknięcie emulatora wyłączało interfejs, ale nie zamykało emulatora.
- Rozwiązaliśmy problemy związane ze sporadycznymi awariami, w tym z przerwaniem działania z powodu otwarcia zbyt wielu instancji
/dev/urandom. - Rozwiązaliśmy problem, który powodował, że emulator nie uruchamiał się po pierwszym uruchomieniu, jeśli ADB został wymuszenie zamknięty.
- Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, zgłoś problem w narzędziu Issue Tracker.
- Rozwiązaliśmy problem, który powodował, że połączenia ADB mogły ulec uszkodzeniu podczas wczytywania migawki.
- Rozwiązaliśmy problem, który powodował, że w oknie emulatora pojawiał się powidok lub okno znikało z ekranu podczas wznawiania migawki, gdy orientacja urządzenia była inna niż domyślna orientacja AVD.
- Rozwiązaliśmy problemy z awariami podczas zapisywania zrzutów ekranu.
- W systemie Linux systemy plików btrfs mogą powodować znaczne spowolnienia, ponieważ emulator automatycznie zapisuje zrzuty i używa funkcji kopiowania przy zapisie na urządzeniach z dyskiem wirtualnym. Zalecamy wyczyszczenie katalogu
~/.android/avdi uruchomienie w pustym katalogu~/.android/avdtego polecenia: Spowoduje to utworzenie nowych zrzutów w folderze, w którym wyłączono kopiowanie przy zapisie.chattr +C
HAXM 7.3.2
Chcielibyśmy jeszcze raz wspomnieć o HAXM 7.3.2, ponieważ musi on być zainstalowany, aby najnowsze obrazy systemu działały prawidłowo w emulatorze. HAXM 7.3.2 powinien być już dostępny w kanale stabilnym. Można go też zainstalować ręcznie ze strony https://github.com/intel/haxm/releases.
Oto kilka problemów, które zostały rozwiązane w tej wersji HAXM:
- Naprawiono losowe awarie systemów operacyjnych gościa, które używają najnowszego jądra Linuxa (>= 4.6). Na przykład Ubuntu 18.04 (#39, #74).
- Naprawiliśmy błąd emulatora instrukcji x86, który mógł powodować awarię hosta (#93).
Wycofanie 32-bitowych wersji systemu Windows
Ze względu na niskie wykorzystanie i wysokie koszty utrzymania planujemy wycofać 32-bitową wersję Android Emulatora, która działa w systemie Windows. Przed usunięciem i zakończeniem obsługi 32-bitowej wersji Android Emulatora udostępnimy plan przejścia. Chętnie poznamy jednak Twoją opinię lub obawy dotyczące tej zmiany.
Jeśli obecnie korzystasz z 32-bitowej wersji Android Emulator, która działa w systemie Windows, poinformuj nas o tym w narzędziu Issue Tracker i daj nam znać, jak możemy Ci pomóc.
27.3.10 (sierpień 2018 r.)
Ta aktualizacja zawiera następującą poprawkę:
Poprawka konfiguracji rozmiaru pamięci RAM
Niektórzy użytkownicy zgłaszali, że emulator działa wolno. Zidentyfikowaliśmy jedną możliwą przyczynę, polegającą na nieprawidłowym ustawieniu rozmiaru pamięci RAM urządzenia AVD w pliku config.ini.
Aby temu zapobiec, emulator zwiększa minimalny poziom pamięci RAM dla obrazów, które używają interfejsu API na poziomie 26 lub wyższym, do domyślnego poziomu Android Studio, czyli 1536 MB. Jeśli w pliku config.ini Twojego urządzenia AVD nie ma podanej wartości hw.ramSize w megabajtach, utwórz zgłoszenie w narzędziu Issue Tracker.
Plik config.ini znajdziesz w tej lokalizacji:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (lipiec 2018 r.)
Ta aktualizacja zawiera te 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 ustaleniem, dlaczego po aktywowaniu emulatora WHPX nie udało się zainicjować platformy Windows Hypervisor Platform (WHPX). Aby ułatwić Ci diagnozowanie tych problemów, dodaliśmy bardziej szczegółowe komunikaty o błędach. Możesz włączyć te komunikaty o błędach, uruchamiając emulator z wiersza poleceń za pomocą flagi -verbose.
Ogólne poprawki
- Naprawiliśmy błędy OpenGL, które występowały podczas wczytywania zdjęcia w aplikacji aparatu.
27.3.8 (lipiec 2018 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia istniejących funkcji i poprawki błędów.
Zrzuty
Możesz teraz zapisać wiele zrzutów AVD dla danej konfiguracji urządzenia i wybrać, który z nich ma zostać wczytany po uruchomieniu emulatora.
Począwszy od Android Studio 3.2 Canary 13, każda konfiguracja urządzenia zawiera w ustawieniach zaawansowanych w oknie Konfiguracja urządzenia wirtualnego element sterujący, za pomocą którego możesz określić, który obraz AVD ma zostać wczytany podczas uruchamiania AVD.
Aby uwzględnić to rozszerzenie funkcji zrzutów, dodaliśmy kategorię Zrzuty do okna Rozszerzone ustawienia. Ten nowy panel zawiera elementy sterujące do zapisywania i wczytywania migawek AVD, w tym elementy sterujące do zapisywania i wczytywania migawki Quick Boot, które wcześniej znajdowały się w panelu Ustawienia.
Możesz edytować nazwę i opis każdego zapisanego zdjęcia.
Więcej informacji znajdziesz w artykule Migawki.
HAXM 7.2.0
HAXM 7.2.0 jest teraz dostępny we wszystkich kanałach.
Ta aktualizacja zawiera poprawki błędów i ulepszoną obsługę dużych ilości pamięci RAM. Dodatkowo dzięki tej aktualizacji HAXM oraz emulatorowi w wersji 27.3 lub nowszej zrzuty ekranu wczytują swoją zawartość do pamięci RAM na żądanie, a nie w całości podczas uruchamiania urządzenia wirtualnego. Ta zmiana powinna znacznie skrócić czas potrzebny na wczytanie zrzutu.
Szczegółowe informacje znajdziesz w artykule na temat konfigurowania akceleracji maszyn wirtualnych.
27.2.9 (maj 2018 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia istniejących funkcji i poprawki błędów.
Nagrywanie ekranu
Możesz teraz nagrywać obraz i dźwięk z Android Emulatora i zapisywać nagranie w pliku WebM lub animowanym GIF-ie.
Elementy sterujące nagrywaniem ekranu znajdują się na karcie Nagrywanie ekranu w oknie Ustawienia rozszerzone.
Wskazówka: elementy sterujące nagrywaniem ekranu możesz też otworzyć, naciskając Ctrl + Shift + R (Command + Shift + R na Macu).
Aby rozpocząć nagrywanie ekranu, kliknij przycisk Zacznij nagrywać na karcie Nagrywanie ekranu. Aby zatrzymać nagrywanie, kliknij Przestań nagrywać.
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 u dołu karty i kliknij Zapisz.
Możesz też nagrać i zapisać nagranie ekranu z emulatora, używając tego polecenia w wierszu poleceń:
adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm
Zrzuty ekranu
Zrzuty ekranu możesz robić z poziomu wiersza poleceń za pomocą jednego z tych poleceń:
screenrecord screenshot [destination-directory]adb emu screenrecord screenshot [destination-directory]
Zrzuty ekranu są zapisywane w formacie PNG.
Kamera sceny wirtualnej i ARCore
Tworzenie i testowanie aplikacji rzeczywistości rozszerzonej (AR) za pomocą ARCore jest teraz jeszcze łatwiejsze dzięki nowej kamerze wirtualnej sceny, która umożliwia eksperymentowanie z AR w środowisku wirtualnym.
Informacje o używaniu kamery wirtualnej sceny w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w Android Emulatorze.
Obrazy Sklepu Google Play na urządzeniu Pixel
Sklep Google Play jest teraz włączony w obrazach urządzeń Pixel i Pixel 2. W Menedżerze urządzeń wirtualnych w Androidzie Studio 3.2 i nowszych wersjach jest to oznaczone logo Google Play w kolumnie Sklep Play. Urządzenia AVD z włączonym Sklepem Google Play mają kartę Google Play w oknie Rozszerzone ustawienia, która zawiera wygodny przycisk do aktualizowania Usług Google Play na urządzeniu.
Zrzuty
Teraz możesz wczytać migawkę Quick Boot bez ponownego uruchamiania emulatora. Aby wczytać zrzut, otwórz okno Extended Controls (Rozszerzone ustawienia) na stronie Settings (Ustawienia) i kliknij przycisk Load Now (Wczytaj teraz).
Wprowadziliśmy wiele ulepszeń w zakresie wczytywania i zapisywania zrzutów, aby zwiększyć efektywność wykorzystania zasobów i zminimalizować czas trwania każdej operacji. Jeśli zapisywanie nadal trwa zbyt długo, zgłoś problem, podając szczegółowe informacje o procesorze, pamięci RAM i ustawieniach oprogramowania antywirusowego, zapory sieciowej lub oprogramowania zabezpieczającego.
Renderowanie za pomocą Skia
Jeśli używasz obrazów dla interfejsu API 27 lub nowszego, emulator może renderować interfejs Androida za pomocą Skia, co może zapewnić płynniejsze i wydajniejsze renderowanie.
Na razie korzystanie ze Skia wymaga wyraźnego włączenia.
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 Android Emulator używa teraz Media Foundation jako backendu kamery internetowej, co znacznie poprawia wydajność i liczbę klatek na sekundę podczas nagrywania kamerą internetową, do 720p i 30 kl./s.
Na Macu możesz teraz używać jednocześnie kamer internetowych webcam0 i webcam1.
Pozostałe postanowienia
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 na Linuksa jest teraz tworzona przy użyciu nowoczesnego zestawu narzędzi Clang C++. Ta zmiana rozwiązuje problem z niepowodzeniem uruchomienia emulatora z powodu błędów libGL i libstdc++.
- Naprawiliśmy kilka przyczyn awarii i zawieszeń.
- Aby uniknąć awarii i zawieszeń spowodowanych brakiem wolnego miejsca na dysku, emulator sprawdza teraz przy uruchamianiu, czy jest wystarczająca ilość wolnego miejsca na dysku, i nie uruchamia się, jeśli nie ma co najmniej 2 GB wolnego miejsca.
- Rozwiązaliśmy problem, który uniemożliwiał renderowanie niektórych gier Unity.
- Rozwiązaliśmy problem z DNS, który uniemożliwiał emulatorowi połączenie się z siecią.
- Rozwiązaliśmy problem, który powodował, że zmiany w pamięci wewnętrznej przydzielonej do AVD za pomocą okna konfiguracji urządzenia wirtualnego nie działały.
- Rozwiązaliśmy problem polegający na tym, że tworzonych było wiele procesów adb, które nie były prawidłowo zamykane.
- Rozwiązaliśmy problem, który powodował, że przyciski obracania i inne elementy interfejsu przestawały reagować, gdy okno ustawień rozszerzonych było zamknięte.
- Rozwiązaliśmy problem, który powodował, że kopiowanie i wklejanie z hosta nie działało, dopóki okno rozszerzonych ustawień nie zostało otwarte co najmniej raz.
- Zaktualizowaliśmy prostokąt zmiany rozmiaru emulatora bez ramki, aby lepiej pasował do motywu wizualnego emulatora.
- Połączenia telefoniczne i SMS-y są teraz prawidłowo wyłączane, gdy tryb samolotowy jest włączony.
- Rozwiązaliśmy problem, który powodował wyłączenie funkcji SMS-ów i sieci komórkowej po wczytaniu zrzutu ekranu.
- 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ę położenia urządzenia wirtualnego z Androidem na niektórych ekranach Maca.
- Rozwiązaliśmy problemy z migotaniem i pustymi ekranami na nowszych komputerach MacBook Pro podczas uruchamiania urządzeń wirtualnych Androida ze skórkami Pixela 2 XL.
- Rozwiązaliśmy problemy z pustymi ekranami podczas przełączania się na tryb powiększenia, gdy aktywny był emulator bezramkowy.
- Rozwiązaliśmy problem, który powodował, że po powiększeniu skórka urządzenia i zawartość emulatora przewijały się niezsynchronizowane.
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 błędów:
- Po uruchomieniu emulatora jakość dźwięku Bluetooth uległa pogorszeniu. (problem 37095756)
- Lokalizacje wysyłane do jednego emulatora były wysyłane do wszystkich. (Problem 73450633)
- Lokalizacja GPS ustawiona za pomocą konsoli została zastąpiona wartościami ustawionymi za pomocą opcji Rozszerzone ustawienia > Lokalizacja w graficznym interfejsie użytkownika. (Problem 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ć Android Emulator do uruchamiania aplikacji rzeczywistości rozszerzonej utworzonych za pomocą ARCore. Szczegółowe wymagania i instrukcje znajdziesz w artykule Uruchamianie aplikacji AR w Android Emulator.
27.1.10 (luty 2018 r.)
Rozdzielczość obrazu z aparatu
Teraz można przechwytywać klatki w rozdzielczości 720p z podłączonej kamery internetowej.
Aby działać z obrazami systemowymi Androida 8.1 (interfejs API na poziomie 27) i nowszych, każda podłączona kamera internetowa musi mieć możliwość rejestrowania klatek w rozdzielczości 720p.
Poprawki
- Rozwiązaliśmy problem, który powodował, że obraz z kamery internetowej był czasami zniekształcony lub całkowicie zielony.
- Rozwiązaliśmy problem, który powodował, że nawet gdy nie było zawieszenia, mógł pojawiać się komunikat: „emulator: ERROR: detected a hanging thread 'Qt pętla zdarzeń'. No response for 15000 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 ramki:
Domyślnie emulatory z plikami skórek urządzeń są teraz wyświetlane bez otaczającej ramki okna. Aby wyświetlić otaczającą ramkę okna, włącz opcję Pokaż ramkę okna wokół urządzenia w panelu Ustawienia w oknie Rozszerzone ustawienia.
Ulepszenia funkcji Quick Boot, które zwiększają wydajność pracy z migawkami AVD:
- Możesz zapisać zrzut stanu AVD w dowolnym momencie, klikając przycisk Zapisz teraz w panelu Ustawienia w oknie Rozszerzone ustawienia.
- W wielu przypadkach emulator skraca czas zapisywania zrzutu, zapisując tylko różnicę między bieżącym stanem a poprzednio zapisanym zrzutem.
Szczegółowe informacje znajdziesz w dokumentacji Quick Boot.
Emulator został zaktualizowany i korzysta teraz z QEMU 2.9.
Oto niektóre z najważniejszych ulepszeń:
- Zoptymalizowane operacje we/wy i bardziej precyzyjne blokowanie wątków we/wy w celu zwiększenia wydajności.
- Naprawiono błędy 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 z OpenGL ES 3.0:
Mechanizm renderowania Swiftshader emulatora jest teraz w pełni zgodny z OpenGL ES 3.0. Szczegółowe informacje o renderowaniu 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, dopóki opcja Włącz udostępnianie schowka nie została wyłączona i ponownie włączona.
- Rozwiązaliśmy problem z zawieszaniem się podczas używania backendu renderowania Swiftshader z urządzeniami AVD o niskiej rozdzielczości.
27.0.5 (styczeń 2018 r.)
Mechanizm ANGLE do renderowania w systemie Windows jest teraz domyślnie wyłączony.
Jeśli ANGLE działa lepiej, możesz ponownie włączyć tę funkcję za pomocą flagi wiersza poleceń
-gpu angle_indirect. Możesz też otworzyć okno Rozszerzone ustawienia, kliknąć Ustawienia > Zaawansowane i wybrać ANGLE D3D11 w ustawieniu renderowania OpenGL ES.Rozwiązaliśmy problem, który powodował, że naciśnięcie Shift + B nie powodowało wpisania wielkiej litery B.
27.0.2 (grudzień 2017 r.)
Nowa funkcja Quick Boot umożliwia szybsze uruchamianie emulatora na podstawie zrzutu instancji AVD.
Funkcja Quick Boot jest domyślnie włączona na wszystkich urządzeniach AVD. Chociaż przy pierwszym uruchomieniu AVD musi wykonać zimny rozruch (podobnie jak przy włączaniu urządzenia), wszystkie kolejne uruchomienia są szybkie, a system jest przywracany do stanu, w którym emulator został zamknięty (podobnie jak przy wybudzaniu urządzenia).
Jeśli chcesz kontrolować, kiedy emulator zapisuje zrzut, otwórz okno rozszerzonych ustawień emulatora i kliknij Ustawienia. Możesz wybrać jedno z tych ustawień opcji Save quick boot state on exit (Zapisz stan szybkiego uruchamiania przy wyjściu):
- Tak: zawsze zapisuj zrzut Quick Boot po zamknięciu emulatora. Jest to ustawienie domyślne.
- Nie: nigdy nie zapisuj zrzutu szybkiego rozruchu; zawsze wykonuj zimny rozruch.
- Ask (Pytaj): wyświetla pytanie, czy zapisać zrzut Quick Boot po zamknięciu emulatora.
Wybrane ustawienia dotyczą tylko aktualnie otwartego urządzenia AVD.
Więcej informacji znajdziesz w dokumentacji Quick Boot.
Dodano obsługę OpenGL ES 3 na Macu (w przypadku obrazów systemowych korzystających z interfejsu API na poziomie 24 lub wyższym, interfejsów API Google i x86 ABI).
Aby zwiększyć stabilność aplikacji OpenGL ES 2+, emulator używa teraz profilu OpenGL Core, jeśli jest dostępny.
Nowe opcje renderowania za pomocą Swiftshader / ANGLE:
-gpu swiftshader_indirect: szybszy, bardziej stabilny wariant Swiftshader, który działa z funkcją Quick Boot.-gpu angle_indirect(tylko system Windows): bardziej stabilny wariant ANGLE D3D, który działa też z funkcją Quick Boot.
Starsze opcje
-gpu swiftshaderi-gpu anglesą teraz wycofane. W oknie Rozszerzone ustawienia opcje „SwiftShader” i „ANGLE” ustawienia renderowania OpenGL ES w sekcji Ustawienia > Zaawansowane używają teraz wariantów*_indirect.Naprawiono różne inne błędy.
26.1.4 (sierpień 2017 r.)
To jest wersja podrzędna z poprawkami błędów i tymi ulepszeniami konfiguracji GPU:
- Włącz animację uruchamiania podczas korzystania z mechanizmu renderowania ANGLE
- Wyłącz GLES3 podczas działania w renderowaniu ANGLE
26.1.3 (sierpień 2017 r.)
Jest to mniejsza wersja z poprawkami błędów, ulepszeniami wydajności i niewielkimi zmianami funkcji.
- Ta wersja jest teraz wymagana do korzystania z najnowszych obrazów systemu Android 8.0.
Są zgodne z projektem Treble i mają oddzielne partycje
vendor.img. - Dostępna jest już nowa wersja HAXM 6.2.0 (sprawdź SDK Manager), która zawiera te aktualizacje:
- Ulepszone wykorzystanie pamięci. Szczytowy zestaw roboczy pamięci przypiętej przez HAXM nie jest już równy rozmiarowi pamięci RAM urządzenia AVD. Zamiast tego pamięć jest stronicowana na żądanie. Powinno to pomóc w bardziej niezawodnym działaniu emulatora na komputerach z mniejszą ilością pamięci RAM.
- Emulator z HAXM 6.2.0 może teraz szybciej uruchamiać się w systemie macOS, pomijając długą fazę inicjowania.
- Ulepszenia konfiguracji GPU
- Rozwiązaliśmy problemy z czarnym ekranem podczas uruchamiania, gdy renderowanie oprogramowania po stronie gościa jest wykonywane przez powrót do renderowania oprogramowania po stronie hosta za pomocą Swiftshader. Najnowsze wersje obrazów systemowych dla interfejsów API na poziomach 19–25 z interfejsami API Google powinny mieć działające renderowanie po stronie gościa.
- Rozwiązaliśmy problem, który powodował, że emulator przełączał się na renderowanie programowe po wykryciu starszych procesorów graficznych Intel, mimo że emulator działał na oddzielnym procesorze graficznym. To, które GPU zostaną przełączone na renderowanie ANGLE lub Swiftshader, jest określane w następujący sposób:
- Starsze zintegrowane układy GPU firmy Intel mają problemy ze sterownikami OpenGL i ANGLE D3D. Użytkownicy z kartami Intel HD Graphics 3xxx i starszymi będą korzystać z Swiftshader.
- Niektórzy użytkownicy zgłaszali, że nie mogą używać obrazów na poziomie interfejsu API 25 z powodu błędu, który powoduje, że „Pixel Launcher ciągle się zatrzymuje”. Wygląda na to, że jest to problem ze sterownikiem w niektórych modelach Intel HD 4xxx. Dlatego zostaną automatycznie przełączone na ANGLE.
- Aby uzyskać najlepsze wyniki emulacji GPU, zalecamy użycie oddzielnego procesora graficznego NVIDIA lub AMD albo nowszego procesora graficznego Intel (Iris, HD 5xxx, HD 5xx/6xx).
- Rozwiązaliśmy problem, który powodował, że emulator nie uruchamiał się (nie udało się zainicjować emulacji OpenGL), jeśli urządzenie AVD było skonfigurowane z
hw.gpu.mode=host, a emulator został uruchomiony w kliencie pulpitu zdalnego. - Wyjaśniliśmy ustawienia „Poziom interfejsu API OpenGL ES (wymaga ponownego uruchomienia)”. Dodaliśmy opcję przejścia z OpenGL ES 3 na OpenGL ES 2 w przypadku problemów lub konieczności testowania na niższych poziomach interfejsu API OpenGL ES.
- Mechanizm renderowania Mesa został wycofany.
hw.gpu.mode=mesabędzie teraz automatycznie przełączać się na Swiftshader na hoście.
- Ulepszenia w systemie macOS:
- Emulator jest teraz w pełni zgodny z systemem macOS 10.13 High Sierra dzięki Hypervisor.Framework lub HAXM 6.2.0.
- Hypervisor.framework jest teraz domyślnie włączony w systemie macOS dla 32-bitowych obrazów x86, aby zwiększyć wydajność i zgodność z systemem macOS. Jeśli masz problemy z tym narzędziem, prześlij zgłoszenie błędu i dołącz
HVF = offdo~/.android/advancedFeatures.ini(utwórz ten plik, jeśli nie istnieje). - Rozwiązaliśmy problemy z brakiem internetu i błędem dołączania debugera podczas korzystania z Hypervisor.framework.
- Aby zwiększyć zgodność i wydajność przechwytywania obrazu z kamery internetowej, przechwytywanie obrazu z kamery oparte na QTKit zostało zastąpione buforowanym przechwytywaniem opartym na AVFoundation.
- Dodano obsługę Wi-Fi w niektórych obrazach systemu (obecnie tylko na poziomie interfejsu API 25).
Dostępny jest punkt dostępu o nazwie „AndroidWifi”, z którym Android automatycznie się łączy. Obsługę Wi-Fi można wyłączyć, uruchamiając emulator z parametrem wiersza poleceń
-feature -Wifi. - Niektórzy użytkownicy zgłaszali, że obrazy systemu Sklepu Play o stałym rozmiarze nie mają wystarczającej ilości miejsca na dane. Dlatego domyślnie zwiększyliśmy rozmiar do 2 GB (z 800 MB).
- Dodano skrót klawiszowy (Ctrl+Shift+U) umożliwiający otwarcie strony interfejsu zgłaszania błędów bezpośrednio ze strony ustawień.
- Rozwiązaliśmy problem, który powodował, że w przypadku użycia starszego procesora z Intel x86 EPT, ale bez UG, emulator nie uruchamiał się, jeśli skonfigurowano więcej niż 1 rdzeń.
- Rozwiązaliśmy problem polegający na tym, że HyperV był nieprawidłowo wykrywany, jeśli emulator był uruchomiony w hipernadzorcy Xen.
- Rozwiązaliśmy problem, który powodował, że emulator ulegał awarii podczas uruchamiania w niektórych konfiguracjach Linuksa.
26.1.2 (lipiec 2017 r.)
Ta wersja zawiera nowe funkcje i ulepszenia wydajności.
Dodano możliwość definiowania niestandardowej konfiguracji serwera proxy HTTP w rozszerzonych ustawieniach (kliknij Więcej
, a następnie 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, dzięki czemu można zdalnie wyświetlać emulator i nim sterować. Możesz na przykład uruchomić emulator i ustawić nasłuchiwanie portu 5901 przez VNC w ten sposób:
- Wykonaj:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1 Otwórz przeglądarkę VNC, np. TightVNC, aby połączyć się z portem 5901.
Aby używać wbudowanego klienta udostępniania ekranu na Macu, podczas uruchamiania emulatora wymagane jest hasło VNC. Aby ustawić hasło, użyj tego polecenia:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdioNastępnie wpisz
change vnc passwordw konsoli i podaj hasło.
Android O nie jest obecnie obsługiwany w trybie VNC.
- Wykonaj:
Dodaliśmy przycisk Zgłoś błąd na ekranie pomocy rozszerzonych ustawień (kliknij Więcej
, a następnie Pomoc i Pomoc dotycząca emulatora). Kliknięcie Zgłoś błąd otwiera okno, w którym możesz zobaczyć szczegóły zgłoszenia błędu, takie jak zrzut ekranu, informacje o konfiguracji AVD i dziennik zgłoszenia błędu. Możesz zapisać raport dla siebie lub zgłosić problemy z emulatorem.Dodano czujnik żyroskopowy do emulatora i panelu czujników wirtualnych. Wymaga to obrazu systemu z obsługą żyroskopu (obecnie interfejs API na poziomie 24 i 25).
Dodano preferowany przez hosta DNS do listy DNS Qemu w systemie Windows, gdy wiele wirtualnych interfejsów sieciowych na hoście wprowadza wiele adresów DNS, które nie działają w emulatorze.
Dodaliśmy eksperymentalną obsługę platformy Hypervisor.Framework w systemie macOS dla 32-bitowych obrazów x86 w systemie macOS 10.10 lub nowszym za pomocą flag serwera, co powinno skrócić czas uruchamiania i poprawić wydajność.
- Jeśli wystąpią problemy, dodaj wiersz
HVF = offw pliku~/.android/advancedFeatures.ini.
- Jeśli wystąpią problemy, dodaj wiersz
OpenGL ES 3.x jest teraz domyślnie włączony w przypadku obrazów systemowych i procesorów graficznych hosta, które obsługują OpenGL ES 3. Obecnie tylko Android O (poziom interfejsu API 26) oraz hosty z systemem Windows lub Linux obsługują OpenGL ES 3.
- Jeśli masz problemy z OpenGL ES 3, dodaj wiersz
GLESDynamicVersion = offw pliku~/.android/advancedFeatures.ini.
- Jeśli masz problemy z OpenGL ES 3, dodaj wiersz
Emulator używa teraz obiektów FBO OpenGL poza ekranem do renderowania wszystkich elementów z wyjątkiem ostatecznego wyświetlania obrazu, co powinno pomóc w rozwiązaniu problemów ze spójnością kolorów na różnych platformach.
Po zebraniu danych o problemach z nagłym spowolnieniem emulatora ustaliliśmy, że problem może być związany z interakcją między starszymi sterownikami Intel OpenGL a aktualizacjami systemu Windows. Dlatego użytkownicy z kartami Intel HD 4000, 3000, 2000 (i powiązanymi procesorami graficznymi) mają teraz domyślnie ustawione renderowanie na renderer D3D (ANGLE) lub Swiftshader (renderer oprogramowania).
26.0.0 (marzec 2017 r.)
Ta wersja jest zgodna z interfejsem API na poziomie 26. Zawiera też szereg ulepszeń wydajności i poprawek błędów.
Drobna zmiana 26.0.3 (maj 2017 r.)
- Dodaje flagi funkcji, które można aktualizować online, aby szybko rozwiązywać problemy wynikające z problemów z konfiguracją sprzętu. 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, abyśmy mogli je zbadać.
- Nowa obsługa pokrętła w obrazach systemu Android Wear na poziomie interfejsu API 25. Aby emulować pokrętło na urządzeniu Wear, w rozszerzonym oknie kliknij kartę Pokrętło.
- Rozmiar okna Zgłaszanie awarii można teraz zmieniać. Nie powoduje ono już resetowania ustawienia Kiedy wysyłać raporty o awariach do opcji Pytaj bez danych wejściowych.
- Emulator 32-bitowy wymaga teraz, aby maksymalny rozmiar pamięci RAM AVD był mniejszy lub równy 512 MB, aby zapobiec wyczerpaniu miejsca w 2-gigabajtowej wirtualnej przestrzeni adresowej.
- Dodaje obsługę ścieżek bezwzględnych w obrazach emulatora.
- Dodaje nową kartę w rozszerzonym oknie obrazów Sklepu Google Play, która wyświetla wersję Usług Google Play i przycisk umożliwiający sprawdzenie dostępności aktualizacji Usług Google Play.
- Dodaje menu do wyboru mechanizmu renderowania OpenGL na stronie ustawień emulatora. Jeśli masz 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ć renderera oprogramowania Swiftshader (wymaga ponownego uruchomienia).
- Naprawiliśmy rzadko występującą awarię podczas zamykania, gdy emulator otrzymuje polecenia
exitiminimize. - Rozwiązaliśmy problem ze skalowaniem podczas zmiany wyświetlaczy na komputerze Mac. (problem 268296)
- Naprawiliśmy błąd, który powodował, że emulator zużywał 300% mocy procesora i nie zwalniał jej po wybudzeniu komputera hosta z trybu uśpienia lub gdy emulator działał przez dłuższy czas.
- Naprawiliśmy błąd powodujący awarię podczas wyłączania emulatora.
Aktualizacje w HAXM w wersji 6.1.1 (marzec 2017 r.)
Uwaga: od 30 marca HAXM w wersji 6.1.1 jest dostępny dla użytkowników Maca w SDK Manager, a wkrótce będzie też dostępny 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). (Problem 223377)
- Rozwiązano problem ze współistnieniem z VirtualBox i Dockerem na komputerach Mac. (Problem 197915)
- Zmieniono komunikat o błędzie instalacji wyświetlany, gdy instalator nie wykryje Intel VT-x w systemie Windows, zwykle z powodu włączonej funkcji Hyper-V.
- Dodaliśmy obsługę przyspieszania emulatora Androida na maszynie wirtualnej z systemem Windows opartej na Hyper-V. Ta aktualizacja wymaga, aby instancja hosta Hyper-V (ta, która zarządza maszyną wirtualną z systemem Windows/gościem) korzystała z najnowszej wersji Hyper-V z włączoną wirtualizacją zagnieżdżoną. Funkcja Hyper-V musi być wyłączona w instancji gościa Hyper-V (maszynie wirtualnej z systemem Windows).
Zależności
- Android SDK Platform-Tools w wersji 25.0.4 lub nowszej.
- Android SDK Tools w wersji 26.0.0 lub nowszej.
Nowe funkcje i poprawki błędów
- Zgodność z interfejsem API na poziomie 26.
- Pełna zgodność ze standardem GLES 2.0. Jeśli procesor GPU hosta ma zgodne sterowniki OpenGL dla komputerów, emulator przechodzi teraz 100% testów z
mustpasslisty dEQP-GLES2 Android CTS. Ta funkcja została udostępniona w obrazach x86 na poziomie interfejsu API 24 (wersja 11 i nowsze) i wkrótce zostanie uwzględniona we wszystkich obrazach systemu. - Poprawiliśmy wydajność odtwarzania filmów. Emulator przechowuje teraz wszystkie buforu kolorów wideo w pamięci współdzielonej hosta/gościa i wykonuje niezbędną ostateczną konwersję YUV na RGB w GPU. Większość systemów powinna bez problemu obsługiwać rozdzielczość 1080p przy 30 klatkach na sekundę. Ta funkcja została udostępniona w obrazach x86 na poziomie interfejsu API 24 (wersja 11 i nowsze), a wkrótce będzie dostępna we wszystkich obrazach systemu.
- Emulator teraz prawidłowo wyrejestrowuje się z listy
adb devicespo zakończeniu działania i zamyka otwarte porty TCP na komputerach z systemem Linux. - Połączenia adb są teraz bardziej niezawodne. Uruchomiony emulator jest wykrywany szybciej i nie przechodzi już w stan „offline” ani „nieautoryzowany”.
25.3.0 (marzec 2017 r.)
Od tej wersji Android Emulator będzie wydawany oddzielnie od SDK Tools. Ta wersja zawiera różne ulepszenia wydajności, nowe funkcje i poprawki błędów.
Drobna zmiana 25.3.1 (marzec 2017 r.)
- Naprawiliśmy błąd powodujący awarię na niektórych konfiguracjach GPU, domyślnie wyłączając GLAsyncSwap.
Ta funkcja została dodana w wersji 25.3.0, aby poprawić czas renderowania klatek i liczbę klatek na sekundę w grach i filmach, ale powoduje błąd emulatora w przypadku niektórych nieznanych konfiguracji maszyn. Możesz włączyć go ręcznie, otwierając plik
android_sdk/emulator/lib/advancedFeatures.inii ustawiającGLAsyncSwap = on.
Zależności
- Narzędzia platformy Android SDK w wersji 24 lub nowszej.
- Android SDK Tools w wersji 25.3.0.
Nowe funkcje i poprawki błędów
- Zaktualizowano silnik emulacji do QEMU 2.7, w tym wszystkie najnowsze poprawki błędów, ulepszoną wydajność i nowe funkcje.
- Nowa obsługa protokołu IPv6.
- Emulator używa teraz SwiftShader jako czystego oprogramowania do renderowania na hoście.
- Ulepszenia wydajności Android Pipe: Android Pipe, główny kanał komunikacji między emulatorem a systemem operacyjnym Android, jest teraz znacznie szybszy, ma mniejsze opóźnienia i oferuje lepszą wydajność wielowątkową. Dzięki temu emulator działa znacznie wydajniej, m.in.:
- Zwiększyliśmy szybkość przesyłania i pobierania danych przez ADB.
- Lepsza obsługa akceleracji 3D.
- Zwiększyliśmy ogólną szybkość działania emulatora.
- Poprawiona wydajność grafiki.
- Emulator używa teraz buforów po stronie GPU (glBindBuffers / glBufferData), gdy żąda ich system gościa, co zmniejsza obciążenie procesora w niektórych aplikacjach.
- Ulepszona obsługa dźwięku.
- Szybsze operacje wejścia/wyjścia na dysku: emulator używa teraz oddzielnych wątków do wysyłania operacji wejścia/wyjścia na dysku, co skutkuje mniejszymi opóźnieniami i lepszą przepustowością (ok. 1,5 raza większa szybkość sekwencyjnych operacji wejścia/wyjścia, ok. 5 razy większa szybkość operacji wejścia/wyjścia z dostępem swobodnym). Zmniejsza to również liczbę operacji zapisu na dysku, co znacznie obniża obciążenie urządzenia fizycznego.
- Emulator używa teraz plików rozproszonych do uruchamiania dysku na komputerach z systemem Windows, co przyspiesza zarówno pierwsze uruchomienie, jak i uruchomienie po wyczyszczeniu danych. Podczas tworzenia lub resetowania AVD emulator zapisuje teraz na dysku 100–200 MB danych zamiast co najmniej 2 GB.
- Różne ulepszenia GUI:
- Emulator używa teraz Qt 5.7.0, co obejmuje poprawki błędów i ulepszenia wydajności.
- Inicjowanie interfejsu nie próbuje już wczytywać wszystkich plików wykonywalnych emulatora jako wtyczek Qt, dzięki czemu trwa znacznie krócej, zwłaszcza na dyskach twardych.
- Interakcje z interfejsem są teraz szybsze i płynniejsze, w tym obracanie, zmiana rozmiaru okna oraz wczytywanie i zamykanie okna rozszerzonych elementów sterujących.
OpenXR™ i logo OpenXR są znakami towarowymi należącymi do firmy The Khronos Group Inc. i są zarejestrowane jako znaki towarowe w Chinach, Japonii, Unii Europejskiej i Wielkiej Brytanii.