Emulator Androida jest dołączony do Android Studio.
Wersje emulatora starsze niż 25.3.0 były rozpowszechniane jako część narzędzi Android SDK.
Aby upewnić się, że masz najnowszą wersję, sprawdź dostępność aktualizacji w Menedżerze pakietów SDK.
Poprzednie wersje emulatora Androida możesz pobrać z archiwum pobierania emulatora.
Informacje o wersjach emulatora starszych niż 25.3.0 znajdziesz w informacjach o wersji narzędzi pakietu Android SDK.
Aby sprawdzić, jakie problemy zostały rozwiązane w najnowszych wersjach emulatora Androida, zobacz zamknięte problemy.
Znane problemy i rozwiązania znajdziesz w artykule Rozwiązywanie problemów z emulatorem.
35.6.11 Stable (24 czerwca 2025 r.)
Ulepszyliśmy obsługę kart graficznych AMD i Nvidia w systemach Windows i Linux w przypadku emulacji XR.
Wirtualne urządzenie 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 pamięci emulatora
Poprawka błędu Emulator Androida XR ulega awarii z błędem Vulkan
Poprawka błędu: biblioteka libndk_translation.so przerywa działanie i powoduje awarię funkcji Arm64AesEncode
35.5.10 Stable (6 maja 2025 r.)
Dodano dodatkowe testy zgodności procesora z komunikatami o błędach (np. za mało miejsca na dysku).
Naprawiono błędy związane z zarządzaniem pamięcią Vulkan i nieprawidłowymi przypadkami użycia.
Obsługa migawek Vulkan jest prawidłowo sprawdzana i pomijana podczas uruchamiania w terminalu.
Dodano obsługę rozszerzenia VK_KHR_multiview i formatu tekstury A1R5G5B5.
Dodano AVD Pixela 9a
35.4.9 Stable (25 lutego 2025 r.)
Dodano menu w ustawieniach rozszerzonych preferencji sterownika GLES gościa
[Poprawka]Problem nr 389330750: wysyłanie SMS-a do emulatora ze znakiem Ñ powoduje podzielenie wiadomości
[Poprawka]Problem nr 382180488 Funkcja „emuglConfig_get_vulkan_hardware_gpu_support_info” ulega awarii z powodu wykrycia zera urządzeń Vulkan
Uwaga: emulatory Androida XR są dostępne tylko w wersjach Canary Studio.
35.3.11 Stable (9 stycznia 2025 r.)
[Poprawka]Problem nr 368059211 Programowy dostęp do VHAL w Androidzie Auto OS nie działa przy użyciu interfejsu Car Service API
[Poprawka]Problem nr 348598513: emulator ma niepotrzebną, niezabezpieczoną wątkowo metodę publiczną w wielowątkowej blokadzie
[Poprawka]Problem nr 356896486: całkowite wyłączenie wywołań interfejsu Vulkan API podczas uruchamiania z opcją -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 zbudowanych za pomocą pakietu Jetpack XR SDK na gogle. Więcej informacji o instalowaniu emulatora Androida XR i konfigurowaniu środowiska programistycznego znajdziesz w artykule Konfigurowanie pakietu Jetpack XR SDK.
Emulator Androida XR to narzędzie eksperymentalne. Postanowiliśmy 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 procesorów graficznych i sterowników w systemie Windows. Mogą też wystąpić problemy związane z testowaniem zgodności istniejących aplikacji mobilnych 2D. Twoja opinia pomoże nam ulepszać funkcje i ustalać priorytety w przyszłości.
Emulator Androida XR został do tej pory przetestowany na tych konfiguracjach sprzętowych:
- Mac (ARM)
- Windows 11
- GPU nVidia, 4 GB pamięci VRAM, sterownik w wersji 553.35 lub nowszej
- co najmniej 16 GB pamięci RAM,
- 8 rdzeni lub więcej
Znane problemy
Emulator – stabilność i wydajność:
- W przypadku niektórych konfiguracji systemu Windows mogą wystąpić krytyczne blokady systemu lub awarie podczas uruchamiania lub działania aplikacji. Sprawdź, czy platforma Windows Hypervisor (WHPX) jest włączona. W tym celu postępuj 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 wstrzymania i wznowienia (np. zamknięciu i otwarciu laptopa).
- Sporadyczne awarie podczas przełączania aplikacji z „trybu ekranu głównego” na „tryb pełnoekranowy”.
- Interfejsy Gemini API nie są jeszcze dostępne. Aplikacja z szablonem startowym Gemini API ulegnie awarii.
Emulator – symulowanie wejścia i wyjścia:
- Wirtualna klawiatura do wyszukiwania i edytowania pól 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 z niego) za pomocą myszy i klawiatury.
Niestabilność wejściowego sygnału audio hosta mikrofonu AVD może powodować ponowne uruchamianie i awarie AVD.
Dźwięk jest czasami zniekształcony lub słychać w nim szumy.
Gdy kamera zostanie przeniesiona poza wirtualny salon, widoczne będą błędy renderowania.
Konfiguracje Windows wyświetlają ciemniejsze niż zwykle kolory.
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 komputer hosta zmieni sieć Wi-Fi.
Gdy Caps Lock jest włączony, nadal można wpisywać małe litery.
Przewijanie za pomocą trackpada na Macu nie jest płynne.
Przewijanie za pomocą kliknięcia i przeciągnięcia w przypadku niektórych elementów interfejsu może nie działać zgodnie z założeniami. Jeśli nie, użyj kółka myszy, aby przewijać.
Rozmyty tekst, interfejs i inne problemy w Chrome na niektórych konfiguracjach systemu Windows. Prawdopodobne obejście: włączenie WHP.
Emulator – symulowanie samolotów i kotwic:
- Kotwice czasami nie pojawiają się ponownie w pobliżu tej samej lokalizacji
- Przesuwane panele nie mogą być przymocowane do ścian ani sufitu.
- Symulowane płaszczyzny nie pasują do fizycznego układu pomieszczenia 3D w trybie przekazywania
- Ogólne ograniczone obszary, w których można umieszczać obiekty w wirtualnym pokoju
- Mały widoczny artefakt w widoku otoczenia w systemie Windows
- W niektórych przypadkach umieszczanie kotwic może powodować awarię aplikacji.
- Podczas przesuwania aplikacji blisko podłoża w systemie Windows mogą pojawiać się czarne linie
Emulator – inne:
- Emulator uruchamia się tylko w trybie „autonomicznym”. Tryb „Umieszczony” (umieszczony interfejs) nie jest jeszcze obsługiwany.
- Logowanie się za pomocą kont na emulatorze w systemie Windows może spowodować, że emulator przestanie odpowiadać.
- Po zmianie rozmiaru okien może zniknąć zawartość interfejsu (obejście: naciśnij przycisk „Home”).
- W aplikacji JXRCore ActivityPanelTest App 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 jest, nieznacznie zmień rozmiar okna emulatora, a powinno ono wrócić na swoje miejsce.
- Emulator może się nie uruchamiać, gdy używasz Pulpitu zdalnego Chrome w systemie Windows
- OpenXR nie jest jeszcze obsługiwany w emulatorze, a aplikacje OpenXR mogą powodować jego awarię.
- Rzadkie błędy podczas przesyłania raportów o błędach za pomocą rozszerzonych ustawień Androida Studio w systemie Windows
- Ikona „Wracanie” nie jest prawidłowo widoczna w aplikacji Ustawienia, dopóki kursor nie znajdzie się w jej pobliżu na komputerze Mac
- W niektórych przypadkach kompilacja może się nie powieść, gdy moduł „Baseline Profile” jest używany w projekcie szablonu XR.
- Ułatwienia dostępu „XR Talkback” są na razie tylko częściowo zintegrowane z emulatorem.
Aplikacja Scene Viewer:
- Przesuwanie elementów w przeglądarce scen może spowodować jej awarię. Aby obejść ten problem, przed próbą przesunięcia elementu lekko zmień położenie głowy (np. za pomocą funkcji panoramowania, wózka, 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ż minimalne i maksymalne limity skali (obecnie ustawione odpowiednio na 20 cm i 70 m).
- Model 3D może przeskoczyć do pierwszej klatki po załadowaniu.
35.2.10 (1 października 2024 r.)
- Dodano nowe wirtualne urządzenia Pixel, w tym Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL i Pixel 9 Pro Fold
- Dodano nowy obraz systemu na tablety dla wersji Vanilla Ice Cream (API 35)
35.1.20 (29 sierpnia 2024 r.)
- Dodano AVD Pixela 8a
- Różne poprawki błędów na urządzeniach składanych
- Aktualizacja Qt i poprawki błędów związanych z awariami i zawieszaniem się Qt
- [Poprawka] Rozwiązanie problemu z awariami i zawieszaniem się aplikacji korzystających z interfejsu Vulkan w systemie Windows
34.2.16 (9 lipca 2024 r.)
- [Poprawka] Zawieszanie się interfejsu na Pixelu Fold podczas składania i rozkładania
- [Poprawka] Nieprawidłowe wyświetlanie wersji Androida jako Android Vanilla Ice Cream Preview zamiast API 35 na komputerze Mac z procesorem M1.
- [Poprawka] Problem nr 296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE zwraca wartość „true” na emulatorze tabletu Pixel C
34.2.15 (31 maja 2024 r.)
- Różne poprawki błędów związanych z trybem swangle i czyszczeniem reklamodawcy
34.2.14 (20 maja 2024 r.)
Testowane w Android Studio Jellyfish Stable Patch 1.
- [Poprawka] Zrzut czasami zawiesza się w emulowanym urządzeniu
- [Poprawka] Przyciski „Nie” i „Anuluj” nie działają prawidłowo w przypadku migawki
- [Poprawka] Przyciski pada kierunkowego nie działają
- [Poprawka] Rozwiązaliśmy problem występujący w systemie Windows, który w pewnych warunkach uniemożliwiał uruchomienie emulatora podczas korzystania z trybów GPU z ANGLE i powodował wyświetlanie w logu komunikatu o błędzie „Failed to initialize GL emulation” (Nie udało się zainicjować emulacji GL). Pamiętaj, że uruchomienie emulatora z wiersza polecenia z opcją
-gpu swangle_indirect
moż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 za pomocą oprogramowania w tej wersji, użyj-gpu swiftshader_indirect
- [Poprawka] Skrót do lokalizacji na klawiaturze wczytuje bezużyteczną mapę
- [Poprawka] Podczas ustawiania lokalizacji brakuje okna „Zapisz trasę”
34.2.13 (30 kwietnia 2024 r.)
Testowane w stabilnej wersji Androida Studio Jellyfish.
- Aktualizacja do Qt 6.5.3
- Zgodność z aktualizacjami interfejsu Google Maps API używanymi w funkcjach lokalizacji w ustawieniach zaawansowanych emulatora, które zostaną wprowadzone pod koniec maja.
- Poprawki dotyczące poważnych awarii
- Różne poprawki dotyczące wirtualnych urządzeń z Pixelem
- Aktualizowanie biblioteki graficznej używanej do renderowania oprogramowania
- [Poprawka]Problem 225541819: uruchamianie Chrome powoduje awarię emulatora na platformie x86_64
- [Poprawka]Problem 314614435
-http-proxy
przełącznik jest nieprawidłowo analizowany
34.1.20 (1 kwietnia 2024 r.)
Testowane w stabilnej wersji Androida Studio Iguana.
- [Poprawka] Problem nr 314614435: rozwiązaliśmy problem z nieprawidłową analizą przełącznika
-http-proxy
.
34.1.19 (7 marca 2024 r.)
Testowane w stabilnej wersji Androida Studio Iguana.
- [Poprawka] Problem nr 312677259: rozwiązano problem z zawieszaniem się ekranu w osadzonym emulatorze po zmianie rozmiaru okna.
34.1.18 (29 lutego 2024 r.)
Testowane w stabilnej wersji Androida 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 dla testów z instrumentacją uruchamianych w emulatorze, co umożliwia testowanie realistycznych scenariuszy. Ta funkcja umożliwia deweloperom bezpieczne korzystanie z punktu końcowego gRPC hostowanego przez emulator Androida w ramach testów instrumentacji Androida.
- Poprawki różnych błędów.
- Poprawka: ulepszenia w zakresie obsługi urządzeń składanych
- Poprawka błędu: dostosowywanie pozycji emulatora po obróceniu
- Poprawki awarii
33.1.24 (28 grudnia 2023 r.)
Testowane w Android Studio Hedgehog Stable i Iguana Beta 1.
- Rozwiązanie problemu z kamerą internetową w emulatorze, który uniemożliwiał nagrywanie ekranu w formacie MP4.
- Rozwiązanie problemu z awarią emulatora na wirtualnym urządzeniu Pixel Fold po rozłożeniu podczas nagrywania ekranu.
- Rozwiązanie problemu polegającego na tym, że Pixel Fold wyświetlał inną skórkę telefonu z odłączoną klawiaturą i nie można było go używać (problem rozwiązany w systemach Windows, Mac Intel i Linux).
- Rozwiązanie problemu z wyglądem wirtualnych czujników w trybie samodzielnym (dotyczy systemów Windows, Mac Intel i Linux)
- Naprawiono niektóre awarie, zwłaszcza podczas zamykania emulatora.
33.1.23 (30 listopada 2023 r.)
Testowane w Android Studio Giraffe Patch 4 i Hedgehog Stable.
- Nowa implementacja urządzenia składanego, która lepiej emuluje urządzenie Pixel Fold i działa z najnowszym interfejsem API 34.
- Ulepszenie backendu graficznego: wdrożyliśmy protokół gfxstream w naszym backendzie graficznym. To ulepszenie zwiększa ogólną wydajność i stabilność grafiki w systemie. Dodaliśmy też obsługę interfejsu Vulkan 1.3, począwszy od obrazu systemu z API 34.
- Prośba o dodanie funkcji: możliwość wyłączenia gestu szczypania w celu powiększenia lub ponownego przypisania jego skrótu
- [Poprawka] Problem nr 302562962 Naprawiono awarię kamery internetowej emulatora podczas korzystania z systemu macOS Sonoma
- [Poprawka] Problem nr 293503871 Rozwiązaliśmy problem polegający na tym, że ustawienie „Mikrofon” nie było zapisywane po ponownym uruchomieniu emulatora.
- [Poprawka] Problem nr 270386314 Rozwiązanie błędu animacji, który powodował, że po zminimalizowaniu ekranu AVD pasek boczny pozostawał otwarty.
- [Poprawka błędu] Problem nr 154896775 Naprawiono narzędzie do przesyłania błędów
32.1.15 (29 sierpnia 2023 r.)
Testowane w Android Studio Giraffe Patch 1 i Hedgehog Canary 16.
- Spełnianie wymagań GAS HW dotyczących czujników w emulatorze AAE
- [Poprawka] Problem nr 266201208: wiadomości SMS w języku hebrajskim nie są wysyłane w przypadku interfejsu API 33
- [Poprawka] Problem nr 257097404: emulator nie wyświetla prawidłowego czasu po wybudzeniu hosta w przypadku interfejsów API 29 i 30
- [Poprawka] Problem nr 228201899 Nie można wyświetlić Map Google w rozszerzonych elementach sterujących emulatora Androida
32.1.14 (27 czerwca 2023 r.)
Testowano w Android Studio Hedgehog Canary 8, Giraffe Beta 5 i Flamingo Stable.
- Naprawianie orientacji i zniekształceń kamery w emulatorze.
- [Poprawka] Problem nr 257097404: „Emulator nie wyświetla prawidłowego czasu po wybudzeniu hosta”. Ten błąd nadal występuje w przypadku interfejsów API 29 i 30.
- [Poprawka] Problem 243456582: „Wersje Androida po API 30 mogą nie uruchamiać się prawidłowo w emulatorze na komputerach Mac z procesorem M1”.
32.1.13 (22 maja 2023 r.)
Testowane w Android Studio Hedgehog Canary 2, Giraffe Beta 1 i Flamingo Stable.
- Dodano obsługę wirtualnych urządzeń Pixel Fold i Pixel Tablet.
- Poprawiono problem z awarią gLinux.
- [Poprawka] Problem nr 215231636 „Emulator z interfejsem API powyżej API 30 nie działa na procesorze Intel 12. generacji”.
- [Poprawka] Problem nr 275397905: wysoki poziom awaryjności na emulatorze Androida M1 podczas wielokrotnego przenoszenia fokusu kursora do i z emulatora.
- 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.)
Testowane w Android Studio Giraffe Canary 10, Flamingo RC i Electric Eel Patch 2.
- [Poprawka] Problem 267647323: sieć nie działa na emulatorze uruchomionym z Android Studio
- [Poprawka] Problem nr 268498686: ekran emulatora migocze
- [Poprawka] Problem nr 270034824: po aktualizacji do wersji 33.1.1 wydajność emulatora uległa pogorszeniu
- [Bug Fix] Problem #225541819 Uruchamianie Chrome powoduje awarię emulatora na platformie x86_64
- [Poprawka] Problem nr 257097404: emulator nie wyświetla prawidłowego czasu po wybudzeniu hosta
- Dodawanie raportowania awarii na urządzeniach Apple M1
32.1.11 (8 lutego 2023 r.)
Testowane w Android Studio Giraffe Canary 2, Flamingo Beta 1 i Electric Eel Patch 1.
- Optymalizacja szybkości sieci
- Obsługa myszy w emulowanym urządzeniu
- Ulepszenia Virtio-snd
- Wyłącz używanie linków symbolicznych podczas rozpakowywania emulatora Androida w trakcie instalacji.
- Naprawianie awarii w emulator-check
31.3.14 (13 grudnia 2022 r.)
Testowane w Android Studio Dolphin, Electric Eel RC1 i Flamingo Canary 9.
- [Poprawka] Naprawiono awarie AVD, które występowały podczas logowania się w Sklepie Play.
31.3.13 (27 października 2022 r.)
Testowane w Android Studio Dolphin, Electric Eel Beta 2 i Flamingo Canary 5.
- [Poprawka] Problem nr 249948338: parametr strefy czasowej nie działa
- [Poprawka] Problem nr 249366543: opcja emulatora -dns-server nie działa po API 31
31.3.12 (10 października 2022 r.)
Testowane w Android Studio Dolphin i Electric Eel Beta 1.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- [Poprawka] Problem nr 247843000: błąd obsługi ścieżki względnej AVD
- Zwiększanie rozmiaru dysku w przypadku interfejsu API w wersji 24 lub nowszej
31.3.11 (23 września 2022 r.)
Testowane w Android Studio Dolphin i Electric Eel Canary 10.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- [Poprawka] Awaria wbudowanego emulatora AVD w oknie rozszerzonych elementów sterujących
- [Poprawka] Problem 183139207: problemy z dźwiękiem związane z aktywacją mikrofonu przez emulator
- [Poprawka] Problem nr 229764024: błąd „przyklejonego” dotyku w AVD, który powoduje problemy z działaniem interfejsu
- [Poprawka] Błąd podczas uruchamiania AVD z API 33 na komputerze Mac z procesorem M1.
- [Poprawka] Problem nr 243053479: niska prędkość sieci po aktualizacji emulatora
- [Poprawka] Problem nr 244617627: niedziałająca lokalizacja w Mapach w systemach Windows i Linux
- [Poprawka] Problem nr 232971796: niedziałający przycisk „Zadzwoń na urządzenie” na stronie Elementy sterujące > Telefon
- Aktualizowanie emulatora Androida do minigbm
- Migracja skryptów kompilacji do języka Python 3
31.3.10 (18 sierpnia 2022 r.)
Testowane w Android Studio Dolphin Beta 5 i Electric Eel Canary 9.
Dostępne są już samodzielne wersje emulatora do pobrania. Jeśli masz problemy lub awarie związane z tą najnowszą stabilną wersją, zgłoś błąd i rozważ pobranie działającej wcześniej wersji z archiwum pobierania emulatora.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Lepsza obsługa ścieżek Unicode w systemie Windows
- Ulepszona obsługa zamykania emulatora, dzięki czemu ponowne uruchomienie tego samego AVD może się powieść.
- Zaktualizowany projekt składanego urządzenia AVD i ustawienia domyślne
- Zaktualizowane przyciski emulatora Wear
- Ulepszenia strumieniowego przesyłania dźwięku gRPC
- Dodano polecenie konsoli emulatora z możliwością zmiany rozmiaru
- Poprawka Chrome dla interfejsu API 31
- [Poprawka] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18
31.2.10 (20 kwietnia 2022 r.)
Testowane w Android Studio Dolphin Canary 8 i Chipmunk RC 1.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodaj narzędzie do wczytywania funkcji Vulkan z wersjami zapasowymi
- [Bug Fix] Fix gcc8 build error
31.2.9 (23 marca 2022 r.)
Testowane w Android Studio Dolphin Canary 7.
Ta aktualizacja zawiera następującą poprawkę:
- [Poprawka] Ignorowanie obciążenia pamięci podczas zapisywania zrzutu na urządzeniu z procesorem M1
31.2.8 (7 lutego 2022 r.)
Testowane w Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- [Poprawka] Nie można zalogować się w aplikacjach
- [Poprawka] Problem 215368358: „adb reboot” na platformie Intel powoduje awarię AVD z komunikatem „vcpu shutdown request”
31.2.7 (1 lutego 2022 r.)
Testowane w Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.
Ta aktualizacja zawiera następującą poprawkę:
- [Poprawka] Błąd zawieszania się emulatora na urządzeniach z procesorem M1.
31.2.6 (20 stycznia 2022 r.)
Testowane w Android Studio Arctic Fox, Bumblebee Beta 4 i Chipmunk Canary 6.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodano przyciski zegarka do emulatora Wear OS.
- Umożliwiliśmy edytowanie wszystkich właściwości pojazdu na karcie VHAL.
- [Bug Fix] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18.
- [Poprawka] Netshaper nie działał prawidłowo z VirtioWifi.
- [Poprawka] Polecenie konsoli myszy zdarzenia nie działało.
- Dodano sprawdzanie KVM podczas tworzenia lokalnego AVD.
31.1.3 (18 stycznia 2022 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Włączono porty konsoli dla Fuksji.
- Podczas zmiany rozmiaru okna na wielu monitorach orientacja jest ignorowana.
- Wi-Fi: dodano obsługę filtrowania pakietów typu unicast na podstawie adresu MAC MAT.
- Wi-Fi: rozwiązaliśmy problem z awarią podczas korzystania z vmnet.
30.9.5 (15 grudnia 2021 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodano możliwość łatwego zmiany rozmiaru okna na rozmiar okna na komputerze lub tablecie.
- Dodaliśmy obsługę wielodotykowego wprowadzania danych z kompatybilnych urządzeń hosta.
- VirtioWifi: dodano obsługę sieci tap.
- Włączono wprowadzanie obrotowe w przypadku obrazów systemowych Wear.
- Rozwiązaliśmy problem z konfiguracją dźwięku gRPC.
- Zaktualizowano odtwarzanie w emulatorze SensorReplay, aby obsługiwało standardowe czujniki Androida.
- Połączono emulator z urządzeniami peryferyjnymi za pomocą USB z przekazywaniem przez USB.
30.4.5 (23 lutego 2021 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- macOS: rozwiązano problemy z zniekształceniem dźwięku wejściowego.
- Dodano 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.
- Przyspieszenie renderowania za pomocą interfejsu Vulkan.
- Dodaliśmy obsługę debugowania zrzutów w przypadku niepowodzenia testu.
- virtio-gpu: zaktualizowane definicje obsługujące najnowsze wyliczenia zasobów blob.
- Dodaliśmy obsługę zrzutów w przypadku transportów graficznych typu „asg”.
- macOS: dodaliśmy obsługę kompilacji z użyciem pakietu SDK macOS 11.1 lub nowszego.
- KVMclock jest domyślnie włączony w nowszych obrazach systemu.
- Dodano obsługę czujnika tętna w emulatorach Wear.
- Usunięto 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 zawiasu w przypadku urządzeń 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 dotychczasowymi ustawieniami wstępnymi dotyczącymi urządzeń składanych. Poniższe polecenie można na przykład zastosować w przypadku pliku
config.ini
7,3-calowego składanego AVD:hw.sensor.hinge = yes hw.sensor.hinge.count = 1 hw.sensor.hinge.type = 1 hw.sensor.hinge.ranges = 180-360 hw.sensor.hinge.defaults = 180 hw.sensor.hinge.areas = 54.7-0 hw.sensor.posture_list=4, 3 hw.sensor.hinge_angles_posture_definitions=210-360, 180-210 hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
Urządzenia składane mają teraz też parametr podtypu. Właściwość
config.ini
hw.sensor.hinge.sub_type = hinge/fold
jest już dostępna. Więcej informacji znajdziesz w poście 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. Na obecnych urządzeniach składanych będzie teraz aktualizowany kąt czujnika zawiasu i pozycja po naciśnięciu przycisków składania lub rozkładania paska narzędzi.
Emulator dla hostów ARM64
Kod źródłowy emulatora Linuksa obsługuje teraz kompilację krzyżową z x86_64 na hosty arm64, co umożliwia uruchamianie obrazów systemu arm64 z wirtualizacją KVM. Obecnie obsługiwane jest tylko
-gpu swiftshader_indirect
(renderowanie na hoście Swiftshader arm64), ale można też użyć zgodnego zestawu bibliotek libEGL/libGLESv2 GPU hosta, zastępując nimi lib64/gles_swiftshader, a następnie ponownie uruchamiając z parametrem-gpu swiftshader_indirect
. Migawki mogą też nie działać (dodaj-no-snapshot
do wiersza poleceń). Instrukcje:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Pracujemy nad obsługą układów Apple Silicon.
obsługa virtio-gpu,
- Dodaliśmy obsługę po stronie hosta dla nadchodzących spójnych zasobów blob hosta virtio-gpu.
- Ze względu na sposób działania renderowania w emulatorze przetwarzamy teraz kolejkę wirtualną virtio-gpu w wątku vcpu (ponieważ renderowanie jest i tak 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 za pomocą stosu opartego na virtio-gpu.
Inne nowe funkcje i ulepszenia
- Przekazywanie USB jest teraz dostępne w systemie Windows za pomocą
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
. (Powinno to już działać w systemach Linux i macOS). - Zaktualizowaliśmy biblioteki WebRTC do wersji M83.
- Emulator obsługuje teraz strumieniowe przesyłanie dźwięku w kontenerach za pomocą WebRTC.
- Punkt końcowy potoku darwinn został usunięty.
- Dekodowanie CUDA VPx wideo jest teraz 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 Android.
- W systemie macOS funkcja INVTSC jest teraz domyślnie włączona. Może to zwiększyć dokładność pomiarów czasu dokonywanych przez gościa.
- W danych śledzimy teraz, który panel sterowania został wybrany przez użytkownika.
- Emulator Linuxa używa teraz zegara parawirtualizowanego KVM, gdy wersja jądra gościa jest >= 5.4 (obrazy systemu R lub nowsze).
- Emulator używa teraz algorytmu LZ4 do dekompresji jąder gości, 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 oraz ścieżki do migawek:
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 globalnie ukryć ramki urządzeń na wszystkich AVD, udostępniliśmy flagę funkcji
NoDeviceFrame
, którą można aktywować, uruchamiając emulator z wiersza poleceń za pomocą polecenia-feature NoDevice
frame lub dodającNoDeviceFrame = on
do~/.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 pomiaru danych. W przypadku starszych obrazów systemu, które nie obsługują przełącznika pomiaru danych 5G, ta funkcja nie działa.
- Dodano też polecenie konsoli do tego samego celu:
gsm meter on|off
- Dodano też polecenie konsoli do tego samego celu:
Uaktualniono łańcuch narzędzi / kompilację do C++17.
Poprawki: wbudowany emulator
- Schowek powinien teraz działać.
- Rozwiązaliśmy problem polegający na tym, że w emulatorze wielkie litery były wyświetlane jako małe.
- Naprawiono problem z wczytywaniem tokena konsoli ze ścieżki Unicode w systemie Windows.
- Naprawiliśmy komunikat o błędzie
SO_REUSEPORT
w systemie Linux. - Rozwiązaliśmy problem z uszkodzeniem migawki podczas wysyłania poleceń migawki przez gRPC, a także podczas naciskania przycisku zapisywania migawki w emulowanym emulatorze Android Studio.
Podczas korzystania z emulatora Linuxa wbudowanego w Studio zauważyliśmy, że jeśli ta czynność jest wykonywana za pomocą Pulpitu zdalnego Chrome, występuje błąd, w którym zmienna
XDG_RUNTIME_DIR
nie jest ustawiona, co może spowodować, że wbudowany emulator nie będzie się wyświetlać, ponieważ pliki wykrywania emulatora są umieszczane w folderzeXDG_RUNTIME_DIR
. Możesz sprawdzić stan odpowiedniego problemu w narzędziu do śledzenia problemów z Chrome.Aby obejść ten problem, emulator wraca do używania plików wykrywania w prawdopodobnie innym katalogu, który jest oparty na identyfikatorze UID użytkownika:
/run/user/<uid>
.Wbudowany emulator: urządzenia z zaokrąglonymi narożnikami lub wycięciami będą teraz prawidłowo zmieniać układ, aby uwzględnić narożniki 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 korzystania z emulatora systemu Windows z aktywnym Riot Vanguard. Emulator Windowsa wykrywa teraz system zapobiegający oszustwom Vanguard i wyświetla komunikat ostrzegawczy, jeśli go wykryje.
- Usunęliśmy błąd
FD_SETSIZE
w systemie Windows. Do nawiązywania nieblokujących połączeń z serwerami zwrotnymi 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ą tłumaczenia NDK. Trwają prace nad obsługą systemów macOS i Windows.
- Poprawiono odtwarzanie trasy GPX/KML, aby było zgodne z sygnaturami czasowymi.
- Naprawiliśmy problem z podskakującą ikoną podczas uruchamiania w systemie macOS.
- Jeśli
hw.audioInput=no
ihw.audioOutput=no
wconfig.ini
, emulator dźwięku jest teraz prawidłowo wyłączony. - Rozwiązaliśmy problem polegający na tym, że jeśli okno emulatora było zminimalizowane, a okno sterowania rozszerzonego było otwarte, ale nieaktywne, okno sterowania rozszerzonego nadal pojawiało się podczas zmiany rozmiaru okna emulatora. W przyszłej aktualizacji całkowicie usuniemy to zachowanie (w przypadku aktywnego okna rozszerzonych elementów sterujących).
- Rozwiązanie problemu z niestabilnym połączeniem Wi-Fi podczas uruchamiania emulatora.
- Rozwiązanie problemu z zawieszaniem się przy zamykaniu, gdy emulator wydaje polecenia powłoki z długimi lub nieokreślonymi limitami czasu.
- Zaktualizowany pc-bios z poprawkami, które lepiej obsługują duże obrazy przekazywane do
-initrd
; poprzedni BIOS używał bardzo nieefektywnej metody. - Rozwiązaliśmy problem z awarią podczas zamykania aplikacji, gdy używana jest opcja
-wifi-server-port
. - Emulator wyświetla teraz ostrzeżenie, jeśli do funkcji
-prop
przekazywane są nieobsługiwane opcje (obsługiwane są tylko właściwości qemu.*). - Podczas kompilowania emulatora w systemie Windows powinno być mniej przypadków nieudanych prób zapisu w plikach. Więcej informacji znajdziesz w instrukcjach dotyczących kompilacji systemu Windows.
- Wyłączyliśmy przycisk powiększania na składanych urządzeniach AVD, który powodował problemy.
- Emulator prawidłowo raportuje czas uruchamiania po ponownym uruchomieniu urządzenia.
- Linux: w przypadku niewystarczających uprawnień KVM emulator szybciej wyświetla instrukcje debugowania.
- Rozwiązaliśmy problem polegający na tym, że emulator nie mógł uruchomić najnowszych obrazów systemu bez akceleracji.
- Naprawiono uszkodzenie pamięci lub awarię podczas uruchamiania z detektora ukończenia rozruchu.
- Naprawiono wyciek pamięci podczas długich sesji nagrywania ekranu.
- Zaktualizowano ikony emulatora, aby odzwierciedlały branding Studio 4.1.
- Dodaliśmy lepszą obsługę wykrywania sesji zdalnych w systemie Windows.
Poprawki: grafika i dekodowanie wideo
- Rozwiązaliśmy problem, który powodował, że najnowsza wersja gry Asphalt 9 była renderowana z czarnym ekranem.
- Usunięto spam dotyczący opróżniania zmapowanego bufora za pomocą
NULL
. - Rozwiązaliśmy problem z wyścigiem podczas zamykania stanu Vulkana, gdy aplikacja Vulkana gościa została zamknięta.
- Shadery 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 w przypadku uruchamiania instancji Vulkan 1.0 na hoście funkcja
vkGetImageMemoryRequirements2KHR
nieprawidłowo czyściła polepNext
zwróconej strukturyVkMemoryRequirements2
. - Naprawiliśmy wyciek pamięci w programie renderującym Vulkan.
- Rozwiązaliśmy problem, który powodował, że kompilacja shaderów GLSL ES 1.00 z nazwami zmiennych, takimi jak
isampler2D
, kończyła się niepowodzeniem. - Zaktualizowany tłumacz shaderów ANGLE z różnymi poprawkami, które rozwiązują problem z możliwym niepowodzeniem kompilacji shaderów w systemie Linux.
- Jeśli podstawowy shader blitowania bufora ramki nie skompiluje się, emulator ulegnie awarii. Dzięki temu będziemy mogli ś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 shaderów OpenGL ES, które używały macierzy niekwadratowych. Tłumacz cieniowania jest teraz osobną biblioteką współużytkowaną
libshadertranslator.dll
. - Rozwiązaliśmy problem z inicjowaniem Vulkan w przypadku niektórych sterowników GPU, w którym nie można było znaleźć niektórych funkcji urządzenia w wersji 1.1.
- Vulkan: przywróciliśmy wstępnie skompilowany program wczytujący, ponieważ używanie systemowego programu wczytującego Vulkan powodowało problemy w niektórych konfiguracjach. Znajdziemy lepsze rozwiązanie.
- Rozwiązaliśmy problem z używaniem pamięci zewnętrznej Vulkan, który mógł powodować importowanie niezgodnych indeksów typów pamięci na hoście.
- Rozwiązaliśmy problem z emulacją
GL_ALIASED_POINT_SIZE_RANGE
, który polegał na tym, że wyliczenie nie było obsługiwane na hoście. - Rozwiązaliśmy problem, który powodował, że na niektórych procesorach graficznych hosta nie można było skompilować shaderów Skia z powodu błędów związanych z
GL_EXT_shader_framebuffer_fetch
. - Ponieważ nasza kopia renderera D3D9 ANGLE została usunięta kilka wersji temu, teraz automatycznie przełączamy użytkowników, którzy korzystali z tego renderera, na d3d11 ANGLE, jeśli został on wybrany w preferencjach interfejsu.
- Dodaliśmy więcej informacji do debugowania inicjowania WGL w systemie Windows, aby śledzić błędy.
- Gdy
hw.gltransport=virtio-gpu-pipe
, wydajność jest zwiększona dzięki unikaniu obracania się na hoście podczas przesyłania danych z hosta do gościa. - Dodano więcej logów debugowania na wypadek, gdyby nie udało się zainicjować emulacji OpenGLES.
- Rozwiązaliśmy problem z migotaniem filmów w YouTube lub ich niewyświetlaniem się podczas wczytywania migawki.
- Na razie wróciliśmy do dekodowania programowego w przypadku libvpx, ponieważ wystąpiły problemy z dekodowaniem sprzętowym libvpx za pomocą CUDA. 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 włączonym trybem okna o dowolnym rozmiarze.
Uruchamianie emulatora w Android Studio
Emulator Androida można teraz uruchamiać bezpośrednio w Androidzie Studio. Ta funkcja pozwala zaoszczędzić miejsce na ekranie, szybko przełączać się między emulatorem a oknem edytora za pomocą klawiszy dostępu oraz organizować przepływ pracy w IDE i emulatorze w jednym oknie aplikacji.
Tryb okna o dowolnym rozmiarze
Możesz teraz utworzyć urządzenie AVD z włączonym trybem okna o dowolnym kształcie, wybierając profil sprzętowy tabletu o przekątnej 13,5 cala podczas tworzenia urządzenia wirtualnego w Android Studio. Ten profil sprzętowy wymaga obrazu systemu z Androidem 11 w wersji deweloperskiej 3 lub nowszej.
Znane problemy
Zmiana rozmiaru okien o dowolnym rozmiarze jest obecnie niedostępna z powodu problemów z przekazywaniem fokusu 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 obejmuje 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ć AVD z Androidem 11, wybierając jeden z tych 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 na obrazach systemu Android 9 i 11
Jeśli wcześniej nie można było używać emulatora Androida, ponieważ aplikacja zależała 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 systemu Android 9 i Android 11 domyślnie obsługują architekturę ARM i zapewniają znacznie większą 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ż tworzenie ich pod architekturę ARM64.
29.0.11 (29 maja 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Windows: emulator korzysta teraz z biblioteki
libgcc
DLL, którą dostarczamy, zamiast być statycznie kompilowany zlibgcc
. - Linux: dodano obsługę logcat do interfejsu gRPC API. Więcej informacji o gRPC znajdziesz w artykule Emulator strumieniowania gRPC (Linux).
- Emulator zawiera teraz wersję bez interfejsu graficznego dla gości 32-bitowych x86 (
qemu-system-i386
). Ta funkcja umożliwia uruchamianie obrazów x86 32-bitowych dla poziomów API 26 i niższych w wersji bez interfejsu graficznego. Pamiętaj, że w przypadku 32-bitowych gości x86 z API w wersji 27 lub nowszej emulator używa 64-bitowego silnika (qemu-system-x86_64
), ponieważ w tych obrazach systemu, mimo że przestrzeń użytkownika jest 32-bitowa, jądro jest 64-bitowe. Android Studio używa jądra do wybierania silników emulacji. - Możesz teraz określać niestandardowe ścieżki biblioteki Qt za pomocą zmiennej środowiskowej
ANDROID_QT_LIB_PATH
. - Możesz teraz 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 wirtualnego procesora).
- Rozwiązaliśmy problem z niepotrzebną barierą potoku w emulowanych skompresowanych teksturach w Vulkanie.
- Naprawiono błąd, który występował w przypadku żądań serwera proxy HTTP, gdy używano kodowania przesyłania fragmentów. Więcej informacji znajdziesz w szczegółach zatwierdzenia.
29.0.9 (7 maja 2019 r.)
Ta aktualizacja zawiera następującą poprawkę:
- Windows: rozwiązaliśmy problem polegający na tym, że wirtualna kamera sceny i kamera internetowa nie działały na 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 usługa gościa może wyliczać i konfigurować poszczególne wyświetlacze. W przyszłej aktualizacji obrazu systemu emulatora zostanie dodanych kilka wirtualnych wyświetlaczy sprzętowych.
- Dodaliśmy nową opcję wiersza polecenia:
-delay-adb
. Ta opcja wstrzymuje przetwarzanie pakietów ADB, dopóki system gościa nie zakończy uruchamiania (po zimnym starcie). Ta opcja pomaga rozwiązać problemy, które mogą wystąpić, jeśli używasz emulatora w środowisku CI, które ponownie uruchamia emulator i używa DDMS w tym samym czasie. - Rozwiązaliśmy błąd, który występował podczas wczytywania migawek, w przypadku których
glIsRenderbuffer
zwracało nieprawidłową wartość. - Naprawiliśmy niektóre problemy ze stanem nieaktualnym, gdy gość Androida ponownie się uruchamia.
- Windows: rozwiązaliśmy problemy, które uniemożliwiały uruchomienie emulatora, gdy nazwa użytkownika 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 lepiej utrzymywać emulator, nie dostarczamy już plików binarnych QEMU1 i 32-bitowego systemu Windows. Jeśli używasz 32-bitowej wersji systemu Windows, nie możesz uaktualnić jej do wersji 29.0.6.
Wymagania dotyczące obrazów systemu Android Q
Jeśli chcesz uruchomić AVD, który korzysta z obrazu systemu Android Q, musisz użyć wersji 29.0.6 (tej wersji) lub nowszej.
Ulepszenia w ramach Project Marble
Ta aktualizacja jest kontynuacją naszych prac nad inicjatywą Project Marble, która została ogłoszona podczas Android Developer Summit w listopadzie 2018 r. Więcej informacji o innych ulepszeniach w ramach Project Marble w poprzednich wersjach znajdziesz w artykule Android Emulator: Project Marble Improvements (Emulator Androida: ulepszenia w ramach Project Marble).
W ramach tej aktualizacji większość naszych działań w projekcie Marble skupiła się na zmniejszeniu wykorzystania zasobów przez emulator, np. na ograniczeniu wykorzystania procesora przez emulator w stanie bezczynności. Wprowadziliśmy też zmiany, które ułatwiają korzystanie z emulatora w różnych środowiskach, oraz rozwiązaliśmy ogólne problemy z jakością.
W sekcjach poniżej opisujemy ulepszenia w ramach Project Marble, które są dostępne w tej aktualizacji:
Ulepszenia dotyczące zachowania dźwięku hosta
Od wersji 28.0.3 emulator domyślnie blokuje wejściowy sygnał dźwiękowy z hosta.
Jeśli chcesz używać danych audio gospodarza, możesz włączyć tę opcję, klikając Sterowanie rozszerzone > Mikrofon i włączając Wirtualny mikrofon korzysta z danych audio gospodarza. Ta opcja jest automatycznie wyłączana przy każdym ponownym uruchomieniu emulatora.
Jeśli używasz wiersza poleceń, możesz też włączyć dźwięk hosta za pomocą opcji -allow-host-audio
. Możesz też użyć tych poleceń ADB, aby odpowiednio włączyć lub wyłączyć dane audio hosta:
adb emu avd hostmicon
adb emu avd hostmicoff
Ulepszenia kompilacji emulatora bez interfejsu
Począwszy od wersji 28.0.25, emulator zawiera opcję kompilacji bez interfejsu, która może działać bez interfejsu. Kompilacje bez interfejsu graficznego mogą pomóc w skonfigurowaniu emulatora na potrzeby Docker i przepływów pracy ciągłej integracji (CI).
W tej aktualizacji wprowadziliśmy dalsze ulepszenia, które pozwalają emulatorowi działać przy minimalnej liczbie zależności. W przypadku Linuksa kompilacje bez interfejsu nie zawierają już bibliotek pulseaudio
ani libX11
. Liczba bibliotek współdzielonych zależnych od systemu, które nie są spakowane z emulatorem, została ograniczona do poniższej listy:
Linux-vdso.so.1
Libutil.so.1
Libm.so.6
Libdl.so.2
Librt.so.1
Libpthread.so.0
Libgcc_s.so.1
Libc.so.6
ld-linux-x86-64.so.2
Zaktualizowano biblioteki interfejsu Qt do wersji 5.12 LTS
Ta aktualizacja zawiera te ulepszenia z wersji Qt 5.12 LTS:
- Aby uniknąć awarii podczas dekodowania w Qt
libpng
podczas uruchamiania niektórych obrazów systemowych, emulator używa teraz własnej kopiilibpng
do dekodowania obrazów PNG. - Aby rozwiązać problemy z niektórymi instalacjami systemu Linux, które zawierają niezgodne wersje niektórych bibliotek zależnych od Qt, dołączamy teraz do emulatora biblioteki
libfreetype
,libsoftokn
,libsqlite3
ilibxkbcommon
. - Emulator korzysta teraz z natywnych bibliotek okien platformy, aby uzyskiwać wymiary monitora, zamiast używać bibliotek Qt, które zwracały niewiarygodne wyniki.
Automatyczna optymalizacja procesora po zimnym rozruchu
Aby rozwiązać problem z użyciem procesora, emulator uruchamia teraz te polecenia ADB podczas zimnego startu po otrzymaniu sygnału boot complete
:
adb shell settings put screen_off_timeout 214783647
- To polecenie wydłuża czas oczekiwania przed wyłączeniem ekranu, dzięki czemu emulatora można używać w trybie bateryjnym bez ładowania. W trybie bateryjnym wykorzystanie procesora w tle jest znacznie mniejsze.
- W trybie ładowania AC operacje w tle GMSCore, takie jak aktualizacje aplikacji, mogą wykorzystywać wszystkie rdzenie procesora urządzenia, a tym samym komputer użytkownika, bez ostrzeżenia.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- To polecenie cofa uprawnienia mikrofonu dla aplikacji wyszukiwarki Google, co znacznie zmniejsza wykorzystanie procesora w tle na ekranie głównym i w programie uruchamiającym, gdy aplikacja wyszukiwarki Google jest aktywna.
- To polecenie jest uruchamiane oprócz domyślnego działania emulatora, czyli wyłączania dźwięku hosta. Dodatkowo automatycznie zapewnia to ograniczenie wykorzystania procesora opisane w przypadku wykrywania słów kluczowych w wersji 28.0.23.
Nowe zmienne środowiskowe do monitorowania wydajności
Możesz teraz używać 2 nowych zmiennych środowiskowych, aby włączyć szczegółowe monitorowanie wydajności i wykorzystania zasobów przez emulator.
SHOW_PERF_STATS=1
- Ta zmienna środowiskowa umożliwia śledzenie wykorzystania procesora 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 włącza drukowanie za każdym razem, gdy operacja wejścia lub grafiki trwa długo (dłużej niż 1 ms).
- Używamy też tej zmiennej środowiskowej, aby diagnozować problemy, które występują u użytkowników systemu Windows i powodują więcej zacięć (utraconych klatek) niż w przypadku użytkowników systemów macOS i Linux.
Ogólne ulepszenia Project Marble
Ta aktualizacja obejmuje też te ogólne ulepszenia, które są częścią inicjatywy Project Marble:
- Możesz teraz natychmiast wstrzymać wszystkie procesory wirtualne na emulatorze za pomocą tych poleceń konsoli:
adb emu avd pause
adb emu avd resume
- Znacznie zmniejszono obciążenie związane z rysowaniem w OpenGL. Ta zmiana zmniejsza wykorzystanie procesora podczas odtwarzania animacji przez emulator.
- Przywróciliśmy obsługę głównego wirtualnego urządzenia sieciowego e1000 QEMU. Możesz użyć tego urządzenia, aby skonfigurować emulator w środowisku sieciowym z połączeniem mostkowym. W środowisku sieci pomostowej emulator jest widoczny w sieci hosta, a sieć hosta jest widoczna w emulatorze.
- Do uruchamiania emulatora używane są teraz pliki binarne BIOS-u odpowiednie dla QEMU 2.12.
- Uaktualniono wersję
ffmpeg
do 3.4.5 na potrzeby kodowania i dekodowania wideo. - Znacznie zmniejszono obciążenie operacjami wejścia-wyjścia w głównej pętli QEMU w systemie macOS, zastępując główną pętlę opartą na
select()
główną pętlą opartą nakqueue
. - Rozmiar bufora Logcat został zwiększony do 2 MB, aby rozwiązać problemy z niestabilnym 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, do których dostęp uzyskasz w sekcji Rozszerzone ustawienia > Ustawienia > Zaawansowane > Statystyki wydajności. Korzystaj z tych statystyk, aby szybko diagnozować problemy, jeśli emulator wydaje się zużywać zbyt dużo procesora lub pamięci RAM.
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
korzysta teraz z wyniku procesora graficznego hosta zamiast z emulowanego. Ta zmiana pomaga rozwiązać problemy z wyświetlaniem obrazów i komponentów z powodu nieprawidłowego formatu odczytu.- Dodano obsługę rozszerzeń OpenGL ES
GL_EXT_texture_format_BGRA8888
iGL_APPLE_texture_format_BGRA8888
, jeśli są one obsługiwane przez hosta. - Dodaliśmy więcej informacji diagnostycznych do interfejsu zgłaszania błędów. Dodatkowo możesz uzyskać dostęp do raportów o błędach z konsoli za pomocą tych poleceń:
telnet localhost 5554
avd bugreport
- W przypadku obrazów systemu Android Q emulator zwiększa minimalny rozmiar pamięci RAM do 2 GB.
- Dodano więcej logowania i drukowania w przypadku, gdy OpenGL lub hipernadzorca nie mogą się zainicjować.
- Jeśli emulator nie może uruchomić równoczesnej instancji
-read-only
AVD, podejmuje 3 kolejne próby ponownego uruchomienia-read-only
AVD w ciągu 3 sekund. Ta zmiana zwiększa prawdopodobieństwo, że emulator będzie mógł uruchomić współbieżne instancje-read-only
AVD, jeśli inne instancje 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 opcji 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 10-sekundowych odstępach. Używamy tych danych, aby wzbogacać informacje o wykorzystaniu zasobów emulatora o różne przypadki użycia przez naszych użytkowników. Dzięki temu możemy zwiększać 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, które były wyświetlane na 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 korzystania z obrazów systemu Android Q ze skórkami Pixela 2 XL (lub dowolnymi skórkami z wycięciem lub zaokrąglonymi rogami).
- Rozwiązaliśmy problem polegający na tym, że opcja wiersza poleceń
-partition-size
nie ustawiała rozmiaru partycji danych. - Rozwiązaliśmy problem, który w niektórych sytuacjach powodował, że pulseaudio na emulatorze Linx działało w nieskończonej pętli i zajmowało cały rdzeń procesora.
- Rozwiązanie problemów z dostępem do pamięci spoza zakresu podczas przetwarzania skompresowanych tekstur.
- Naprawiono błędy GL, które występowały na hoście w
glTexSubImage2D
podczas 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 panelu 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 występowały z powodu utraty sygnałów przez Qt lub niestabilnych, niespójnych stanów podczas uruchamiania.
- Rozwiązaliśmy wiele problemów związanych z jednoczesnym dostępem. Możemy teraz tworzyć emulator Linuksa za pomocą narzędzia ThreadSanitizer (TSAN), które z łatwością wykrywa błędy, które w inny sposób trudno odtworzyć.
- Informacja dla użytkowników systemu Linux: zauważyliśmy, że w przypadku niektórych jąder hosta jądro Androida gościa może zgłaszać błędy i zamykać się w KVM z ogólnym błędem sprzętowym. W takiej sytuacji emulator
abort()
, aby ułatwić debugowanie (wcześniej emulator po prostu się zawieszał). - Użytkownicy systemu Linux mogą użyć nowej opcji wiersza poleceń
-stdouterr-file <file-name>
, aby przekierować zarównostdout
, jak istderr
do pliku. - Rozwiązaliśmy problem, który powodował nieprawidłowe użycie znaku
SO_REUSEADDR
. Więcej informacji znajdziesz w szczegółach zatwierdzenia. - Rozwiązaliśmy długotrwały problem z emulatorem Windows, który powodował, że podprocesy, takie jak polecenia ADB, nie uruchamiały się, jeśli nazwa użytkownika zawierała spacje.
- Rozwiązaliśmy problem z brakiem inicjowania RCU w wątkach vCPU HAXM. Ta poprawka może rozwiązać niektóre problemy z awariami i wyścigami.
- Rozwiązanie problemu z awarią, która występowała w przypadku określonych wzorców zapisywania i wczytywania migawek z interfejsu migawek 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 ze zrzutu, jeśli podczas zapisywania tego zrzutu odtwarzane było makro AR.
- Rozwiązaliśmy problem, który powodował, że niektórzy użytkownicy korzystający z konfiguracji zdalnego pulpitu widzieli czarny ekran podczas uruchamiania emulatora w systemie Linux. Aby tego uniknąć, emulator wyraźnie konfiguruje teraz
MESA_RGB_VISUAL
. Więcej informacji znajdziesz w szczegółach zatwierdzenia. - Rozwiązaliśmy problem polegający na tym, że na telewizorach AVD pojawiały się przyciski obracania.
- Rozwiązaliśmy problem polegający na tym, ż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ętowe urządzeń składanych. Aby korzystać z tych nowych profili sprzętowych, musisz używać Androida Studio 3.5 Canary 10 lub nowszego.
Do tworzenia AVD możesz używać 2 profili sprzętowych urządzeń składanych:
- 7,3-calowy składany: 1536 x 2152 po rozłożeniu, 4,6-calowy 840 x 1960 po złożeniu
- 8-calowy składany: 2200 x 2480 po rozłożeniu, 6,6-calowy 1480 x 2480 po złożeniu
Gdy uruchomisz emulator za pomocą jednego z tych profili sprzętowych, możesz złożyć i rozłożyć urządzenie, korzystając z działań składania i rozkładania na pasku narzędzi emulatora, poleceń konsoli lub tych skrótów klawiszowych:
- Zwiń:
Ctrl + F
(Command + F
w systemie macOS) - Rozwiń:
Ctrl + U
(Command + U
w systemie macOS)
Makra AR
Emulator zawiera teraz makra AR, które mogą pomóc w testowaniu typowych działań związanych z rozszerzoną rzeczywistością. Możesz na przykład użyć makra, aby zresetować wszystkie czujniki urządzenia do stanu domyślnego.
Więcej informacji znajdziesz w artykule Testowanie typowych działań AR za pomocą makr.
Obsługa Vulkan (Windows, Linux)
Użytkownicy systemów Windows i Linux mogą teraz testować aplikacje Vulkan w emulatorze Androida w wersji do Vulkan 1.1, korzystając ze 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 (obejmuje to większość procesorów graficznych Intel, NVIDIA i AMD z 2014 roku i nowszych).
Aby włączyć obsługę Vulkan, musisz dodać te flagi funkcji do pliku ~/.android/advancedFeatures.ini
(utwórz go, jeśli nie istnieje):
Vulkan = on
GLDirectMem = on
Wstępna pomoc dla deweloperów ROM-ów
Deweloperzy ROM-ów, którzy tworzą elementy docelowe sdk_phone_x86
lub sdk_phone_x86_64
(warianty userdebug
, eng
) w gałęzi master
AOSP, mogą teraz uruchamiać emulator z obsługą Vulkan.
Ta funkcja jest nadal w fazie eksperymentalnej i jest przeznaczona głównie dla deweloperów pracujących nad obrazami systemu, sterownikami i silnikami gier. Wiele rozszerzeń nadal nie jest dostępnych.
Jednak pamięć HOST_COHERENT
jest obsługiwana i powinno być teraz możliwe uruchomienie przykładowych samouczków dotyczących interfejsu Vulkan API.
Jeśli używasz systemu Linux, możesz to sprawdzić za pomocą tych poleceń:
mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem
Renderowanie za pomocą Skia z interfejsem Vulkan
Karty graficzne NVIDIA i AMD obsługujące Vulkan obsługują też interoperacyjność bez kopiowania z OpenGL za pomocą rozszerzenia GL_EXT_memory_objects
. Emulator wykorzystuje tę funkcję, aby zapewnić pełny sposób renderowania interfejsu Androida za pomocą interfejsów API Skia Vulkan.
Jeśli masz kartę graficzną NVIDIA lub AMD obsługującą Vulkan, użyj tych poleceń, aby przetestować renderowanie Skia za pomocą zgodnego obrazu systemu (Android Q Beta 3 lub nowszego):
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
Obsługa interfejsu 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
Czasami HAXM nie może zmapować spójnej pamięci Vulkan na gościa i wyłącza emulator. Ten problem zostanie rozwiązany w przyszłej aktualizacji HAXM.
Emulator strumieniowego przesyłania danych gRPC (Linux)
Stale staramy się, aby emulator był jak najbardziej wszechstronny, umożliwiając renderowanie na GPU hosta i interaktywność w jak najszerszym zakresie kontekstów działania. Użytkownicy CI i pulpitu zdalnego od dawna mają następujące problemy:
- Programowe wysyłanie poleceń wejściowych do emulatora obejmuje uruchamianie poleceń powłoki adb, które mogą powodować duże obciążenie, lub korzystanie z konsoli telnet, która jest szybsza, ale może nie działać w przypadku niektórych konfiguracji sieci.
- Użytkownicy CI często uruchamiają emulatory bez interfejsu, 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 podczas renderowania za pomocą GPU hosta, ponieważ renderowanie za pomocą GPU jest często powiązane z niewirtualnymi wyświetlaczami hosta.
Aby rozwiązać ten problem, emulator uruchamiany na komputerze z systemem Linux udostępnia teraz usługę gRPC. gRPC to ogólna platforma RPC, która działa przez HTTP.
Domyślnie usługa gRPC emulatora jest wyłączona, ale możesz ją aktywować za pomocą tego 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. Obecny zestaw poleceń umożliwia zarówno wysyłanie zdarzeń wejściowych, jak i otrzymywanie zrzutów ekranu. Te polecenia pomagają rozwiązać następujące problemy:
- Polecenia wejściowe można wysyłać do emulatora z niewielkim narzutem przez HTTP. HTTP umożliwia też wysyłanie poleceń w dodatkowych konfiguracjach sieci.
- Polecenia zrzutu ekranu można wysyłać w celu sprawdzenia bieżącego ekranu, nawet jeśli emulator działa bez interfejsu. W celu interakcji zdarzenia wejściowe mogą być też wysyłane z powrotem do emulatora.
- Użytkownicy pulpitu zdalnego mogą uruchamiać emulator bez interfejsu graficznego na głównym wyświetlaczu z renderowaniem przyspieszonym przez GPU, a do uzyskiwania zrzutów ekranu i wysyłania zdarzeń wejściowych w celu interakcji z emulatorem używać gRPC.
Pełną listę dostępnych poleceń znajdziesz w tym pliku protobuf.
Aby ułatwić Ci rozpoczęcie pracy z gRPC, udostępniliśmy kilka przykładowych klientów, z których możesz skorzystać.
Obecnie obejmuje to te próbki:
- Usługa oparta na Go, która może być używana do wykonywania zapytań o stan emulatora.
- Aplikacja React, która demonstruje zdalną interaktywność za pomocą zrzutów ekranu i danych wejściowych RPC. Ten przykład wymaga protokołu 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
Konfiguracja emulatora w Dockerze i innych procedurach ciągłej integracji (CI) była trudna ze względu na domniemane oczekiwania systemu, który powinien obsługiwać Qt wraz z zależnościami biblioteki współdzielonej (i inne problemy).
W pierwszym kroku wprowadziliśmy wariant programu uruchamiającego emulator z plikami wykonywalnymi QEMU, który nie jest zależny od Qt. W systemie Linux nadal jest link do libX11
, ale mamy nadzieję, że wkrótce go usuniemy.
Aby użyć emulatora bez interfejsu, 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.
- Naprawiono drgania i nieprawidłowe wyświetlanie 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. Ta zmiana może pomóc w ograniczeniu błędów „żądanie zamknięcia wirtualnego procesora”, które czasami występują podczas uruchamiania emulatora w systemie Windows.
- Wprowadziliśmy poprawkę problemu „nieprawidłowe wyświetlanie po wznowieniu obrazów systemu Android Q ze stanu”.
- Użytkownicy napotykali problemy z emulatorami „nieautoryzowanymi” 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:
- Zamknij wszystkie emulatory.
- Usuń pliki
~/.android/adbkey
i~/.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:
Domyślnie wyłączone wejście audio gospodarza
W niedawnym poście na Reddicie opisano, jak gościnny system operacyjny Android zawsze korzysta z dźwięku z mikrofonu hosta, co umożliwia nieoczekiwane działanie funkcji „OK Google”. Przepraszamy za to i wspólnie z zespołem Androida zadbamy o to, aby wykrywanie słów aktywujących 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 od gospodarza przekazywana jest cisza.
- Jeśli chcesz używać danych audio gospodarza, możesz teraz włączyć tę opcję, wybierając Sterowanie rozszerzone > Mikrofon i włączając Wirtualny mikrofon korzysta z wejścia audio gospodarza. Ta opcja jest automatycznie wyłączana przy każdym ponownym uruchomieniu emulatora.
Najnowsze informacje o dochodzeniach dotyczących wykorzystania procesora
Podczas naszych badań w ramach Project Marble zauważyliśmy, że wysokie wykorzystanie procesora na emulatorze zwykle mieści się w jednej z tych 3 kategorii:
W trybie bezczynności: automatyczne aktualizacje aplikacji w Sklepie Play
Stwierdziliśmy, że w losowych odstępach czasu wszystkie zainstalowane aplikacje są aktualizowane, nawet gdy użytkownik nie jest zalogowany. W trakcie tego procesu wykorzystanie procesora osiąga liczbę rdzeni × 100% (zwykle ok. 400%) w przypadku GMSCore i dex2oat. Możesz temu zapobiec, wyłączając automatyczne aktualizacje aplikacji w aplikacji Sklep Play.
W trybie bezczynności: wykrywanie słów-kluczy
Gdy jesteś na ekranie głównym i żadna aplikacja nie jest na pierwszym planie, zużycie procesora może być bardzo duże (ok. 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, wyłączając wejście 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, cofając uprawnienia do mikrofonu w aplikacji Google.
Podczas aktywności, czasami w stanie bezczynności: animacje
Trzecim źródłem wysokiego wykorzystania procesora są animacje. Zauważyliśmy, że optymalizacja stosu sterowników graficznych może zmniejszyć wykorzystanie procesora nawet wtedy, gdy emulator nie jest w stanie bezczynności. W ramach Projektu Marble będziemy stopniowo wdrażać optymalizacje sterowników graficznych.
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 ponownie uruchamiał się lub powodował błąd jądra podczas zapisywania szybkiego rozruchu. (Problem 120951634)
- Gdy używasz zmapowanego pliku jako migawki pamięci RAM, emulator teraz jawnie usuwa mapowanie pliku po zakończeniu działania.
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 w przypadku niektórych modeli procesorów graficznych Intel.
- Rozwiązaliśmy problem, który powodował stan urządzenia ADB
unauthorized
podczas korzystania z niestandardowej lokalizacjiANDROID_SDK_HOME
. - Rozwiązaliśmy problem w systemie Windows, który powodował awarię emulatora podczas uruchamiania obrazów systemu z wyłączoną akceleracją procesora.
- Rozwiązano problem z pikselizacją wyświetlacza emulatora. Downsampling powinien teraz działać.
- Rozwiązaliśmy problem w systemie macOS 10.14 lub nowszym, w którym sterowanie kamerą wirtualnej sceny za pomocą myszy mogło stać się zbyt czułe z powodu interakcji z nowymi ustawieniami zabezpieczeń ułatwień dostępu.
- Naprawiliśmy błąd w obliczeniach strefy czasowej, który mógł powodować sporadyczne zmiany zegara emulatora.
- Naprawiono błędy renderowania w różnych aplikacjach opartych na silnikach cocos2d i Unreal.
- Dodaliśmy obsługę Wi-Fi peer-to-peer w emulatorze.
Dwa emulatory mogą teraz komunikować się ze sobą bezpośrednio przez Wi-Fi, jeśli korzystają z najnowszego obrazu Sklepu Play w wersji Pie. Aby używać Wi-Fi peer-to-peer, uruchom 2 wirtualne urządzenia z Androidem z tymi samymi argumentami
-wifi-server-port
i-wifi-client-port
:emulator @<server-avd-name> -wifi-server-port 9999
emulator @<client-avd-name>-wifi-client-port 9999
- Dodaliśmy obsługę większej liczby kamer internetowych w systemie Windows, przyjmując wszystkie niekompatybilne rozmiary klatek i dynamicznie zmieniając ich rozmiar, aby dopasować je 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 w przypadku korzystania z obrazów systemu z API na poziomie 28 lub wyższym. Te obrazy systemu obejmują lepsze wykorzystanie pamięci w przypadku sterowników graficznych po stronie gościa.
Dodatkowo ulepszyliśmy wykorzystanie zasobów w tych obszarach:
- Zmniejszone zużycie pamięci przez emulator podczas długotrwałych testów. Jeśli nadal występują problemy z użyciem pamięci podczas długotrwałych testów, utwórz zgłoszenie opisujące Twój przypadek użycia w narzędziu do śledzenia problemów.
- Zmniejszone wykorzystanie procesora podczas uruchamiania aplikacji z animacjami.
- Rozwiązaliśmy problem, który mógł powodować wyciek kontekstu QEMU AIO w systemie Windows.
Uruchamianie wielu instancji pojedynczego AVD jednocześnie
Możesz teraz uruchamiać wiele instancji tego samego AVD i korzystać z nich jednocześnie. Instancje uruchomione po pierwszej instancji są tylko do odczytu, a zmiany w wirtualnym dysku gościa są odrzucane po zakończeniu działania.
Aby uruchomić kilka instancji tego samego AVD jednocześnie, uruchom dowolne instancje po pierwszej instancji z wiersza poleceń za pomocą flagi -read-only
.
Ta funkcja jest możliwa dzięki skopiowaniu plików QCOW2 powiązanych z częściami obrazu Androida, które można zapisywać. 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 w połączeniu z funkcją migawki pamięci RAM gościa oparte na plikach wiele instancji AVD współużytkuje główną migawkę szybkiego uruchamiania AVD jako wspólne źródło pamięci RAM gościa typu copy-on-write. Oznacza to, że instancje mają wspólną dużą część pamięci RAM. Użyj tej funkcji, aby przeprowadzać testy, które wymagają równoległego działania na wielu urządzeniach.
Chętnie poznamy Twoją opinię o możliwych przypadkach użycia, które są częścią Twojego normalnego interaktywnego przepływu pracy lub przepływu pracy CI. Zgłoszenia problemów możesz tworzyć lub na nie głosować w Issue Trackerze.
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 szybkiego uruchamiania podczas działania, zamiast wykonywać całą pracę po zakończeniu działania. Jeśli zamykanie emulatorów zajmuje Ci dużo czasu, włącz tę funkcję, aby poprawić wydajność szybkiego uruchamiania. Domyślnie po wyjściu z Quickboota zapisywany jest migawka, która jest wczytywana za każdym razem, podobnie jak w przypadku uśpienia i wybudzenia prawdziwego urządzenia.
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:
- Podczas uruchamiania emulatora z wiersza poleceń użyj flagi
-no-snapshot-save
lub-read-only
. - Kliknij Extended Controls > Snapshots > Settings (Rozszerzone elementy sterujące > Migawki > Ustawienia) i ustaw opcję Auto-save current state to Quickboot? (Automatycznie zapisywać bieżący stan w celu szybkiego uruchamiania?) na Nie.
- Po wybraniu tej opcji musisz ponownie uruchomić emulator. Jeśli emulator jest ustawiony na automatyczne zapisywanie, możesz uruchomić to polecenie, aby ustawić punkt kontrolny:
Po uruchomieniu tego polecenia zrzut szybkiego uruchamiania emulatora pozostanie w tym punkcie kontrolnym. Aby wczytać emulator z punktu kontrolnego, ponownie uruchom to samo polecenie.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.
Jest to duża zmiana w sposobie działania szybkiego uruchamiania, dlatego będziemy wdzięczni za Twoją opinię na temat tego, czy poprawia ona wydajność szybkiego uruchamiania 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 uruchomisz emulator z migawki (za pomocą opcji wiersza poleceń -snapshot
lub uruchamiając go z migawki w menedżerze AVD), wyłączy on automatyczne zapisywanie migawek szybkiego uruchamiania i zapisywanie migawek szybkiego uruchamiania po zamknięciu. Zmniejsza to ryzyko przypadkowego nadpisania zrzutu szybkiego rozruchu i pozwala uniknąć powolnych ścieżek rezerwowych, które nie korzystają ze zrzutów szybkiego rozruchu opartych na plikach.
QEMU 2.12
Zmieniliśmy bazę naszej wersji QEMU z QEMU 2.9 na QEMU 2.12. Ta aktualizacja zawiera następujące 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 niektóre z najważniejszych zmian, które mają wpływ na emulator Androida:
- x86:
gdbstub
zapewnia teraz dostęp do rejestrów SSE. - Obrazy dysków: blokowanie obrazów jest dodawane i domyślnie włączone. Wiele procesów QEMU nie może zapisywać danych w tym samym obrazie, o ile host obsługuje blokowanie OFD lub POSIX, chyba że określono inne opcje.
qemu-img: qemu-img resize
obsługuje wstępną alokację nowych części obrazu.- Zmniejszanie rozmiaru plików QCOW2 jest teraz obsługiwane w przypadku języków
qemu
iqemu-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.
- Ułatwiliśmy dostęp do ikon powiadomień szybkiego uruchamiania użytkownikom, którzy nie rozróżniają kolorów.
Grafika
- Rozwiązaliśmy problem z dostępem do pamięci spoza zakresu, który mógł występować w przypadku wskaźników tablicy wierzchołków OpenGL ES.
- Niektóre starsze procesory graficzne nie obsługiwały 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, zawieszanie się lub brak możliwości korzystania z niego przy domyślnym ustawieniu procesora graficznego. Emulator automatycznie przełącza się teraz na renderer Swiftshader, jeśli wykryje, że używane są te procesory graficzne.
- Rozwiązaliśmy problem, który powodował, że emulator nie publikował prawidłowego bufora ramki, jeśli w momencie wywołania funkcji
eglSwapBuffers
był powiązany buforFBO != 0
. - Rozwiązaliśmy problem polegający na tym, że wirtualny wyświetlacz Androida pojawiał się tylko w lewym górnym rogu. Uważamy, że przyczyną były nieprawidłowo skonfigurowane zmienne środowiskowe Qt. Emulator zastępuje teraz wszystkie zmienne środowiskowe związane ze skalowaniem Qt.
- Rozwiązaliśmy problem, który w niektórych sytuacjach powodował awarię emulatora podczas wczytywania aplikacji GLES1 z migawki.
- Rozwiązaliśmy problemy z 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.
- Emulator Androida obsługuje teraz tekstury skompresowane ASTC LDR
GL_KHR_texture_compression_astc_ldr
w przypadku obrazów systemu, które korzystają z interfejsu API na poziomie 28 lub wyższym. - Większość nowoczesnych procesorów graficznych powinna teraz uruchamiać emulator z domyślnie włączoną obsługą OpenGL ES 3.x bez używania
GLESDynamicVersion
. -gpu guest
(renderowanie oprogramowania na urządzeniu gościa) zostało wycofane. Obrazy systemu na poziomie interfejsu API 28 lub wyższym automatycznie przełączają się na Swiftshader (-gpu swiftshader_indirect
).- Jeśli emulator jest uruchamiany z wiersza poleceń za pomocą flagi
-no-window
, domyślnym rendererem jest teraz Swiftshader.
Lokalizacja
- Emulator może teraz aktualizować kierunek wraz z szerokością i długością 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 wynosi zero po zakończeniu odtwarzania.
- Wysokość nie jest już ograniczona do przedziału od -1000 m do +10 000 m.
- Rozwiązaliśmy problem, który powodował, że wirtualna lokalizacja GPS nie była okresowo aktualizowana, chyba że okno sterowania rozszerzonego zostało otwarte co najmniej raz.
Aparat
W systemie Windows obsługiwanych jest teraz więcej kamer internetowych, ponieważ emulator dynamicznie zmienia rozmiar klatek z kamery internetowej. 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 w Sklepie Play, emulator automatycznie zmienia rozmiar partycji danych użytkownika na 6 GB, gdy jest uruchamiany ze świeżym AVD Sklepu Play.
Ogólne ulepszenia i poprawki
- Niektórzy użytkownicy zgłaszali, że emulator działał wolno. Zidentyfikowaliśmy jedną z możliwych przyczyn, w której katalog tymczasowy emulatora zawiera zbyt wiele nieaktualnych plików. Aby rozwiązać ten problem, emulator nie przechowuje już w tym katalogu plików sprawdzających aktywność ADB. Może też 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ę teraz komunikat o błędzie. Jeśli korzystasz z systemu Windows i zauważysz, że jest dostępna pamięć RAM, ale nadal nie możesz uruchomić emulatora, być może przekroczono limit pamięci wirtualnej. Więcej informacji o tym, jak rozwiązać ten problem, znajdziesz na stronie rozwiązywania problemów z emulatorem.
- Opcja wiersza poleceń
-sysdir
prawidłowo zastępuje teraz wywnioskowany katalog obrazów systemu. - Wirtualny modem obsługuje teraz zapytanie o informacje o aktywności modelu
+MAI
. - Naprawiono 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, zgłoś problem w Issue Trackerze.
- Rozwiązaliśmy problem, który ponownie pojawił się w systemie macOS 10.14 i powodował, że korzystanie ze słuchawek Bluetooth z emulatorem pogarszało jakość dźwięku w całym systemie. Aby temu zapobiec, emulator nie używa już dźwięku Bluetooth podczas działania w systemie macOS. (Problem 37070892)
- Rozwiązaliśmy problem w systemie Windows, który powodował, że zegar emulatora nie wskazywał prawidłowej strefy czasowej.
- Rozwiązaliśmy problem z powolnym działaniem emulatora i zawieszaniem się na systemach Linux z mechanicznymi dyskami twardymi (HDD).
- Naprawiliśmy niektóre ostrzeżenia kompilacji, które mogły prowadzić do uszkodzenia stosu w systemie macOS.
- Rozwiązaliśmy problemy, które mogły powodować wprowadzające w błąd raporty o zawieszaniu się.
- Rozwiązaliśmy problem z niszczeniem pul wątków, który mógł powodować awarię, jeśli nie udało się utworzyć jednego z wątków.
- Rozwiązaliśmy problem w systemie macOS, który powodował, że timery stawały się niestabilne, co prowadziło do zawieszania się i innych dziwnych zachowań. Jeśli emulator zawiesza się w systemie macOS, zgłoś problem w Issue Trackerze.
- 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 po pierwszym uruchomieniu emulatora nie można było go ponownie uruchomić, jeśli ADB zostało wymuszone.
- Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, utwórz zgłoszenie w Issue Trackerze.
- 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 po wznowieniu stanu, w którym orientacja urządzenia była inna niż domyślna orientacja AVD, w oknie emulatora pojawiał się powidok lub obraz przenosił się poza ekran.
- Rozwiązaliśmy problemy związane z awariami podczas zapisywania migawek.
- W systemie Linux systemy plików btrfs mogą powodować znaczne spowolnienie, ponieważ emulator automatycznie zapisuje migawki i używa mechanizmu kopiowania przy zapisie w przypadku wirtualnych urządzeń dyskowych. Zalecamy wyczyszczenie katalogu
~/.android/avd
i uruchomienie w nim tego polecenia:~/.android/avd
Spowoduje to utworzenie nowych migawek w folderze, w którym funkcja kopiowania przy zapisie jest wyłączona.chattr +C
HAXM 7.3.2
Ponownie wspominamy o HAXM 7.3.2, ponieważ musi być zainstalowany, aby najnowsze obrazy systemu działały prawidłowo na emulatorze. HAXM 7.3.2 powinien być już dostępny na kanale stabilnym. Można go też zainstalować ręcznie ze strony https://github.com/intel/haxm/releases.
Oto kilka problemów, które rozwiązuje ta wersja HAXM:
- Naprawiono losowe awarie systemów operacyjnych gości, które korzystają z najnowszych wersji jądra Linuxa (≥ 4.6). Na przykład Ubuntu 18.04 (#39, #74).
- Naprawiono błąd emulatora instrukcji x86, który mógł powodować awarię hosta (#93).
Wycofanie 32-bitowej wersji systemu Windows
Ze względu na niską liczbę użytkowników i wysokie koszty utrzymania planujemy wycofać 32-bitową wersję emulatora Androida działającą w systemie Windows. Przed wycofaniem 32-bitowej wersji emulatora Androida i zakończeniem jej obsługi wdrożymy plan przejścia. Chętnie poznamy Twoją opinię lub obawy związane z tą przyszłą zmianą.
Jeśli korzystasz obecnie z 32-bitowej wersji emulatora Androida działającej w systemie Windows, poinformuj nas o tym w Issue Trackerze i napisz, jak możemy Ci pomóc w przyszłości.
27.3.10 (sierpień 2018 r.)
Ta aktualizacja zawiera następującą poprawkę błędu:
Poprawka konfiguracji rozmiaru pamięci RAM
Niektórzy użytkownicy zgłaszali, że emulator działał wolno. Zidentyfikowaliśmy jedną z możliwych przyczyn, w której rozmiar pamięci RAM AVD w pliku config.ini
AVD był ustawiany nieprawidłowo.
Aby temu zapobiec, emulator zwiększa minimalny poziom pamięci RAM w przypadku obrazów, które korzystają z interfejsu API na poziomie 26 lub wyższym, do domyślnego poziomu Androida Studio, czyli 1536 MB. Jeśli w pliku config.ini
AVD nie ma informacji o hw.ramSize
w megabajtach, zgłoś problem w narzędziu do śledzenia błędów.
Plik config.ini
znajdziesz w tej lokalizacji:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (lipiec 2018 r.)
Ta aktualizacja zawiera następujące ulepszenia i poprawki błędów:
Ulepszone komunikaty o błędach dotyczące funkcji Windows Hypervisor Platform
Niektórzy użytkownicy mieli problem z ustaleniem, dlaczego platforma Windows Hypervisor (WHPX) nie została zainicjowana po aktywowaniu emulatora WHPX. Aby Ci pomóc w diagnozowaniu tych problemów, dodaliśmy bardziej informatywne komunikaty o błędach. Te komunikaty o błędach możesz włączyć, uruchamiając emulator z wiersza poleceń za pomocą flagi -verbose
.
Ogólne poprawki
- Naprawiono błędy OpenGL, które występowały podczas wczytywania zrzutu w aplikacji Aparat.
27.3.8 (lipiec 2018 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia istniejących funkcji i poprawki błędów.
Zrzuty danych
Możesz teraz zapisać wiele zrzutów AVD dla danej konfiguracji urządzenia i wybrać, który z nich ma być wczytywany podczas uruchamiania emulatora.
Od wersji Androida Studio 3.2 Canary 13 każda konfiguracja urządzenia zawiera w ustawieniach zaawansowanych w oknie dialogowym Konfiguracja urządzenia wirtualnego element sterujący, za pomocą którego możesz określić, który zrzut AVD ma być wczytywany podczas uruchamiania AVD.
Aby uwzględnić rozszerzenie funkcji zrzutów, dodaliśmy kategorię Zrzuty do okna Ustawienia rozszerzone. Ten nowy panel zawiera elementy sterujące zapisywaniem i wczytywaniem migawek AVD, w tym elementy sterujące zapisywaniem i wczytywaniem migawki szybkiego uruchamiania, które wcześniej znajdowały się w panelu Ustawienia.
Możesz edytować nazwę i opis każdego zapisanego zrzutu.
Więcej informacji znajdziesz w artykule Zrzuty.
HAXM 7.2.0
HAXM 7.2.0 jest teraz dostępny na wszystkich kanałach.
Ta aktualizacja zawiera poprawki błędów i ulepszoną obsługę dużych ilości pamięci RAM. Ponadto po tej aktualizacji HAXM i w Emulatorze w wersji 27.3 lub nowszej migawki wczytują zawartość do pamięci RAM na żądanie, a nie wczytują całej migawki po uruchomieniu urządzenia wirtualnego. Ta zmiana powinna znacznie skrócić czas potrzebny na wczytanie migawki.
Więcej informacji znajdziesz w artykule Konfigurowanie 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ć wideo i dźwięk z emulatora Androida i zapisywać nagranie w pliku WebM lub animowanym GIF-ie.
Elementy sterujące nagrywaniem ekranu znajdują się na karcie Nagrywanie ekranu w oknie Rozszerzone elementy sterujące.
Wskazówka: elementy sterujące nagrywaniem ekranu możesz też otworzyć, naciskając Ctrl + Shift + R (Command + Shift + R na Macu).
Aby rozpocząć nagrywanie ekranu, kliknij przycisk Rozpocznij nagrywanie na karcie Nagrywanie ekranu. Aby zatrzymać nagrywanie, kliknij Zatrzymaj nagrywanie.
Elementy sterujące odtwarzaniem i zapisywaniem nagranego filmu znajdują się u dołu karty Nagrywanie ekranu. Aby zapisać film, w menu u dołu karty wybierz WebM lub GIF i kliknij Zapisz.
Możesz też nagrać i zapisać nagranie ekranu z emulatora, używając w wierszu poleceń tego polecenia:
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 wirtualnej kamerze sceny, która pozwala eksperymentować z projektami AR w wirtualnym środowisku.
Informacje o korzystaniu z kamery wirtualnej sceny w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.
Obrazy Sklepu Google Play na urządzeniu Pixel
Sklep Google Play jest teraz włączony w przypadku obrazów urządzeń Pixel i Pixel 2. Jest to widoczne w Menedżerze AVD w Androidzie Studio w wersji 3.2 lub nowszej. W kolumnie Sklep Play znajduje się logo Google Play. W przypadku AVD z włączonym Sklepem Google Play w oknie Rozszerzone ustawienia znajduje się karta Google Play, na której jest wygodny przycisk do aktualizowania Usług Google Play na urządzeniu.
Zrzuty danych
Teraz możesz wczytać zrzut szybkiego rozruchu bez ponownego uruchamiania emulatora. Aby wczytać migawkę, otwórz okno Ustawienia zaawansowane na stronie Ustawienia i kliknij przycisk Wczytaj teraz.
Wprowadziliśmy wiele ulepszeń dotyczących wczytywania i zapisywania migawek, aby zwiększyć wydajność wykorzystania zasobów i zminimalizować czas trwania każdej operacji. Jeśli zapisywanie nadal trwa wyjątkowo 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, które jest uruchomione.
Renderowanie za pomocą Skia
W przypadku obrazów dla interfejsu API w wersji 27 lub nowszej emulator może renderować interfejs Androida za pomocą Skia, co zapewnia płynniejsze i wydajniejsze renderowanie.
Obecnie korzystanie z biblioteki Skia wymaga jej 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 emulator Androida używa teraz Media Foundation jako backendu kamery internetowej, co znacznie poprawia wydajność i liczbę klatek podczas przechwytywania obrazu z kamery internetowej (do 720p przy 30 FPS).
Na komputerach Mac możesz teraz używać jednocześnie kamer webcam0 i webcam1.
Różne
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 łańcucha narzędzi Clang C++. Ta zmiana rozwiązuje problem z nieudanym uruchomieniem emulatora z powodu błędów libGL i libstdc++.
- Usunięto kilka przyczyn awarii i zawieszania się.
- Aby uniknąć awarii i zawieszania się spowodowanych brakiem wystarczającej ilości wolnego miejsca na dysku, emulator sprawdza teraz, czy jest wystarczająco dużo 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 w Unity.
- Rozwiązaliśmy problem z DNS, który powodował, że emulator nie mógł połączyć się z siecią.
- Rozwiązaliśmy problem, który powodował, że zmiany wewnętrznej pamięci masowej przydzielonej do AVD w oknie dialogowym Konfiguracja urządzenia wirtualnego nie działały.
- Rozwiązaliśmy problem polegający na tworzeniu wielu 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 użytkownika przestawały reagować, chyba że było otwarte okno Rozszerzone elementy sterujące.
- Rozwiązaliśmy problem, który powodował, że kopiowanie i wklejanie z hosta nie działało, chyba że okno dialogowe Rozszerzone elementy sterujące zostało otwarte co najmniej raz.
- Prostokąt zmiany rozmiaru emulatora bez ramki został zaktualizowany, aby lepiej pasował do motywu wizualnego emulatora.
- Po włączeniu trybu samolotowego telefon i SMS-y są teraz prawidłowo dezaktywowane.
- Rozwiązaliśmy problem, który powodował wyłączenie funkcji SMS i komórkowych po wczytaniu migawki.
- 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 AVD na niektórych ekranach Maca.
- Rozwiązaliśmy problemy z migotaniem i pustymi ekranami na nowszych komputerach MacBook Pro podczas uruchamiania AVD ze skórkami Pixel 2 XL.
- Rozwiązaliśmy problemy z pustymi ekranami podczas przełączania w tryb powiększenia, gdy aktywny był emulator bez ramki.
- Rozwiązaliśmy problem, który powodował, że po powiększeniu skórka urządzenia i zawartość emulatora przestawały być zsynchronizowane.
Jeśli nadal występują zawieszenia lub inne problemy z niestabilnością, zgłoś problem.
27.1.12 (marzec 2018 r.)
Ta aktualizacja zawiera poprawki następujących problemów:
- Jakość dźwięku Bluetooth pogorszyła się po uruchomieniu emulatora. (Problem 37095756)
- Lokalizacje wysł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 w Ustawieniach zaawansowanych > Lokalizacja w graficznym interfejsie użytkownika. (Problem 73471760)
Jeśli nadal występują zawieszenia lub inne problemy z niestabilnością, zgłoś problem.
Dzięki tej aktualizacji, aktualnemu obrazowi systemu i wersji podglądowej Androida Studio możesz używać Androida Emulatora do uruchamiania aplikacji rzeczywistości rozszerzonej utworzonych za pomocą ARCore. Szczegółowe wymagania i instrukcje znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.
27.1.10 (luty 2018 r.)
Rozdzielczość zdjęcia z aparatu
Teraz można rejestrować klatki w rozdzielczości 720p z podłączonej kamery internetowej.
Aby można było używać obrazów systemu Android 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 jeśli nie występowało zawieszenie, mógł się pojawiać komunikat: „emulator: ERROR: detected a hanging thread 'Qt event loop'”. Brak odpowiedzi przez 15000 ms”.
Jeśli nadal występują zawieszenia lub inne problemy z niestabilnością, zgłoś problem.
27.1.7 (luty 2018 r.)
Okno emulatora bez ramki:
Domyślnie emulatory z plikami skóry urządzenia są teraz wyświetlane bez otaczającej ramki okna. Aby wyświetlić ramkę okna, włącz opcję Pokaż ramkę okna wokół urządzenia w panelu Ustawienia okna Rozszerzone elementy sterujące.
Ulepszenia szybkiego uruchamiania, które zwiększają wydajność pracy ze zrzutami AVD:
- Migawkę AVD możesz zapisać w dowolnym momencie, klikając przycisk Zapisz teraz w panelu Ustawienia w oknie dialogowym Rozszerzone elementy sterujące.
- W wielu przypadkach emulator skraca czas zapisywania zrzutu, ponieważ zapisuje tylko różnicę między bieżącym stanem a wcześniej zapisanym zrzutem.
Szczegółowe informacje znajdziesz w dokumentacji szybkiego uruchamiania.
Emulator został zaktualizowany do wersji QEMU 2.9.
Oto niektóre z najważniejszych ulepszeń:
- Zoptymalizowane operacje wejścia/wyjścia i dokładniejsze blokowanie wątków wejścia/wyjścia, co zapewnia większą wydajność.
- Naprawiono błędy od wersji QEMU 2.8 (26.1.4).
- Nowa implementacja backendu HAXM.
Pełną listę zmian znajdziesz w dzienniku zmian QEMU 2.9.
Implementacja Swiftshader zgodna z OpenGL ES 3.0:
Renderowanie Swiftshader w emulatorze jest teraz w pełni zgodne z OpenGL ES 3.0. Szczegółowe informacje o programie renderującym Swiftshader znajdziesz w sekcji Ustawienia > Zaawansowane w rozszerzonych elementach sterujących.
Poprawki
- Rozwiązaliśmy problem polegający na tym, że udostępnianie schowka nie działało, dopóki opcja Włącz udostępnianie schowka nie została wyłączona i włączona.
- Rozwiązaliśmy problem z zawieszaniem się podczas korzystania z backendu renderowania Swiftshader na urządzeniach AVD o niskiej rozdzielczości.
27.0.5 (styczeń 2018 r.)
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, przejść do Ustawienia > Zaawansowane i w ustawieniu renderowania OpenGL ES wybrać ANGLE D3D11.Rozwiązaliśmy problem polegający na tym, że naciśnięcie klawiszy Shift+B nie powodowało wpisania wielkiej litery B.
27.0.2 (grudzień 2017 r.)
Nowa funkcja szybkiego uruchamiania zapewnia krótszy czas uruchamiania emulatora na podstawie zrzutu instancji AVD.
Szybkie uruchamianie jest domyślnie włączone na wszystkich urządzeniach AVD. Chociaż przy pierwszym uruchomieniu AVD musi wykonać zimny rozruch (tak jak włączenie urządzenia), wszystkie kolejne uruchomienia są szybkie, a system jest przywracany do stanu, w którym został zamknięty emulator (podobnie jak wybudzanie urządzenia).
Jeśli chcesz kontrolować, kiedy emulator zapisuje migawkę, otwórz okno sterowania rozszerzonego emulatora i kliknij Ustawienia. Tutaj możesz wybrać jedno z tych ustawień opcji Zapisz stan szybkiego uruchamiania po zamknięciu:
- Tak: zawsze zapisuj migawkę szybkiego uruchamiania po zamknięciu emulatora. Jest to ustawienie domyślne.
- Nie: nigdy nie zapisuj zrzutu szybkiego uruchamiania; zawsze wykonuj zimny rozruch.
- Pytaj: po zamknięciu emulatora wyświetla się pytanie, czy zapisać zrzut szybkiego uruchamiania.
Wybrane przez Ciebie ustawienia dotyczą tylko obecnie otwartego AVD.
Więcej informacji znajdziesz w dokumentacji szybkiego uruchamiania.
Dodano obsługę Mac OpenGL ES 3 (w przypadku obrazów systemu korzystających z poziomu API 24 i wyższego, interfejsów API Google oraz interfejsu ABI x86).
Aby zwiększyć stabilność aplikacji OpenGL ES 2+, emulator korzysta teraz z profilu podstawowego OpenGL, jeśli jest dostępny.
Nowe opcje renderowania za pomocą Swiftshader / ANGLE:
-gpu swiftshader_indirect
: Szybsza i stabilniejsza wersja Swiftshadera, która działa z szybkim uruchamianiem.-gpu angle_indirect
(tylko Windows): bardziej stabilna odmiana ANGLE D3D, która działa też z szybkim uruchamianiem.
Starsze opcje
-gpu swiftshader
i-gpu angle
zostały wycofane. W oknie Ustawienia rozszerzone opcje „SwiftShader” i „ANGLE” w ustawieniu renderera OpenGL ES w sekcji Ustawienia > Zaawansowane korzystają teraz z wariantów*_indirect
.Różne inne poprawki błędów.
26.1.4 (sierpień 2017 r.)
Jest to drobna aktualizacja, która zawiera poprawki błędów i ulepszenia konfiguracji GPU:
- Włączanie animacji rozruchu podczas korzystania z mechanizmu renderowania ANGLE
- Wyłącz GLES3 podczas korzystania z mechanizmu renderowania ANGLE
26.1.3 (sierpień 2017 r.)
Jest to drobna aktualizacja, która zawiera poprawki błędów, ulepszenia wydajności i niewielkie zmiany funkcji.
- Ta wersja jest teraz wymagana do korzystania z najnowszych obrazów systemu Android 8.0.
Są one zgodne z Treble i mają oddzielne
vendor.img
partycje. - Nowa wersja HAXM 6.2.0 jest już dostępna (sprawdź Menedżera SDK) i zawiera te aktualizacje:
- Lepsze wykorzystanie pamięci. Maksymalny zestaw roboczy pamięci przypiętej przez HAXM nie jest już równy rozmiarowi pamięci RAM AVD. Zamiast tego pamięć jest stronicowana na żądanie. Powinno to pomóc w bardziej niezawodnym działaniu emulatora na urządzeniach z mniejszą ilością pamięci RAM.
- Emulator z HAXM w wersji 6.2.0 może teraz szybciej uruchamiać się w systemie macOS, pomijając długą fazę inicjalizacji.
- Ulepszenia w konfiguracji GPU
- Rozwiązaliśmy problemy z czarnym ekranem podczas uruchamiania, gdy renderowanie oprogramowania po stronie gościa powodowało powrót do renderowania oprogramowania po stronie hosta za pomocą Swiftshader. Najnowsze wersje obrazów systemu dla poziomów interfejsu API 19–25 z interfejsami API Google powinny mieć działające renderowanie po stronie gościa.
- Rozwiązaliśmy problem, który powodował przełączanie emulatora na renderowanie programowe z powodu wykrycia starszych procesorów graficznych Intel, mimo że emulator działał na oddzielnym procesorze graficznym. To, które procesory graficzne będą używać renderowania ANGLE lub Swiftshader, jest określane w ten sposób:
- Starsze zintegrowane karty graficzne Intel mają problemy ze sterownikami OpenGL i ANGLE D3D. Użytkownicy z kartami graficznymi 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 w przypadku niektórych modeli Intel HD 4xxx występuje problem ze sterownikiem. Zostaną one automatycznie przełączone na ANGLE.
- Aby uzyskać najlepsze wyniki emulacji GPU, zalecamy używanie dyskretnej karty graficznej NVIDIA lub AMD albo nowszej karty graficznej Intel (Iris, HD 5xxx, HD 5xx/6xx).
- Rozwiązaliśmy problem, który powodował, że emulator nie uruchamiał się (emulacja OpenGL nie mogła zostać zainicjowana), jeśli wirtualne urządzenie z Androidem było skonfigurowane z
hw.gpu.mode=host
, a emulator był uruchamiany w klientach pulpitu zdalnego. - Wyjaśniliśmy ustawienia „Poziom interfejsu OpenGL ES API (wymaga ponownego uruchomienia)”; dodaliśmy opcję przejścia z OpenGL ES 3 na OpenGL ES 2 w przypadku wystąpienia problemów lub konieczności przeprowadzenia testów na niższych poziomach interfejsu OpenGL ES API.
- Mechanizm renderowania Mesa został wycofany.
hw.gpu.mode=mesa
bę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 za pomocą Hypervisor.Framework lub HAXM 6.2.0.
- Platforma Hypervisor.framework jest teraz domyślnie włączona w systemie macOS w przypadku 32-bitowych obrazów x86, aby zwiększyć wydajność i zgodność z systemem macOS. Jeśli wystąpią problemy z tym konkretnym plikiem, prześlij raport o błędzie i dołącz do niego
HVF = off
do~/.android/advancedFeatures.ini
(utwórz ten plik, jeśli nie istnieje). - Rozwiązaliśmy problemy z brakiem internetu lub niepowodzeniem dołączania debugera podczas korzystania z Hypervisor.framework.
- Aby zwiększyć zgodność i wydajność przechwytywania obrazu z kamery internetowej, przechwytywanie oparte na QTKit zostało zastąpione buforowanym przechwytywaniem opartym na AVFoundation.
- Dodaliśmy obsługę Wi-Fi w niektórych obrazach systemu (obecnie tylko poziom 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 zwiększyliśmy domyślny rozmiar do 2 GB (z 800 MB).
- Dodano skrót klawiszowy (Ctrl+Shift+U), który umożliwia 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 technologią 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 funkcja HyperV była nieprawidłowo wykrywana, jeśli emulator działał w hiperwizorze Xen.
- Rozwiązaliśmy problem, który powodował awarię emulatora podczas uruchamiania w niektórych konfiguracjach Linuksa.
26.1.2 (lipiec 2017 r.)
Ta wersja zawiera nowe funkcje i ulepszenia działania.
Dodaliśmy możliwość zdefiniowania niestandardowej konfiguracji serwera proxy HTTP w ustawieniach zaawansowanych (kliknij Więcej
, a potem Ustawienia i Serwer proxy). Domyślnie emulator korzysta z ustawień serwera proxy HTTP Androida Studio, ale na tym ekranie możesz zdefiniować ręczną konfigurację serwera proxy.
Dodano obsługę VNC dla procesora graficznego w trybie gościa, dzięki czemu można zdalnie wyświetlać i sterować emulatorem. Możesz na przykład uruchomić emulator i sprawić, że VNC będzie nasłuchiwać na porcie 5901 w ten sposób:
- Wykonaj:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
Otwórz przeglądarkę VNC, np. tightvnc viewer, aby połączyć się z portem 5901.
Aby użyć 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 stdio
Następnie wpisz
change vnc password
w konsoli i wpisz hasło.
Android O nie jest obecnie obsługiwany w trybie VNC.
- Wykonaj:
Dodaliśmy przycisk Zgłoś błąd na ekranie pomocy dotyczącej rozszerzonych elementów sterujących (kliknij Więcej
, a potem Pomoc i Pomoc dotycząca emulatora). Kliknięcie Zgłoś błąd otwiera okno, w którym możesz wyświetlić szczegóły raportu o błędzie, takie jak zrzut ekranu, informacje o konfiguracji AVD i dziennik raportu o błędzie. Możesz go zapisać lub zgłosić problemy z emulatorem.
Dodano czujnik żyroskopu do emulatora i panelu czujników wirtualnych. Wymaga to obrazu systemu z obsługą żyroskopu (obecnie poziom API 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ę macOS Hypervisor.Framework dla obrazów 32-bitowych x86 w systemie macOS 10.10 lub nowszym za pomocą flag serwera, co powinno skrócić czas rozruchu i zwiększyć wydajność.
- Jeśli wystąpią problemy, dodaj wiersz
HVF = off
w~/.android/advancedFeatures.ini
.
- Jeśli wystąpią problemy, dodaj wiersz
OpenGL ES 3.x jest teraz domyślnie włączony w przypadku obrazów systemu i procesorów graficznych hosta, które obsługują OpenGL ES 3. Obecnie OpenGL ES 3 jest obsługiwany tylko na Androidzie O (poziom API 26) oraz na hostach Windows i Linux.
- Jeśli masz problemy z OpenGL ES 3, dodaj w
~/.android/advancedFeatures.ini
wierszGLESDynamicVersion = off
.
- Jeśli masz problemy z OpenGL ES 3, dodaj w
Emulator używa teraz buforów ramki OpenGL poza ekranem do renderowania wszystkich elementów z wyjątkiem końcowego obrazu wyświetlanego, co powinno pomóc w rozwiązaniu problemów z spójnością kolorów na różnych platformach.
Po zebraniu danych o nagłych problemach ze spowolnieniem emulatora stwierdziliśmy, że problem może być związany z interakcją między starszymi sterownikami OpenGL firmy Intel a aktualizacjami systemu Windows. Dlatego użytkownicy kart graficznych Intel HD 4000, 3000, 2000 (i podobnych) mają teraz domyślnie ustawione renderowanie za pomocą renderera D3D (ANGLE) lub Swiftshader (renderera programowego).
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 nieprawidłowych konfiguracji sprzętu. Dzięki temu Google może wdrażać poprawki i funkcje zależne od konfiguracji użytkownika, aktualizując flagi po stronie serwera. Jeśli zauważysz problemy z konkretnym sprzętem, zgłoś błąd, abyśmy mogli zbadać ten problem.
- Nowa obsługa wejścia obrotowego w przypadku obrazów systemowych na Androida Wear na poziomie API 25. Aby emulować pokrętło na urządzeniu z Wear OS, w rozszerzonym oknie kliknij kartę Pokrętło.
- Okno dialogowe raportowania awarii można teraz zmieniać, a ustawienie Kiedy wysyłać raporty o awariach nie jest już resetowane do wartości Pytaj bez wprowadzania danych.
- Emulator 32-bitowy wymaga teraz, aby maksymalny rozmiar pamięci RAM AVD był mniejszy lub równy 512 MB. Ma to zapobiec wyczerpaniu się 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 ze Sklepu Google Play, która wyświetla wersję Usług Play i przycisk sprawdzania aktualizacji Usług Play.
- Dodaje menu, w którym można wybrać renderer OpenGL na stronie Ustawienia 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 innym niż Windows, spróbuj użyć programu renderującego Swiftshader (wymaga ponownego uruchomienia).
- Rozwiązuje rzadki problem z awarią przy zamykaniu, gdy emulator otrzymuje polecenia
exit
iminimize
. - Rozwiązuje problem ze skalowaniem podczas zmiany wyświetlaczy na komputerze Mac. (Problem 268296)
- Rozwiązaliśmy problem, który powodował, że emulator zużywał 300% procesora i utrzymywał ten poziom po wybudzeniu komputera hosta z trybu uśpienia lub gdy emulator działał przez dłuższy czas.
- Naprawiliśmy awarię, która występowała podczas zamykania emulatora.
Aktualizacje z 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 komputerów Mac w Menedżerze SDK. Wkrótce będzie dostępny także dla użytkowników systemu Windows.
Emulator Androida w wersji 26.0.0 obsługuje HAXM w wersji 6.1.1, która zawiera te aktualizacje:
- Umożliwia emulację jednostek monitorowania wydajności (PMU). (Problem 223377)
- Poprawki dotyczące współdziałania z VirtualBox i Dockerem na komputerach Mac. (Problem 197915)
- Zmienia komunikat o błędzie instalacji wyświetlany, gdy instalator nie wykryje technologii Intel VT-x w systemie Windows, zwykle dlatego, że jest włączona funkcja Hyper-V.
- Dodaje obsługę przyspieszania działania emulatora Androida na maszynie wirtualnej z systemem Windows opartej na Hyper-V. Ta aktualizacja wymaga, aby instancja Hyper-V hosta (ta, która zarządza maszyną wirtualną/gościem z systemem Windows) korzystała z najnowszej wersji Hyper-V z włączoną zagnieżdżoną wirtualizacją. Funkcja Hyper-V musi być wyłączona w instancji Hyper-V gościa (maszyna wirtualna 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.
- W pełni zgodny ze standardem GLES 2.0. Jeśli na komputerze hosta są zainstalowane zgodne sterowniki OpenGL, emulator przechodzi teraz 100% testów z listy
mustpass
w Android CTS dEQP-GLES2. Ta funkcja została udostępniona w przypadku obrazów x86 na poziomie interfejsu API 24 (wersja 11 i nowsze) i wkrótce będzie dostępna we wszystkich obrazach systemu. - Poprawiona wydajność odtwarzania filmów. Emulator przechowuje teraz wszystkie bufory kolorów wideo w pamięci współdzielonej hosta/gościa i wykonuje niezbędną końcową konwersję YUV na RGB na GPU. 1080p30 powinno być w zasięgu większości systemów. Ta funkcja została udostępniona w przypadku obrazów x86 na poziomie interfejsu API 24 (wersja 11 i nowsze) i wkrótce będzie dostępna we wszystkich obrazach systemu.
- Emulator prawidłowo wyrejestrowuje się z listy
adb devices
po zamknięciu i zamyka otwarte porty TCP na komputerach z systemem Linux. - Połączenia adb są teraz bardziej niezawodne. uruchomiony emulator jest wykrywany szybciej i nie przechodzi już w stan „offline” ani „nieautoryzowany”;
25.3.0 (marzec 2017 r.)
Od tej wersji Android Emulator będzie udostępniany oddzielnie od narzędzi SDK. 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ę w niektórych konfiguracjach GPU, domyślnie wyłączając GLAsyncSwap.
Ta funkcja została dodana w wersji 25.3.0, aby poprawić synchronizację klatek i liczbę klatek na sekundę w przypadku gier i filmów, ale powoduje błędy emulatora w niektórych nieznanych konfiguracjach maszyn. Możesz włączyć ją ręcznie, otwierając plik
android_sdk/emulator/lib/advancedFeatures.ini
i ustawiającGLAsyncSwap = on
.
Zależności
- Android SDK Platform-Tools w wersji 24 lub nowszej.
- Android SDK Tools w wersji 25.3.0.
Nowe funkcje i poprawki błędów
- Zaktualizowany silnik emulacji do QEMU 2.7, w tym wszystkie ostatnie poprawki błędów, ulepszenia wydajności i nowe funkcje.
- Nowa obsługa IPv6.
- Emulator używa teraz SwiftShader jako czystego oprogramowania renderującego na hoście.
- Ulepszenia wydajności Android Pipe: Android Pipe, główny kanał komunikacji między emulatorem a systemem operacyjnym Android, jest teraz o rząd wielkości szybszy, ma mniejsze opóźnienie i zapewnia lepszą wydajność wielowątkową. Dzięki temu emulator działa wydajniej, m.in.:
- Zwiększona szybkość przesyłania i pobierania danych za pomocą ADB.
- lepszą obsługę akceleracji 3D,
- Zwiększyliśmy ogólną szybkość działania emulatora.
- Poprawiona wydajność grafiki.
- Emulator używa teraz buforów po stronie procesora graficznego (glBindBuffers / glBufferData), gdy zażąda ich gość, co zmniejsza obciążenie procesora w niektórych aplikacjach.
- Ulepszona obsługa dźwięku.
- Szybsze operacje wejścia/wyjścia na dysku: emulator korzysta teraz z osobnych wątków do wysyłania operacji wejścia/wyjścia na dysku, co skutkuje mniejszymi opóźnieniami i większą przepustowością (ok. 1, 5-krotnie większa szybkość sekwencyjnych operacji wejścia/wyjścia i ok. 5-krotnie większa szybkość operacji wejścia/wyjścia z dostępem losowym). Zmniejsza to też liczbę zapisów na dysku, co znacznie obniża obciążenie urządzenia fizycznego.
- Emulator używa teraz plików rzadkich 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 2 GB lub więcej.
- Różne ulepszenia interfejsu GUI:
- Emulator korzysta teraz z Qt 5.7.0, która zawiera poprawki błędów i ulepszenia wydajności.
- Inicjowanie interfejsu nie próbuje już wczytywać wszystkich plików wykonywalnych emulatora jako wtyczek Qt, więc trwa znacznie krócej, zwłaszcza na dyskach HDD.
- Interakcje z interfejsem użytkownika są teraz szybsze i płynniejsze, w tym obracanie, zmiana rozmiaru okna oraz wczytywanie i zamykanie okna z rozszerzonymi elementami sterującymi.
OpenXR™ i logo OpenXR są znakami towarowymi należącymi do The Khronos Group Inc. i są zarejestrowane jako znaki towarowe w Chinach, Unii Europejskiej, Japonii i Wielkiej Brytanii.