Informacje o wersji emulatora

Android Emulator jest dołączony do Android Studio.

Wersje emulatora starsze niż 25.3.0 były rozpowszechniane w ramach narzędzi Android SDK.

Aby mieć pewność, że masz najnowszą wersję, sprawdź dostępność aktualizacji w Menedżerze pakietów SDK.

Poprzednie wersje Android Emulatora możesz pobrać z archiwum pobierania emulatora.

Informacje o wersjach emulatora starszych niż 25.3.0 znajdziesz w informacjach o wersjach narzędzi 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 sekcji Rozwiązywanie problemów z emulatorem.

37.2.11 Stable (29 września 2026 r.)

  • [Poprawka]Problem nr 537802959 macOS (Apple Silicon): gRPC streamScreenshot z ImageTransport MMAP powoduje awarię silnika emulatora lub nigdy nie zapisuje klatek

  • [Poprawka]Problem nr 507078580 Emulator uniemożliwia przejście macOS w tryb uśpienia

  • [Poprawka]Problem nr 506475581 Rozwiązano problem z pozostałymi zniekształceniami dźwięku i trzaskami podczas uruchamiania na macOS podczas korzystania z interfejsu audio z więcej niż 2 kanałami (sprzężenie zwrotne, wyjście wielokanałowe)

37.1.11 Stable (30 lipca 2026 r.)

  • Sterownik hypervisora Android Emulator (AEHD) zostanie wycofany 31 grudnia 2026 r. Aby ułatwić przejście, Android Studio pomaga teraz użytkownikom systemu Windows przekonwertować AEHD na platformę Windows Hypervisor Platform (WHPX). Informacje o konfigurowaniu akceleracji maszyny wirtualnej za pomocą WHPX znajdziesz w artykule Konfigurowanie akceleracji maszyny wirtualnej za pomocą WHPX.

    Wyskakujące okienko aktualizacji do WHPX

  • Dodano AVD Pixela 10a

  • Dodano obsługę nowych rozszerzeń Vulkan wymaganych do uruchamiania obrazów systemu API 37

  • [Poprawka]Problem nr 324465986 Brak komunikatu o błędzie związanym z brakiem miejsca podczas robienia zdjęcia na emulatorze, na którym nie ma miejsca

  • [Poprawka]Problem nr 526671872 Obsługa przyrostków jednostek (np. „6G”, „32M”) w przypadku konfiguracji pamięci RAM AVD i rozmiaru sterty maszyny wirtualnej w pliku config.ini

  • [Poprawka]Problem 325814592 Problem wprowadzony w systemie macOS 14, w którym emulator zaczyna się zawieszać i bardzo wolno działać po uruchomieniu kamery

36.6.11 Stable (2 czerwca 2026 r.)

  • Od interfejsu API w wersji 37 minimalna ilość pamięci (RAM) używanej przez maszynę wirtualną AVD została zwiększona do 4 GB.

    Aby sprostać większym wymaganiom dotyczącym pamięci w przypadku Androida 17 (API 37), wirtualne urządzenia z Androidem (AVD) na telefony wymagają teraz co najmniej 4 GB pamięci RAM. Jeśli AVD ma mniej pamięci, emulator automatycznie zastąpi to ustawienie, aby przydzielić co najmniej 4 GB, co zapobiegnie potencjalnym problemom w czasie działania.

  • Dodaliśmy do emulatora tryb kamery „środowisko”, który umożliwia konfigurowanie wirtualnych teł sceny. Sceny te są zdefiniowane w pliku environment.ini AVD i można je dynamicznie ponownie wczytywać w czasie działania.

  • Rozwiązaliśmy problem, który powodował, że podgląd zrzutu w samodzielnym emulatorze nie był czyszczony po usunięciu zrzutu.

  • [Poprawka]Problem nr 506475581: dźwięk z emulatora jest mocno zniekształcony w systemie macOS podczas korzystania z interfejsu audio z więcej niż 2 kanałami (sprzężenie zwrotne, wyjście wielokanałowe).

  • [Poprawka]Problem nr 516455370 Naprawiono poważny wyciek pamięci w systemie macOS 26.3 podczas zamykania emulatora. Problem był związany z czyszczeniem zasobów używanych przez interfejsy API Hypervisor.framework.

Poprawka 36.5.11 (23 kwietnia 2026 r.)

  • [Poprawka]Problem 492228020: emulator Androida wyświetla czarny ekran podczas korzystania z renderowania grafiki sprzętowej lub automatycznej na procesorze graficznym Intel

36.5.10 Stable (2 kwietnia 2026 r.)

Ta aktualizacja zawiera te funkcje i poprawki błędów:

Testowanie interakcji na wielu urządzeniach za pomocą emulatora Androida

Emulator Androida ma teraz nowy stos sieciowy, który ułatwia testowanie na wielu urządzeniach. Nie musisz już ręcznie przekierowywać portów, aby połączyć wiele instancji AVD na tym samym hoście. AVD mogą teraz automatycznie wykrywać się nawzajem i komunikować się ze sobą tak, jakby były w tej samej sieci wirtualnej. Umożliwia to bezproblemowe testowanie interakcji peer-to-peer za pomocą protokołów takich jak Wi-Fi Direct i Network Service Discovery.

Nowy stos sieciowy oferuje deweloperom kilka kluczowych zalet:

  • Brak konfiguracji: nie musisz już ręcznie przekierowywać portów ani pisać skryptów poleceń adb.
  • Bezproblemowa komunikacja P2P: kluczowe protokoły, takie jak Wi-Fi Direct i Network Service Discovery, działają od razu po wyjęciu z pudełka między emulatorami.
  • Większa stabilność: rozwiązuje długotrwałe problemy ze stabilnością, takie jak utrata danych (problem nr 150758736) i przerwy w połączeniu (problem nr 449817856) występujące w starszej wersji.

Aby rozpocząć, zaktualizuj Android Emulator do najnowszej wersji w narzędziu SDK Manager w Androidzie Studio. Więcej informacji znajdziesz w dokumentacji dostępnej tutaj.

Dodatkowe funkcje i poprawki błędów

  • Dodano nowe wirtualne urządzenia z Androidem, w tym Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL i Pixel 10 Pro Fold.

  • Wyświetlanie kamer internetowych pod przyjaznymi nazwami i rozwiązanie problemu w systemie Linux, który powodował, że emulator nie wykrywał i nie wyświetlał wszystkich podłączonych kamer internetowych.

  • [Poprawka]Problem nr 333628462: proces crashpad_handler zużywa nadmierną ilość procesora w systemie macOS

Poprawka 36.4.10 (9 marca 2026 r.)

  • [Poprawka]Problem nr 489369080 Naprawiono awarię na emulatorze telewizora podczas najeżdżania kursorem po aktualizacji do wersji Panda 2

36.4.9 Stable (10 lutego 2026 r.)

  • Aby uprościć wybór GPU w interfejsie, rozszerzone elementy sterujące w emulatorze Androida zawierają teraz konkretne opcje sprzętowe i programowe. Użytkownicy wiersza poleceń mogą teraz używać opcji „-gpu software”, aby wybrać najlepsze dostępne oprogramowanie GLES i Vulkan do renderowania na swoim systemie.

  • Włączono Lavapipe jako domyślny program do renderowania grafiki, aby poprawić zgodność z interfejsem Vulkan na wszystkich platformach.

  • Ulepszenia interfejsu Vulkan:

    • Zaktualizowano program ładujący Vulkan dołączony do emulatora.
    • Naprawiono różne nieprawidłowe przypadki użycia w przypadku backendu Vulkan
    • Dodano obsługę SkiaVk w interfejsie systemowym z emulacją kolejki graficznej w nowych obrazach systemu
    • Dodaliśmy obsługę kompozycji Vulkan, aby wyłączyć użycie GL na hoście. Jest ona domyślnie włączona w przypadku obrazów XR i można ją włączyć za pomocą opcji wiersza poleceń „-feature VulkanNativeSwapchain”.
  • [Poprawka]Problem 471008659: wyciek pamięci po stronie hosta emulatora podczas otwierania i zamykania aktywności.

36.4.3 Canary (8 grudnia 2025 r.)

Nowy emulator okularów AI

Dodaliśmy nowy, eksperymentalny emulator okularów z AI do tworzenia i testowania aplikacji opracowanych za pomocą pakietu Jetpack XR SDK dla okularów z AI. Możesz uruchomić emulator okularów razem z emulatorem telefonu, sparować je i wykonywać typowe interakcje, które przeprowadzasz na okularach. Więcej informacji o instalowaniu emulatora okularów AI i konfigurowaniu środowiska deweloperskiego znajdziesz w artykule Tworzenie wirtualnych urządzeń – okularów AI.

Emulator okularów AI to narzędzie eksperymentalne. Możesz napotkać problemy, zwłaszcza podczas ponownego parowania okularów z emulatorami telefonów i interakcji z interfejsem touchpada.

Nowy emulator okularów XR

Rozszerzyliśmy wprowadzony wcześniej emulator Androida XR o okulary XR OST (Optical See-Through). Możesz użyć emulatora okularów XR, aby wyświetlić podgląd aplikacji z przybliżonym polem widzenia i rozdzielczością okularów XR. Więcej informacji o instalowaniu emulatora okularów XR i konfigurowaniu środowiska programistycznego znajdziesz w artykule Tworzenie wirtualnych okularów XR.

Emulator okularów XR i emulator okularów AI to narzędzia eksperymentalne. Możesz napotkać problemy, zwłaszcza w przypadku niektórych konfiguracji procesora graficznego i sterownika w systemie Windows (patrz wymagania systemowe dotyczące systemu Windows).

Znane problemy

Twoja opinia pomoże nam ulepszyć tę funkcję i określić priorytety w przyszłości. Więcej informacji o zgłaszaniu błędów związanych z Androidem Studio lub Android Emulatorem znajdziesz w artykule Zgłaszanie błędów.

36.3.10 – wersja stabilna (4 grudnia 2025 r.)

  • [Poprawka]Problem 452843321: obniżona wydajność podczas przesyłania dużych plików do emulatora na Androidzie API 34 i nowszym.

  • Naprawiono awarie kompozycji Vulkan, gdy kodeki wideo działają w trybie tekstury GPU.

  • Naprawiono awarie emulatora podczas zdarzenia na ekranie dotykowym, gdy jest on uruchomiony z parametrem -debug-events.

Poprawka 36.2.12 (13 października 2025 r.)

  • Naprawiono awarię w systemie Windows, która występowała podczas uruchamiania aplikacji Vulkan w trybie renderowania programowego.

Wersja stabilna 36.2.11 (9 października 2025 r.)

  • Obsługa funkcji HAXM zostanie usunięta z emulatora. Jeśli spróbujesz utworzyć AVD za pomocą HAXM, zobaczysz baner z informacją o braku hiperwizora i linkiem do działania umożliwiającym zainstalowanie AEHD.

    Baner wyświetlany, gdy użytkownik próbuje utworzyć nowy AVD z HAXM

    Informacje o odinstalowywaniu HAXM znajdziesz w sekcji Odinstalowywanie HAXM.

  • Poprawka zapewniająca, że procesor graficzny Intel używa OpenGL ES 3.0, aby uniknąć awarii sterownika

  • [Poprawka]Problem nr 340322888 Nie można uruchomić AVD, gdy na urządzeniu nie ma wolnego miejsca

  • [Poprawka]Problem nr 150758736 Sporadyczna utrata 1 bajta danych w połączeniach TCP w emulatorze

  • [Poprawka]Problem nr 434774381: jądro gościa ulegało awarii po szybkim uruchomieniu w przypadku interfejsu API 36 i 35 (a może i innych) w systemie Windows 11 z użyciem WHPX na procesorze i7-11850H

36.1.9 Stable (31 lipca 2025 r.)

  • [Poprawka]Problem nr 419157428: znaki UTF-8 w nazwie użytkownika lub w ścieżce AVD mogą uniemożliwiać uruchomienie emulatora.

  • [Poprawka]Problem 423670833: awaria emulatora Androida w systemie plików btrfs

  • Uwaga: jeśli masz problemy z uruchomieniem emulatora w X11, rozważ użycie renderowania programowego. Informacje o tym, jak skonfigurować renderowanie oprogramowania, znajdziesz w artykule Konfigurowanie akceleracji grafiki.

35.6.11 Stable (24 czerwca 2025 r.)

  • Ulepszyliśmy obsługę procesorów graficznych AMD i Nvidia w systemach Windows i Linux w przypadku emulacji XR.

  • Wirtualne urządzenie XR można uruchomić jako wbudowane w okna Androida Studio.

  • Ulepszenie szczegółów raportu o awarii w systemie Windows, aby umożliwić pełny zrzut emulatora

  • [Poprawka]Problem nr 410485043 Android Emulator urządzenia z XR ulega awarii z powodu błędu Vulkan

  • [Poprawka]Problem nr 388718417: biblioteka libndk_translation.so przerywa działanie i powoduje awarię w funkcji Arm64AesEncode

35.5.10 – wersja stabilna (6 maja 2025 r.)

  • Dodano dodatkowe testy zgodności procesora z komunikatami o błędach (np. niewystarczająca ilość miejsca na dysku).

  • Naprawiono błędy związane z zarządzaniem pamięcią Vulkan i nieprawidłowymi przypadkami użycia.

  • Obsługa zrzutów 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, w którym można określić preferencje sterownika GLES gościa.

  • [Poprawka]Problem nr 389330750: wysyłanie SMS-a do emulatora ze znakiem Ñ powoduje podział 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 – wersja stabilna (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 356896486: całkowite wyłączenie wywołań interfejsu Vulkan API podczas uruchamiania z parametrem -feature -Vulkan

35.4.4 Canary (12 grudnia 2024 r.)

Nowy emulator Androida XR

Dodaliśmy nowy, eksperymentalny emulator Androida XR do tworzenia i testowania aplikacji opracowanych za pomocą pakietu SDK Jetpack XR 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 procesora graficznego i sterownika systemu 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 określać 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
  • Co najmniej 8 rdzeni

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 Platform (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 danych wejściowych i wyjściowych:

  • 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 powrotem) za pomocą myszy i klawiatury.

  • Niestabilność wejścia 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 wpisywane są 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 w przypadku niektórych konfiguracji systemu Windows. Prawdopodobne obejście: włączenie WHP.

Emulator – symulacja samolotów i kotwic:

  • Kotwice czasami nie pojawiają się ponownie w pobliżu tej samej lokalizacji
  • Przesuwane panele nie mogą być przytwierdzone do ścian ani sufitu
  • Symulowane płaszczyzny nie pasują do fizycznego układu pomieszczenia 3D w trybie przekazywania
  • Ogólnie ograniczone obszary, w których można zakotwiczyć obiekty w pokoju wirtualnym
  • Mały widoczny artefakt w widoku otoczenia w systemie Windows
  • W niektórych przypadkach umieszczanie kotwic może spowodować 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 „standalone”. Tryb „Wbudowany” (wbudowany 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 okna może zniknąć jego zawartość (obejście: naciśnij przycisk „Home”).
  • W aplikacji JXRCore ActivityPanelTest panel dodatkowy nie jest początkowo wyświetlany
  • Elementy szybkich ustawień mogą po dłuższym czasie zniknąć z ustawień systemu.
  • Interfejs emulatora może początkowo pojawić się poza obszarem ekranu. Jeśli tak 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 przy użyciu rozszerzonych ustawień Androida Studio w systemie Windows
  • Ikona „Wstecz” 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 udać, gdy moduł „Profil podstawowy” 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 Scene Viewer 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, klawiszy WASD itp.).
  • Funkcja rzeczywistego rozmiaru 1:1 nie będzie działać prawidłowo, jeśli rzeczywisty rozmiar modelu 3D jest mniejszy lub większy niż minimalne i maksymalne limity skali (obecnie ustawione odpowiednio na 20 cm i 70 m).
  • Model 3D może przeskoczyć na pierwszą klatkę po załadowaniu.

35.2.10 (1 października 2024 r.)

  • Dodano nowe 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ę systemu Windows w przypadku aplikacji korzystających z interfejsu Vulkan

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 reklamodawców

34.2.14 (20 maja 2024 r.)

Testowane w Androidzie Studio Jellyfish Stable Patch 1.

  • [Poprawka] Migawka czasami zawiesza się w przypadku wbudowanego emulatora
  • [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 niektórych przypadkach uniemożliwiał uruchomienie emulatora w trybach 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 poleceń 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 polecenia -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 API Map Google używanymi w funkcjach lokalizacji w ustawieniach zaawansowanych emulatora, które zostaną wprowadzone pod koniec maja.
  • Poprawki poważnych błędów
  • 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 312677259: rozwiązaliśmy problem z zawieszaniem się ekranu w emulowanym urządzeniu po zmianie rozmiaru okna.

34.1.18 (29 lutego 2024 r.)

Testowane w stabilnej wersji Androida Studio Iguana.

  • Do emulatora dodano te urządzenia:
    • 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 instrumentowanych uruchamianych w emulatorze, co umożliwia testowanie realistycznych scenariuszy. Ta funkcja umożliwia deweloperom bezpieczne korzystanie z punktu końcowego gRPC hostowanego przez Android Emulator 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ązaliśmy problem z kamerą internetową w emulatorze, który uniemożliwiał nagrywanie ekranu w formacie MP4.
  • Rozwiązano problem z awarią emulatora na wirtualnym urządzeniu Pixel Fold po rozłożeniu podczas nagrywania ekranu.
  • Rozwiązaliśmy problem, który powodował, że Pixel Fold wyświetlał inną skórkę telefonu z odłączoną klawiaturą i nie można było go używać (problem został rozwiązany w systemach Windows, Mac Intel i Linux).
  • Naprawiono błąd w wyglądzie wirtualnych czujników w trybie samodzielnym (naprawiono w systemach Windows, Mac Intel i Linux).
  • Poprawiono niektóre błędy powodujące 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. Dodatkowo wprowadzamy obsługę interfejsu Vulkan 1.3, począwszy od obrazu systemu z interfejsem API 34.
  • Prośba o dodanie funkcji: opcja wyłączenia gestu uszczypnięcia w celu powiększenia lub ponownego przypisania skrótu klawiszowego
  • [Poprawka] Problem nr 302562962 Naprawiono awarię kamery internetowej w emulatorze 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 Naprawiono błąd animacji, który powodował, że po zminimalizowaniu ekranu AVD pasek boczny pozostawał otwarty.
  • [Poprawka] Problem nr 154896775 Naprawiono narzędzie do przesyłania zgłoszeń 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: SMS-y w języku hebrajskim nie są wysyłane w przypadku interfejsu API 33
  • [Poprawka] Problem 257097404: emulator nie wyświetla prawidłowego czasu po wybudzeniu hosta w przypadku interfejsów API 29 i 30
  • [Poprawka błędu] Problem nr 228201899: nie można wyświetlić Map Google w rozszerzonych elementach sterujących Android Emulator

32.1.14 (27 czerwca 2023 r.)

Testowane 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 w wersjach 29 i 30.
  • [Poprawka] Problem nr 243456582 „Wersje Androida po API 30 mogą nie uruchamiać się prawidłowo w emulatorze na komputerach Mac M1”

32.1.13 (22 maja 2023 r.)

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 wersji 30 nie działa na procesorze Intel 12. generacji”.
  • [Poprawka] Problem 275397905: duża liczba awarii na emulatorze Androida M1 podczas wielokrotnego przenoszenia 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 Androidzie 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 270034824: wydajność emulatora spadła po aktualizacji do wersji 33.1.1
  • [Poprawka] Problem nr 225541819: uruchamianie Chrome powoduje awarię emulatora na platformie x86_64
  • [Poprawka] Problem nr 257097404: po wybudzeniu hosta emulator nie wyświetla prawidłowego czasu
  • 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 umieszczonym emulatorze
  • Ulepszenia dotyczące 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 Androidzie 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.

31.3.12 (10 października 2022 r.)

Testowane w Android Studio Dolphin i Electric Eel Beta 1.

Ta aktualizacja zawiera następujące 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 następujące 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 „przyklejania” dotyku w AVD powodujący problemy z działaniem interfejsu
  • [Poprawka] Błąd podczas uruchamiania AVD z interfejsem API 33 na komputerze Mac z procesorem M1.
  • [Poprawka] Problem nr 243053479: niska szybkość sieci po zaktualizowaniu 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 Android Emulatora do minigbm
  • Migracja skryptów kompilacji do Pythona 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 z najnowszą stabilną wersją lub ulega ona awariom, zgłoś błąd i rozważ pobranie działającej wcześniej wersji z archiwum pobierania emulatora.

Ta aktualizacja zawiera następujące ulepszenia i poprawki:

  • Lepsza obsługa ścieżek Unicode w systemie Windows
  • Lepsza obsługa zamykania emulatora, dzięki czemu nowe uruchomienie tego samego AVD może się powieść.
  • Zaktualizowany projekt składanego 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ę uwierzytelnianie 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 następujące 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ądzeniach z procesorem M1

31.2.8 (7 lutego 2022 r.)

Testowane w Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.

Ta aktualizacja zawiera następujące ulepszenia i poprawki:

  • [Poprawka] Nie można zalogować się w aplikacjach
  • [Poprawka] Problem nr 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 następujące ulepszenia i poprawki:

  • Dodaliśmy przyciski do zegarka w emulatorze Wear OS.
  • Umożliwiliśmy edytowanie wszystkich właściwości pojazdu na karcie VHAL.
  • [Poprawka] 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 zdarzeń nie działało.
  • Dodano sprawdzanie KVM w przypadku tworzenia lokalnych urządzeń AVD.

31.1.3 (18 stycznia 2022 r.)

Ta aktualizacja zawiera następujące 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 unicast na podstawie adresu MAC MAT.
  • Wi-Fi: naprawiono awarię, która występowała, gdy używano vmnet.

30.9.5 (15 grudnia 2021 r.)

Ta aktualizacja zawiera następujące ulepszenia i poprawki:

  • Dodano możliwość łatwego zmiany rozmiaru okna na rozmiar komputera lub tabletu.
  • 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 następujące ulepszenia i poprawki:

  • macOS: rozwiązano problemy z zniekształceniem dźwięku wejściowego.
  • Dodaliśmy obsługę virtio-vsock w przestrzeni użytkownika.
  • Przyszłe obrazy systemu będą używać virtio-console do logcat i komunikatów jądra.
  • 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: dodano obsługę kompilacji z użyciem pakietu SDK macOS 11.1 lub nowszego.
  • KVMclock jest domyślnie włączony w nowszych obrazach systemu.
  • Dodaliśmy 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 zawiasów 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 gotowymi ustawieniami urządzeń składanych. Poniższy kod można na przykład zastosować w pliku config.ini składanego urządzenia wirtualnego o przekątnej 7,3 cala:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=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 i 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 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 GPU hosta libEGL/libGLESv2, zastępując nimi lib64/gles_swiftshader, a następnie ponownie uruchamiając za pomocą -gpu swiftshader_indirect. Zrzuty mogą też nie działać (dodaj -no-snapshot do wiersza poleceń). Instrukcje:

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

obsługa virtio-gpu,

  • Dodaliśmy obsługę po stronie hosta dla nadchodzących zasobów blobów spójnych z hostem 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 rozszerzonych ustawień został wybrany przez użytkownika.
  • Emulator systemu Linux 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, co zapewnia zgodność 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 osadzonego 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 elementy sterujące > 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ąc NoDeviceFrame = 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 połączeń mierzonych. W przypadku starszych obrazów systemu, które nie obsługują przełącznika połączeń mierzonych w sieci 5G, ta funkcja nie działa.

    • Dodano też polecenie konsoli do tego samego celu: gsm meter on|off
  • Uaktualniono łańcuch narzędzi i kompilację do C++17.

Poprawki: wbudowany emulator

  • Schowek powinien teraz działać.
  • Rozwiązaliśmy problem, który powodował, że w emulatorze wielkie litery były wyświetlane jako małe.
  • Naprawiono wczytywanie tokena konsoli ze ścieżki Unicode w systemie Windows.
  • Usunęliśmy komunikat o błędzie SO_REUSEPORT w systemie Linux.
  • Rozwiązaliśmy problem z uszkodzeniem migawki podczas wysyłania poleceń migawki za pomocą gRPC, a także podczas naciskania przycisku zapisywania migawki w emulatorze osadzonym w 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. Może to spowodować, że wbudowany emulator nie będzie się wyświetlać, ponieważ pliki wykrywania emulatora są umieszczane w katalogu XDG_RUNTIME_DIR. Stan odpowiedniego problemu możesz sprawdzić 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/&lt;uid>.

  • Wbudowany emulator: urządzenia z zaokrąglonymi rogami lub wycięciami będą teraz prawidłowo zmieniać układ, aby uwzględnić te elementy. 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.
  • Naprawiono błąd FD_SETSIZE w systemie Windows. Do nawiązywania nieblokujących połączeń z serwerami zwrotnymi używamy teraz WSAEventSelect() zamiast select().
  • Dodaliśmy obsługę funkcji CPUID F16C w emulatorze Linuksa, co rozwiązuje problemy z uruchamianiem niektórych aplikacji ARM64 za pomocą tłumaczenia NDK. Prace nad macOS i Windows trwają.
  • 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 i hw.audioOutput=no w config.ini, emulator audio jest teraz prawidłowo wyłączony.
  • Rozwiązaliśmy problem, który powodował, że jeśli okno emulatora było zminimalizowane, a okno sterowania rozszerzonego było otwarte, ale nieaktywne, to po zmianie rozmiaru okna emulatora okno sterowania rozszerzonego nadal się pojawiało. W przyszłej aktualizacji całkowicie usuniemy to zachowanie (przypadek z aktywnym oknem rozszerzonych ustawień).
  • Rozwiązaliśmy problem z niestabilnym działaniem, który powodował, że po uruchomieniu emulatora nie było połączenia z Wi-Fi.
  • Rozwiązaliśmy problem z zawieszaniem się przy zamykaniu, gdy emulator wydaje polecenia powłoki z długimi lub nieokreślonymi limitami czasu.
  • Zaktualizowano pc-bios, aby lepiej obsługiwać duże obrazy przekazywane do -initrd; poprzedni BIOS używał bardzo nieefektywnej metody.
  • Naprawiono awarię podczas zamykania, gdy używana jest opcja -wifi-server-port.
  • Emulator wyświetla teraz ostrzeżenie, jeśli do -prop (obsługiwane są tylko właściwości qemu.*) zostaną przekazane nieobsługiwane opcje.
  • Podczas kompilowania emulatora w systemie Windows powinno być mniej przypadków niepowodzenia 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ł uruchamiać najnowszych obrazów systemu bez akceleracji.
  • Naprawiono uszkodzenie pamięci lub awarię podczas uruchamiania z detektora zakoń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 sytuacją wyścigu podczas zamykania stanu Vulkana, gdy aplikacja gościa korzystająca z Vulkana została zamknięta.
  • Cieniowania emulacji Vulkan ASTC/ETC2 są teraz wbudowane w bibliotekę libOpenglRender. Będzie to bardziej niezawodne niż odczytywanie z systemu plików.
  • Rozwiązaliśmy problem w interfejsie Vulkan, który powodował, że w przypadku uruchomienia instancji Vulkan 1.0 na hoście funkcja vkGetImageMemoryRequirements2KHR nieprawidłowo czyściła pole pNext zwróconej struktury VkMemoryRequirements2.
  • Naprawiono wyciek pamięci w programie renderującym Vulkan.
  • Usunięto niedawną regresję, która powodowała, że nie można było skompilować shaderów GLSL ES 1.00 z nazwami zmiennych takimi jak isampler2D.
  • Zaktualizowano translator cieniowania ANGLE, wprowadzając różne poprawki, które rozwiązują problem z możliwym niepowodzeniem kompilacji cieniowania 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 upraszczania shaderów OpenGL ES, które używały macierzy niekwadratowych. Tłumacz shaderów jest teraz osobną biblioteką udostępnioną libshadertranslator.dll.
  • Rozwiązaliśmy problem z inicjowaniem interfejsu Vulkan na niektórych sterownikach 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 typ wyliczeniowy nie był obsługiwany na hoście.
  • Rozwiązaliśmy problem, który powodował, że na niektórych procesorach graficznych hosta nie można było skompilować 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 na potrzeby debugowania do inicjowania WGL w systemie Windows, aby śledzić błędy.
  • Gdy hw.gltransport=virtio-gpu-pipe, wydajność jest zwiększana przez brak obracania się na hoście podczas przesyłania danych z hosta do gościa.
  • Dodano więcej informacji do logowania 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 skrótów oraz organizować przepływ pracy w IDE i emulatorze w jednym oknie aplikacji.

Tryb okna o dowolnym rozmiarze

Możesz teraz utworzyć AVD z włączonym trybem okna swobodnego, wybierając profil sprzętowy tabletu 13,5-calowego w trybie okna swobodnego podczas tworzenia urządzenia wirtualnego w Android Studio. Ten profil sprzętowy wymaga obrazu systemu z Androidem 11 w wersji przedpremierowej dla programistów 3 lub nowszej.

Znane problemy

Zmiana rozmiaru okien o dowolnym kształcie jest obecnie niemożliwa 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 zawiera obrazy systemu Android 11 (poziom interfejsu API 30) i poprawia 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 była zależna od plików binarnych ARM, teraz możesz używać obrazu systemu Android 9 x86 lub dowolnego obrazu systemu Android 11, aby uruchamiać aplikację. 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 aplikacji na architekturę ARM64.

29.0.11 (29 maja 2019 r.)

Ta aktualizacja zawiera następujące ulepszenia i poprawki:

  • Windows: emulator korzysta teraz z biblioteki DLL libgcc, którą dostarczamy, zamiast być statycznie kompilowany z biblioteką libgcc.
  • 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.
  • Teraz możesz określać niestandardowe ścieżki biblioteki Qt za pomocą ANDROID_QT_LIB_PATHzmiennej środowiskowej.
  • Teraz możesz uruchomić 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 blokowego. 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, który powodował, że wirtualna kamera sceny i kamera internetowa nie działały na emulatorze.

29.0.8 (6 maja 2019 r.)

Ta aktualizacja zawiera następujące ulepszenia i poprawki:

  • Dodano obsługę wielu wirtualnych wyświetlaczy sprzętowych, gdy usługa gościa może wyliczać i ustawiać każdy wyświetlacz. W przyszłej aktualizacji obrazu systemu emulatora zostanie dodanych kilka wirtualnych wyświetlaczy sprzętowych.
  • Dodaliśmy nową opcję wiersza poleceń: -delay-adb. Ta opcja wstrzymuje przetwarzanie pakietów ADB, dopóki system gościa nie zakończy uruchamiania (po zimnym rozruchu). 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 glIsRenderbufferzwracało nieprawidłową wartość.
  • Rozwiązaliśmy niektóre problemy ze stanem nieaktualnym, gdy gość Androida ponownie uruchamia się.
  • Windows: rozwiązaliśmy problemy, które uniemożliwiały uruchomienie emulatora, gdy nazwa użytkownika w systemie 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 do publikacji) lub nowszej.

Ulepszenia w ramach Project Marble

Ta aktualizacja jest kontynuacją naszych prac nad Project Marble, które ogłosiliśmy w listopadzie 2018 r. podczas Android Developer Summit. 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ą uwzględnione w tej aktualizacji:

Ulepszenia dotyczące zachowania dźwięku hosta

Od wersji 28.0.3 emulator domyślnie blokuje dane wejściowe audio z hosta.

Jeśli chcesz używać danych audio hosta, możesz włączyć tę opcję, klikając Sterowanie rozszerzone > Mikrofon i włączając Wirtualny mikrofon korzysta z danych audio hosta. Ta opcja jest automatycznie wyłączana przy każdym ponownym uruchomieniu emulatora.

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

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Ulepszenia kompilacji emulatora bez interfejsu

Od wersji 28.0.25 emulator zawiera opcję kompilacji bez interfejsu, która może działać bez interfejsu. Możesz używać kompilacji bez interfejsu, aby skonfigurować emulator na potrzeby Docker i przepływów pracy ciągłej integracji (CI).

W tej aktualizacji wprowadziliśmy dalsze ulepszenia, aby umożliwić działanie emulatora przy minimalnej liczbie zależności. W systemie Linux kompilacje bez interfejsu graficznego 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

Uaktualniono 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 systemu, emulator używa teraz własnej kopii libpng do dekodowania obrazów PNG.
  • Aby rozwiązać problemy z niektórymi instalacjami Linuksa zawierającymi niezgodne wersje niektórych bibliotek zależnych od Qt, dołączamy teraz do emulatora biblioteki libfreetype, libsoftokn, libsqlite3 i libxkbcommon.
  • Emulator korzysta teraz z natywnych bibliotek okien platformy, aby uzyskać wymiary monitora, zamiast 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 na wyłączenie ekranu, dzięki czemu emulatora można używać w trybie bateryjnym bez ładowania. W trybie baterii wykorzystanie procesora w tle jest znacznie ograniczone.
W trybie ładowania AC operacje w tle GMSCore, takie jak aktualizacje aplikacji, mogą wykorzystywać wszystkie rdzenie procesora urządzenia, a tym samym komputera użytkownika, bez ostrzeżenia.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
To polecenie cofa uprawnienia mikrofonu w aplikacji wyszukiwarki Google, co znacznie zmniejsza zużycie procesora w tle na ekranie głównym i w programie uruchamiającym, gdy aplikacja wyszukiwarki Google jest aktywna.
To polecenie jest wykonywane oprócz domyślnego działania emulatora, czyli wyłączania dźwięku hosta. Ponadto 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ększe zacinanie się (wypadanie klatek) niż w przypadku użytkowników systemów macOS i Linux.

Ogólne ulepszenia w ramach 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ócono obsługę wirtualnego urządzenia sieciowego e1000 w głównej wersji 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 macOS przez zastąpienie głównej pętli opartej na select() pętlą opartą na kqueue.
  • 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 ustawieniach regionalnych.
  • Możesz teraz śledzić wykorzystanie procesora i pamięci RAM przez emulator, korzystając ze statystyk wydajności, do których dostęp uzyskasz w sekcji Rozszerzone elementy sterujące > 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.
  • Dodaliśmy obsługę rozszerzeń OpenGL ES GL_EXT_texture_format_BGRA8888i GL_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 niepowodzenia inicjowania OpenGL lub hipernadzorcy.
  • 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 starych plików.
  • W przypadku przyszłych obrazów systemu emulator obsługuje teraz Hardware Composer 2.0. Ta zmiana powinna zmniejszyć obciążenie sterownika podczas uruchamiania większości animacji.
  • Kompilacja emulatora jest teraz oparta na CMake/Ninja.
  • W interfejsie rozszerzonych elementów sterujących emulatora przywrócono linie podziału w tabeli skrótów klawiszowych.
  • Użytkownicy mogą teraz wyrazić zgodę na przekazywanie naszemu zespołowi danych o użyciu procesora i pamięci RAM w 10-sekundowych odstępach. Używamy tych danych do wzbogacania informacji o wykorzystaniu zasobów emulatora o różne przypadki użycia przez naszych użytkowników, co pozwala nam 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 wyświetlanymi 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, który powodował, ż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ńczoność i zajmowało cały rdzeń procesora.
  • Rozwiązaliśmy problemy z dostępem do pamięci poza zakresem podczas przetwarzania skompresowanych tekstur.
  • Rozwiązaliśmy 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 przy uruchamianiu, które występowały z powodu utraty sygnałów przez Qt lub niestabilnych, niespójnych stanów przy uruchamianiu.
  • Rozwiązano liczne problemy z współbieżnością. Teraz możemy 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: na niektórych jądrach hosta jądro Androida gościa może zgłaszać błędy i zamykać się w KVM z ogólnym błędem sprzętowym. Gdy tak się stanie, emulator abort(), aby zwiększyć możliwości debugowania (wcześniej emulator po prostu się zawieszał).
  • Użytkownicy systemu Linux: aby ułatwić konfigurację CI, możesz użyć nowej opcji wiersza poleceń -stdouterr-file <file-name>, aby przekierować zarówno stdout, jak i stderr 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 warunkami wyścigu.
  • Naprawiono błąd, który występował w przypadku niektórych wzorców zapisywania i wczytywania zrzutów z interfejsu zrzutów przy użyciu najnowszych obrazów systemu Android Q.
  • Rozwiązaliśmy problem, który powodował, że kamera wirtualnej sceny była pusta, gdy emulator był inicjowany 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 z konfiguracją pulpitu zdalnego 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, który powodował, że przyciski obracania pojawiały się na wirtualnych urządzeniach z Androidem TV.
  • 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 na urządzenia składane

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, korzystając z jednego z tych profili sprzętowych, możesz złożyć i rozłożyć urządzenie, używając 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 pomagają testować typowe działania AR. Możesz na przykład użyć makra, aby zresetować wszystkie czujniki urządzenia do stanu domyślnego.

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

Obsługa 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ą wersje sdk_phone_x86 lub sdk_phone_x86_64 (userdebug, eng) na gałęzi AOSP master, 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. Wciąż brakuje wielu rozszerzeń. Pamięć HOST_COHERENT jest jednak obsługiwana i powinno być teraz możliwe uruchomienie przykładowych programów z samouczka dotyczącego interfejsu Vulkan API.

Jeśli używasz Linuksa, 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

Procesory 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 nowszy):

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

HAXM może czasami nie mapować spójnej pamięci Vulkan na gościa i wyłączać emulator. Ten problem zostanie rozwiązany w najbliższej aktualizacji HAXM.

Emulator przesyłania strumieniowego gRPC (Linux)

Nieustannie 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ą te problemy:

  • Programowe wysyłanie poleceń wejściowych do emulatora polega na uruchamianiu poleceń powłoki adb, które mogą powodować duże obciążenie, lub na korzystaniu 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ą widocznego lub interaktywnego ekranu.
  • 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 uruchomiony 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 graficznego. W przypadku interaktywności 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 akcelerowanym przez GPU renderowaniem, 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 interaktywność zdalną za pomocą zrzutów ekranu i wywołań RPC. Ten przykład wymaga protokołu buforów 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 następujące ulepszenia i poprawki:

Kompilacja emulatora bez interfejsu graficznego

Konfiguracja emulatora w Dockerze i innych procesach ciągłej integracji (CI) była trudna ze względu na domniemane oczekiwania, że system będzie w stanie 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 ciągiem emulator-headless. Więcej informacji znajdziesz w aktualizacji wersji 28.1.8 Canary.

  • Rozwiązaliśmy problem z drganiem i nieprawidłowym wyświetlaniem klatek na kartach 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 „vCPU shutdown request”, 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 z migawki”.
  • Użytkownicy mieli 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 pakietu platform-tools w wersji 28.0.2 z emulatorem. Jeśli masz problemy z „nieautoryzowanymi” emulatorami, wykonaj te czynności:
    1. Zamknij wszystkie emulatory.
    2. Usuń pliki ~/.android/adbkey i ~/.android/adbkey.pub.
    3. Uruchom to polecenie: adb kill-server
    4. Uruchom to polecenie: adb devices
    5. Wyczyść dane AVD.
    6. Uruchom ponownie emulator.

28.0.23 (29 stycznia 2019 r.)

Ta aktualizacja zawiera następujące ulepszenia i poprawki:

Domyślnie wyłączone dane wejściowe audio hosta

W ostatnim poście na Reddicie opisano, jak gościnny system operacyjny Android zawsze używa dźwięku z mikrofonu hosta, co powoduje nieoczekiwane działanie funkcji „OK Google”. Przepraszamy za to i skontaktujemy się z zespołem Androida, aby upewnić się, że wykrywanie słów aktywujących jest wyłączone również w obrazie systemu.

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

  • Rzeczywiste dane audio hosta są teraz domyślnie wyciszane. Gdy gość używa mikrofonu, zamiast dźwięku gospodarza przekazywana jest cisza.
  • Jeśli chcesz używać danych audio hosta, możesz teraz włączyć tę opcję, wybierając Sterowanie rozszerzone > Mikrofon i włączając Wirtualny mikrofon używa wejścia audio hosta. Ta opcja jest automatycznie wyłączana przy każdym ponownym uruchomieniu emulatora.

Aktualizacje dotyczące analiz wykorzystania procesora

Podczas naszych badań w ramach projektu Marble zauważyliśmy, że wysokie wykorzystanie procesora na emulatorze zwykle dzieli się na te 3 kategorie:

W trybie bezczynności: automatyczne aktualizacje aplikacji w Sklepie Play

Wykryliś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 GMSCore i dex2oat. Możesz temu zapobiec, wyłączając automatyczne aktualizacje aplikacji w Sklepie Play.

W stanie 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 kluczowych, 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 dźwięku 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. Odkryliśmy, że optymalizacja stosu sterowników graficznych może zmniejszyć wykorzystanie procesora nawet wtedy, gdy emulator nie jest bezczynny. W ramach Projektu Marble będziemy stopniowo wdrażać optymalizacje sterowników graficznych.

28.0.22 (21 grudnia 2018 r.)

Ta aktualizacja zawiera następujące 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ł kernel panic 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 następujące 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 ANDROID_SDK_HOME lokalizacji.
  • 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. Nadpróbkowanie powinno 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.
  • Naprawiliśmy błędy renderowania w różnych aplikacjach korzystających z silników 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 poziomem interfejsu API 28 lub wyższym. Te obrazy systemu obejmują ulepszone wykorzystanie pamięci w przypadku sterowników graficznych po stronie gościa.

Dodatkowo ulepszyliśmy wykorzystanie zasobów w tych obszarach:

  • Zmniejszone wykorzystanie pamięci przez emulator podczas długotrwałych testów. Jeśli nadal masz problemy z wykorzystaniem pamięci podczas długotrwałych testów, utwórz zgłoszenie opisujące Twój przypadek użycia w Issue Trackerze.
  • Zmniejszone wykorzystanie procesora podczas uruchamiania aplikacji z animacjami.
  • Rozwiązaliśmy problem, który mógł powodować wyciek kontekstu QEMU AIO w systemie Windows.

Uruchamiaj jednocześnie wiele instancji pojedynczego AVD

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 wszystkie instancje po pierwszej 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ą zrzutów pamięci RAM gościa zapisywanych w pliku wiele instancji AVD udostępnia główny zrzut szybkiego uruchamiania AVD jako wspólne źródło pamięci RAM gościa kopiowanej przy zapisie. 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 wielu urządzeń.

Będziemy wdzięczni za Twoją opinię na temat możliwych przypadków użycia, które są częścią Twojego normalnego interaktywnego przepływu pracy lub przepływu pracy CI. 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 zrzut stanu, który jest wczytywany przy każdym ponownym uruchomieniu, podobnie jak w przypadku uśpienia i wybudzenia prawdziwego urządzenia.

Pamięć RAM gościa Androida jest teraz domyślnie zapisywana automatycznie, więc jeśli chcesz zdefiniować stan urządzenia i wielokrotnie wczytywać go z tego stanu, musisz poinformować emulator, aby odrzucał zmiany po każdej sesji. Możesz to zrobić na te sposoby:

  • Użyj flag -no-snapshot-save lub -read-only podczas uruchamiania emulatora z wiersza poleceń.
  • Otwórz Rozszerzone ustawienia > Migawki > Ustawienia i ustaw opcję 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:
    adb emu avd snapshot remap 0
    
    Po uruchomieniu tego polecenia zrzut szybkiego uruchamiania emulatora pozostanie w tym punkcie kontrolnym. Aby wczytać emulator z punktu kontrolnego, wykonaj ponownie to samo polecenie.

Migawki, które są robione i wczytywane za pomocą interfejsu Migawki, 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 migawkę w menedżerze AVD), emulator wyłączy 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:

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łączane. Dopóki host obsługuje blokowanie OFD lub posix, wiele procesów QEMU nie może zapisywać danych w tym samym obrazie, 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 i qemu-img.

Ułatwienia dostępu

  • Naprawiono problemy z czytnikami ekranu i dodano lepszą obsługę tych narzędzi w interfejsie nagrywania ekranu i 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 poza zakresem, 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ślnych ustawieniach procesora graficznego. Emulator automatycznie przełącza się na renderer Swiftshader, jeśli wykryje, że używane są te procesory graficzne.
  • Rozwiązaliśmy problem, który powodował, że emulator nie przesyłał prawidłowego bufora ramki, jeśli w momencie eglSwapBuffers był powiązany z FBO != 0.
  • Rozwiązaliśmy problem, który powodował, ż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ązano 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 skompresowane tekstury ASTC LDRGL_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 móc uruchamiać emulator z domyślnie włączoną obsługą OpenGL ES 3.x bez używania flagi funkcji GLESDynamicVersion.
  • -gpu guest (renderowanie oprogramowania na maszynie wirtualnej) 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 pozycją szerokości i długości geograficznej. 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 zakresu 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 Sklepu Play, emulator automatycznie zmienia rozmiar partycji danych użytkownika na 6 GB, gdy jest uruchamiany z nowym AVD Sklepu Play.

Ogólne ulepszenia jakości 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 to jednak pomóc w usunięciu zawartości tego folderu. W zależności od systemu operacyjnego folder znajduje się w jednej z tych lokalizacji:
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS lub Linux: /tmp/android-<username>/*
  • Jeśli 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 znajdziesz na stronie rozwiązywania problemów z emulatorem.
  • Opcja wiersza poleceń -sysdir prawidłowo zastępuje teraz wywnioskowany katalog obrazów systemowych.
  • 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 z zestawów słuchawkowych 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 na macOS. (Problem 37070892)
  • Rozwiązaliśmy problem w systemie Windows, który powodował, że zegar emulatora nie był ustawiony na prawidłową strefę czasową.
  • 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ć mylące 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ę niewiarygodne, co prowadziło do zawieszania się i innych dziwnych zachowań. Jeśli emulator zawiesza się w systemie macOS, zgłoś problem w narzędziu Issue Tracker.
  • Rozwiązaliśmy problem, który powodował, że zamknięcie emulatora wyłączało interfejs, ale nie zamykało go.
  • 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 emulator nie uruchamiał się, jeśli ADB zostało wymuszone.
  • Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, utwórz zgłoszenie w narzędziu Issue Tracker.
  • Rozwiązaliśmy problem, który powodował, że połączenia ADB mogły ulec uszkodzeniu podczas wczytywania migawki.
  • Rozwiązaliśmy problem polegający na tym, ż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 przesuwał 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 kopiowania przy zapisie w przypadku wirtualnych urządzeń dyskowych. Zalecamy wyczyszczenie katalogu ~/.android/avd i uruchomienie w ~/.android/avdnim tego polecenia:
    chattr +C
    
    Spowoduje to utworzenie nowych migawek w folderze, w którym funkcja kopiowania przy zapisie jest wyłączona.

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 w kanale stabilnym. Można go też zainstalować ręcznie ze strony https://github.com/intel/haxm/releases.

Oto kilka problemów, które zostały rozwiązane w tej wersji HAXM:

  • Naprawiono losowe awarie systemów operacyjnych gości, które korzystają z najnowszych wersji jądra Linuxa (≥ 4.6). Na przykład Ubuntu 18.04 (#39, #74).
  • Usunęliśmy błąd emulatora instrukcji x86, który mógł powodować awarię hosta (#93).

Wycofanie 32-bitowych wersji systemu Windows

Ze względu na niewielkie zainteresowanie i wysokie koszty utrzymania planujemy wycofać 32-bitową wersję emulatora Androida działającą w systemie Windows. Przed usunięciem 32-bitowej wersji Android Emulatora i zakończeniem jej cyklu życia 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 Android Emulatora działającej w systemie Windows, poinformuj nas o tym w Issue Trackerze i daj nam znać, 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 Twojego AVD nie ma podanej wartości hw.ramSize w megabajtach, zgłoś problem w narzędziu Issue Tracker. Plik config.ini znajdziesz w tej lokalizacji:

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

27.3.9 (lipiec 2018 r.)

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 Platform (WHPX) nie została zainicjowana po aktywowaniu emulatora WHPX. Aby Ci pomóc w diagnozowaniu tych problemów, dodaliśmy bardziej informacyjne 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

  • Rozwiązaliśmy błędy OpenGL, które występowały podczas wczytywania migawki 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

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 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 migawkę AVD ma wczytać 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 sekcji 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 aktualizacji HAXM i emulatora do 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.

Szczegółowe informacje 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 Android Emulatora i zapisywać nagranie w pliku WebM lub animowanym GIF-ie.

Elementy sterujące nagrywaniem ekranu znajdują się na karcie Nagrywanie ekranu w oknie Rozszerzone elementy sterujące.

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

Aby rozpocząć nagrywanie ekranu, kliknij przycisk Zacznij nagrywać 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 tego polecenia w wierszu poleceń:

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

Zrzuty ekranu

Zrzuty ekranu możesz robić z poziomu wiersza poleceń za pomocą jednego z tych poleceń:

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

Zrzuty ekranu są zapisywane w formacie PNG.

Kamera sceny wirtualnej i ARCore

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

Więcej informacji o korzystaniu z wirtualnego aparatu sceny w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w Android Emulatorze.

Obrazy Sklepu Google Play na urządzeniu Pixel

Sklep Google Play jest teraz włączony w przypadku obrazów urządzeń Pixel i Pixel 2. Jest to widoczne w AVD Managerze w Androidzie Studio 3.2 i nowszym, gdzie w kolumnie Sklep Play znajduje się logo Google Play. AVD z włączonym Sklepem Google Play mają kartę Google Play w oknie Rozszerzone ustawienia, która zawiera wygodny przycisk do aktualizowania Usług Google Play na urządzeniu.

Zrzuty

Możesz teraz wczytać migawkę szybkiego uruchamiania bez ponownego uruchamiania emulatora. Aby wczytać migawkę, otwórz okno Rozszerzone elementy sterujące i kliknij przycisk Wczytaj teraz na stronie Ustawienia.

Wprowadziliśmy wiele ulepszeń w zakresie wczytywania i zapisywania migawek, aby zwiększyć efektywność 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óły dotyczące procesora, pamięci RAM i ustawień oprogramowania antywirusowego, zapory sieciowej lub oprogramowania zabezpieczającego.

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 zaplecza kamery internetowej, co znacznie zwiększa wydajność i liczbę klatek podczas rejestrowania obrazu z kamery internetowej (do 720p przy 30 FPS).

Na komputerach Mac możesz teraz używać jednocześnie kamer webcam0 i webcam1.

Pozostałe postanowienia

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

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

Poprawki

  • Wersja Android Emulator na Linuxa 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ąca ilość wolnego miejsca na dysku podczas uruchamiania. Nie uruchomi się, jeśli nie będzie co najmniej 2 GB wolnego miejsca.
  • Rozwiązaliśmy problem, który uniemożliwiał renderowanie niektórych gier na platformie 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 przydzielonej do AVD w oknie konfiguracji urządzenia wirtualnego nie działały.
  • Rozwiązaliśmy problem, który powodował tworzenie wielu procesów adb, które nie były prawidłowo wyłączane.
  • Rozwiązaliśmy problem, który powodował, że przyciski obracania i inne elementy interfejsu przestawały reagować, chyba że było otwarte okno sterowania rozszerzonego.
  • 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.
  • Telefon i SMS-y są teraz prawidłowo dezaktywowane, gdy włączony jest tryb samolotowy.
  • 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ń z informacją:“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 z nakładkami 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ł rozsynchronizowanie przewijania elementów interfejsu urządzenia i zawartości emulatora po powiększeniu.

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

27.1.12 (marzec 2018 r.)

Ta aktualizacja zawiera poprawki tych problemów:

  • Jakość dźwięku Bluetooth pogarsza 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 sekcji Ustawienia zaawansowane > Lokalizacja w graficznym interfejsie użytkownika. (Problem 73471760)

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

Dzięki tej aktualizacji, aktualnemu obrazowi systemu i wersji testowej Androida Studio możesz używać Android Emulator do uruchamiania aplikacji do obsługi 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ść przechwytywania obrazu z aparatu

    Możesz teraz rejestrować klatki w rozdzielczości 720p z podłączonej kamery internetowej.

    Aby korzystać z obrazów systemu Androida 8.1 (interfejs API na poziomie 27) i nowszych, każda podłączona kamera internetowa musi mieć możliwość rejestrowania klatek w rozdzielczości 720p.

  • Poprawki

    • Rozwiązaliśmy problem, który powodował, że obraz z kamery internetowej był czasami zniekształcony lub całkowicie zielony.
    • Rozwiązaliśmy problem, który powodował, że nawet wtedy, gdy nie występowało zawieszenie, mógł się pojawiać komunikat: „emulator: ERROR: detected a hanging thread 'Qt pętla zdarzeń'”. Brak odpowiedzi przez 15000 ms”.

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

27.1.7 (luty 2018 r.)

  • Okno emulatora bez ramki:

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

  • Ulepszenia szybkiego rozruchu, które zwiększają wydajność pracy z migawkami AVD:

    • Migawkę AVD możesz zapisać w dowolnym momencie, klikając przycisk Zapisz teraz w panelu Ustawienia okna dialogowego Rozszerzone elementy sterujące.
    • Emulator skraca czas zapisywania zrzutu w wielu przypadkach, zapisując tylko różnicę między bieżącym stanem a wcześniej zapisanym zrzutem.

    Szczegółowe informacje znajdziesz w dokumentacji dotyczącej 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 zwiększa wydajność.
    • Naprawiono błędy od wersji QEMU 2.8 (26.1.4).
    • Nowe wdrożenie backendu HAXM.

    Pełną listę zmian znajdziesz w historii 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, który powodował, że udostępnianie schowka nie działało, dopóki opcja Włącz udostępnianie schowka nie została wyłączona i ponownie włączona.
    • Rozwiązaliśmy problem z zawieszaniem się podczas 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, kliknąć Ustawienia > Zaawansowane i w ustawieniu renderowania OpenGL ES wybrać ANGLE D3D11.

  • Rozwiązaliśmy problem, który powodował, że naciśnięcie Shift+B nie powodowało wpisania wielkiej litery B.

27.0.2 (grudzień 2017 r.)

  • Nowa funkcja szybkiego uruchamiania zapewnia krótszy czas uruchamiania emulatora na podstawie zrzutu instancji AVD.

    Quick Boot 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 w przypadku wybudzania urządzenia).

    Jeśli chcesz kontrolować, kiedy emulator zapisuje migawkę, otwórz okno rozszerzonych ustawień emulatora i kliknij Ustawienia. W sekcji Zapisz stan szybkiego uruchamiania przy wyjściu możesz wybrać jedno z tych ustawień:

    • Tak: zawsze zapisuj zrzut szybkiego uruchamiania po zamknięciu emulatora. Jest to ustawienie domyślne.
    • Nie: nigdy nie zapisuj zrzutu szybkiego uruchamiania; zawsze wykonuj zimny rozruch.
    • Zapytaj: wyświetla pytanie, czy zapisać zrzut szybkiego rozruchu po zamknięciu emulatora.

    Wybrana opcja dotyczy tylko aktualnie otwartego AVD.

    Więcej informacji znajdziesz w dokumentacji Quick Boot.

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

  • Aby zwiększyć stabilność aplikacji OpenGL ES 2+, emulator używa teraz profilu podstawowego OpenGL, jeśli jest dostępny.

  • Nowe opcje renderowania za pomocą Swiftshader / ANGLE:

    • -gpu swiftshader_indirect: szybsza i bardziej stabilna wersja Swiftshader, która działa z Quick Boot.
    • -gpu angle_indirect (tylko Windows): bardziej stabilna odmiana ANGLE D3D, która działa też z Quick Boot.

    Starsze opcje -gpu swiftshader i -gpu angle są teraz wycofane. W oknie Ustawienia rozszerzone opcje „SwiftShader” i „ANGLE” w ustawieniu renderowania 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 te ulepszenia konfiguracji GPU:

  • Włączanie animacji rozruchu podczas korzystania z mechanizmu renderowania ANGLE
  • Wyłączanie GLES3 podczas korzystania z renderera 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 zasadami 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 6.2.0 może teraz szybciej uruchamiać się w systemie macOS, pomijając długą fazę inicjalizacji.
  • Ulepszenia 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 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 karty 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łosili, że nie mogą używać obrazów na poziomie API 25 z powodu błędu, w którym „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 została 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 problemów lub konieczności testowania 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ą funkcji Hypervisor.Framework lub HAXM 6.2.0.
    • Platforma Hypervisor.framework jest teraz domyślnie włączona w systemie macOS w przypadku obrazów 32-bitowych 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 dopisz HVF = off do ~/.android/advancedFeatures.ini (utwórz ten plik, jeśli nie istnieje).
    • Rozwiązaliśmy problemy z brakiem dostępu do internetu lub niepowodzeniem dołączenia debugera podczas korzystania z Hypervisor.framework.
    • Aby zwiększyć kompatybilność i wydajność przechwytywania obrazu z kamery internetowej, przechwytywanie oparte na QTKit zostało zastąpione buforowanym przechwytywaniem opartym na AVFoundation.
  • Dodano 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).
  • Dodaliśmy skrót klawiszowy (Ctrl+Shift+U) do otwierania strony interfejsu zgłaszania błędów bezpośrednio ze strony ustawień.
  • Rozwiązaliśmy problem, który powodował, że jeśli używany był starszy procesor 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 nieprawidłowym wykrywaniu funkcji HyperV, jeśli emulator działał w hipernadzorcy Xen.
  • Rozwiązaliśmy problem, który powodował, że w niektórych konfiguracjach Linuksa emulator ulegał awarii podczas uruchamiania.

26.1.2 (lipiec 2017 r.)

Ta wersja zawiera nowe funkcje i ulepszenia wydajności.

  • 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.

  • Dodaliśmy 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:

    1. Wykonaj: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. 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.

  • Dodaliśmy przycisk Zgłoś błąd na ekranie pomocy rozszerzonych elementów sterujących (kliknij Więcej , a potem Pomoc i Pomoc dotycząca emulatora). Kliknięcie Zgłoś błąd spowoduje otwarcie okna, 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 zapisać raport dla siebie lub zgłosić problemy z emulatorem.

  • Dodano czujnik żyroskopowy do emulatora i panelu czujników wirtualnych. Aby to działało, wymagany jest obraz systemu z obsługą żyroskopu (obecnie poziomy interfejsu 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 masz z nim problemy, dodaj wiersz HVF = off w ~/.android/advancedFeatures.ini.
  • 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 urządzeniach z Androidem O (poziom interfejsu API 26) oraz na hostach z systemem Windows/Linux.

    • Jeśli masz problemy z OpenGL ES 3, dodaj w ~/.android/advancedFeatures.ini wiersz GLESDynamicVersion = off.
  • Emulator używa teraz buforów ramki OpenGL poza ekranem do wszystkich renderowań z wyjątkiem publikowania końcowego obrazu wyświetlanego, co powinno pomóc w rozwiązywaniu problemów z spójnością kolorów na różnych platformach.

  • Po zebraniu danych o nagłych spowolnieniach emulatora stwierdziliśmy, że problem może być związany z interakcją między starszymi sterownikami Intel OpenGL a aktualizacjami systemu Windows. Dlatego użytkownicy z kartami graficznymi Intel HD 4000, 3000, 2000 (i podobnymi) 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. Wprowadziliśmy też szereg ulepszeń i poprawek błędów.

Wersja 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 systemu Android Wear API na poziomie 25. Aby emulować pokrętło na urządzeniu Wear, w rozszerzonym oknie kliknij kartę Rotary Input (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 podania 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 Google Play i przycisk sprawdzania aktualizacji Usług Google Play.
  • Dodaje menu wyboru renderera 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 i minimize.
  • Rozwiązuje problem ze skalowaniem podczas zmiany wyświetlaczy na komputerze Mac. (Problem 268296)
  • Rozwiązaliśmy problem, w którym emulator zużywał 300% procesora i utrzymywał ten poziom po wznowieniu pracy komputera hosta po uśpieniu lub gdy emulator działał przez długi 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.

Wersja 26.0.0 emulatora Androida 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ółistnienia z programami VirtualBox i Docker na komputerach Mac. (Problem 197915)
  • Poprawia komunikat o błędzie instalacji wyświetlany, gdy instalator nie wykryje technologii Intel VT-x w systemie Windows, zwykle dlatego, że włączona jest funkcja Hyper-V.
  • Dodaliśmy obsługę przyspieszania działania emulatora Androida na maszynie wirtualnej z systemem Windows opartej na Hyper-V. Ta aktualizacja wymaga, aby hostowana instancja Hyper-V (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ą. Hyper-V musi być wyłączony w instancji Hyper-V gościa (maszyna wirtualna z systemem Windows).

Zależności

  • Narzędzia platformy pakietu Android SDK w wersji 25.0.4 lub nowszej.
  • Narzędzia pakietu Android SDK 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 host ma kartę graficzną z zgodnymi sterownikami OpenGL na komputery, emulator przechodzi teraz 100% testów z mustpass listy dEQP-GLES2 w Android CTS. 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 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 SDK Tools. Ta wersja zawiera różne ulepszenia wydajności, nowe funkcje i poprawki błędów.

Drobna zmiana 25.3.1 (marzec 2017 r.)

  • Naprawiliśmy błąd powodujący awarię w niektórych konfiguracjach GPU, domyślnie wyłączając GLAsyncSwap. Ta funkcja została dodana w wersji 25.3.0, aby poprawić czas wyświetlania klatek i liczbę klatek na sekundę w przypadku gier i filmów, ale powoduje błędy w emulatorze w niektórych nieznanych konfiguracjach urządzeń. Możesz włączyć ją ręcznie, otwierając plik android_sdk/emulator/lib/advancedFeatures.ini i ustawiając GLAsyncSwap = on.

Zależności

  • Narzędzia platformy pakietu Android SDK w wersji 24 lub nowszej.
  • Narzędzia Android SDK 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.
    • lepsza obsługa akceleracji 3D;
    • Zwiększyliśmy ogólną szybkość działania emulatora.
    • Poprawiona wydajność grafiki.
  • Emulator używa teraz buforów po stronie procesora graficznego (glBindBuffers / glBufferData), gdy zażąda ich system gościa, co zmniejsza obciążenie procesora w niektórych aplikacjach.
  • Ulepszona obsługa dźwięku.
  • Szybsze operacje wejścia/wyjścia na dysku: emulator 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 również liczbę zapisów na dysku, co znacznie zmniejsza obciążenie urządzenia fizycznego.
  • Emulator używa teraz plików rzadkich do uruchamiania dysków 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:
    • 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 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.