Emulator Androida 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ź, czy w Menedżerze pakietu SDK są dostępne aktualizacje.
Aby pobrać poprzednie wersje emulatora Androida, przejdź do archiwum pobierania emulatora.
Informacje o wersjach emulatora starszych niż 25.3.0 znajdziesz w informacjach o wersji pakietu Android SDK Tools.
Informacje o znanych problemach i ich rozwiązywaniu znajdziesz w artykule Rozwiązywanie problemów z emulatorem.
35.4.4 Canary (12 grudnia 2024 r.)
Nowy emulator Androida XR
Dodaliśmy nowy, eksperymentalny emulator Androida XR do tworzenia i testowania aplikacji na hełmy opracowanych przy użyciu pakietu Jetpack XR SDK. W tym przewodniku znajdziesz informacje o instalowaniu emulatora Androida XR i konfigurowaniu środowiska programistycznego.
Emulator Androida XR to narzędzie eksperymentalne. Mimo to postanowiliśmy udostępnić Ci tę funkcję wcześniej, aby umożliwić Ci wcześniejsze testowanie. Spodziewaj się problemów, zwłaszcza w przypadku niektórych konfiguracji procesorów graficznych i sterowników w systemie Windows. Problemy mogą też wystąpić w przypadku testów zgodności dotychczasowych 2D aplikacji mobilnych. Twoja opinia pomoże nam ulepszyć i określić priorytety funkcji na przyszłość.
Do tej pory emulator Android XR został przetestowany w ramach tych konfiguracji sprzętowych:
- Mac (ARM)
- Windows 11
- GPU nVidia, 4 GB pamięci vRAM, sterownik w wersji 553.35 lub nowszej
- co najmniej 16 GB pamięci RAM,
- 8 lub więcej rdzeni.
Znane problemy
Emulator – stabilność i wydajność:
- W niektórych konfiguracjach systemu Windows mogą wystąpić krytyczne zablokowania lub awarie podczas uruchamiania lub uruchamiania aplikacji. Sprawdź, czy platforma Windows Hypervisor (WHPX) jest włączona. Aby to zrobić, postępuj zgodnie z instrukcjami włączenia WHPX w Android Studio.
- Problemy takie jak brak reakcji elementów AVD lub interfejsu na laptopach po cyklu zawieszenia i wznowienia (np. zamknięcie i otwarcie laptopa).
- Sporadyczne awarie podczas przełączania aplikacji z „trybu ekranu głównego” na „tryb pełnoekranowy”
- Interfejsy Gemini API nie są jeszcze dostępne, więc aplikacja z szablonem startowym Gemini API ulegnie awarii.
Emulator – symulowanie danych wejściowych i wyjściowych:
- Klawiatura wirtualna do wyszukiwania i edytowania pól może być widoczna tylko częściowo w polu widzenia
Elementów nie można przesuwać w kierunku osi Z (w głąb ekranu i z niego) za pomocą myszy i klawiatury.
Niestabilność wejścia audio hosta mikrofonu AVD może powodować ponowne uruchamianie i zawieszanie się AVD.
Dźwięk może być czasami zakłócony lub zniekształcony.
Gdy kamera jest przeniesiona poza wirtualny salon, widoczne są błędy renderowania.
Konfiguracje systemu Windows wyświetlają ciemniejsze niż zwykle kolory.
Dźwięk przestaje działać po przejściu do trybu nieaktywności i zablokowaniu ekranu w macOS. (po ponownym uruchomieniu emulatora zostanie on przywrócony).
Połączenie sieciowe zostaje przerwane, gdy host zmienia sieć Wi-Fi.
Gdy Caps Lock jest włączony, nadal można wpisywać małe litery.
Przewijanie za pomocą trackpada na Macu nie jest płynne.
Przewijanie przez kliknięcie i przeciągnięcie w przypadku niektórych elementów interfejsu może nie działać zgodnie z zamierzeniem. Jeśli nie, przewiń stronę za pomocą kółka myszy.
Rozmazany tekst, interfejs i inne usterki w Chrome w niektórych konfiguracjach systemu Windows. Prawdopodobna metoda obejścia problemu: włączanie WHP.
Emulator – symulowanie samolotów i kotwic:
- Czasami kotwy nie odradzają się w pobliżu tej samej lokalizacji
- Panele ruchome nie mogą być przymocowane do ścian ani sufitu.
- Symulowane samoloty nie pasują do fizycznej aranżacji pokoju 3D w trybie przesyłania
- Ograniczone obszary do zakotwiczenia obiektów w wirtualnym pokoju
- Niewielki artefakt widoczny w widoku przezroczystym w systemie Windows
- W niektórych przypadkach umieszczanie kotwic może spowodować awarię aplikacji.
- Czarne linie mogą pojawiać się na górze aplikacji, gdy aplikacje są przesuwane blisko ziemi w Windows.
Emulator – inne:
- Emulatora można uruchomić tylko w trybie „samodzielnym”. Tryb „Wbudowany” (wbudowany interfejs użytkownika) nie jest jeszcze obsługiwany.
- Logowanie się na konta w emulatorze w systemie Windows może spowodować zawieszenie się emulatora.
- Po zmianie rozmiaru okna zawartość interfejsu może zniknąć (obejście: naciśnięcie przycisku „Strona główna”)
- W aplikacji JXRCore ActivityPanelTest panel dodatkowy nie jest początkowo wyświetlany
- Po dłuższym czasie elementy Szybkich ustawień mogą zniknąć z ustawień systemowych.
- Interfejs emulatora może początkowo wyświetlać się poza obszarem ekranu. Jeśli tak, zmień rozmiar okna emulatora, a powinien on wrócić na swoje miejsce.
- Emulator może się nie uruchomić, gdy korzystasz z Pulpitu zdalnego Chrome w systemie Windows.
- Open XR nie jest obecnie obsługiwany na emulatorze, a aplikacje Open XR mogą spowodować jego zablokowanie.
- rzadkie przypadki błędów podczas przesyłania raportów o błędach za pomocą rozszerzonych ustawień Android Studio w systemie Windows;
- Ikona „Przejście wstecz” nie jest prawidłowo widoczna w aplikacji Ustawienia, dopóki kursor nie znajdzie się w pobliżu ikony na Macu.
- W niektórych przypadkach podczas kompilowania może wystąpić błąd, gdy używasz modułu „Profil bazowy” w ramach projektu szablonu XR.
- Ułatwienia dostępu „XR Talkback” są do tej pory tylko częściowo zintegrowane z emulatorem
Aplikacja Scene Viewer:
- Przesuwanie elementów w programie Scene Viewer może spowodować jego awarię. Aby obejść ten problem, przed próbą przeniesienia elementu odsuń głowę od jej początkowej pozycji (np. za pomocą funkcji pan, dolly, WASD itp.).
- Funkcja rzeczywistego rozmiaru 1:1 nie będzie działać prawidłowo, jeśli rzeczywisty rozmiar modelu 3D jest poniżej lub powyżej minimalnych i maksymalnych limitów skali (obecnie ustawionych odpowiednio na 20 cm i 70 m).
- Model 3D może przeskakiwać w pierwszej klatce po załadowaniu.
35.2.10 (1 października 2024 r.)
- Dodano nowe urządzenia AVD Pixel, w tym Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL i Pixel 9 Pro Fold
- Dodano nowy obraz systemu Tablet dla Vanilla Ice Cream (API 35)
35.1.20 (29 sierpnia 2024 r.)
- Dodano AVD dla Pixela 8a
- Poprawki błędów dotyczących składanych urządzeń.
- Aktualizacja Qt i poprawki dotyczące awarii i zawieszeń związanych z Qt
- [Bug Fix] Fix to crashes and freeze on Windows with applications using Vulkan
34.2.16 (9 lipca 2024 r.)
- [Bug Fix] Zawieszanie się interfejsu na urządzeniu Pixel Fold podczas składania i rozkładania
- [Poprawka] Nieprawidłowy wyświetlany interfejs API 35 na Macu M1 w wersji Androida Vanilla Ice Cream w wersji zapoznawczej zamiast API 35.
- [Poprawka błędu] Problem 296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE zwraca wartość 1 na emulatorze tabletu Pixel C
34.2.15 (31 maja 2024 r.)
- różne poprawki błędów związanych z trybem swangla i czyszczeniem reklamodawców.
34.2.14 (20 maja 2024 r.)
Testowano z Android Studio Jellyfish Stable Patch 1.
- [Bug Fix] Snapshot sometimes hangs on embedded emulator
- [Bug Fix] Buttons ‘No’ and ‘Cancel’ are not working properly on snapshot
- [Bug Fix] Directional pad buttons are not working
- [Bug Fix] Rozwiązaliśmy problem występujący w systemie Windows, który uniemożliwiał uruchomienie emulatora w niektórych warunkach podczas korzystania z trybów GPU z ANGLE i zwracał w logu komunikat o błędzie „Nie udało się zainicjować emulacji GL”. Pamiętaj, że uruchomienie emulatora za pomocą 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 oprogramowania w tej wersji, użyj opcji-gpu swiftshader_indirect
- [Bug Fix] Skrót do lokalizacji na klawiaturze wczytuje nieużyteczną mapę
- [Bug Fix] While setting location, the "save route" dialog is missing
34.2.13 (30 kwietnia 2024 r.)
Testowano z Android Studio Jellyfish Stable.
- Aktualizacja do Qt 6.5.3
- Zgodność z aktualizacjami interfejsu Mapy Google API używanymi w funkcjach lokalizacji w rozszerzonych kontrolkach emulatora, które zostaną wprowadzone pod koniec maja.
- Poprawki dotyczące awarii o dużym znaczeniu
- różne poprawki dotyczące AVD-ów Pixela;
- Zaktualizuj bibliotekę graficzną używaną do renderowania programowego.
- [Bug Fix]Issue 225541819 Uruchamianie Chrome powoduje awarię emulatora na x86_64
- [Bug Fix]Issue 314614435
-http-proxy
switch is parsed incorrectly
34.1.20 (1 kwietnia 2024 r.)
Testowano z Android Studio Iguana Stable.
- [Bug Fix] Issue #314614435: Fix issue where
-http-proxy
switch is parsed incorrectly
34.1.19 (7 marca 2024 r.)
Testowano z Android Studio Iguana Stable.
- [Poprawka błędu] Problem #312677259: rozwiązaliśmy problem z zawieszaniem się ekranu w wbudowanym emulatorze po zmianie rozmiaru okna.
34.1.18 (29 lutego 2024 r.)
Testowano z Android Studio Iguana Stable.
- Do emulatora dodano urządzenia, w tym:
- Pixel Fold
- Pixel Tablet
- Pixel 8
- Pixel 8 Pro
- Pixel 7a
- Test integracji gRPC: punkty końcowe gRPC są teraz dostępne dla testów z instrumentacją uruchamianych w emulatorze, co umożliwia testowanie realistycznych scenariuszy. Ta funkcja umożliwia deweloperom bezpieczne nawiązywanie interakcji z punktem końcowym gRPC hostowanym przez emulator Androida z poziomu testów instrumentacji Androida.
- Poprawki różnych błędów
- Poprawka błędu: ulepszenia w przypadku składanych urządzeń
- Naprawa błędu: dostosowywanie pozycji emulatora po jego obróceniu
- Poprawki dotyczące awarii
33.1.24 (28 grudnia 2023 r.)
Testowano w Android Studio Hedgehog Stable i Iguana Beta 1.
- Rozwiązanie problemu z kamerą internetową w emulatorze, który uniemożliwiał nagrywanie ekranu w formacie mp4.
- Rozwiązanie problemu z awarią emulatora na AVD Pixel Fold podczas rozkładania urządzenia podczas nagrywania ekranu.
- Rozwiązanie problemu polegającego na tym, że Pixel Fold wyświetla inny interfejs z odłączoną klawiaturą i nie można go używać (rozwiązanie dotyczy systemu Windows, Mac Intel i Linux)
- Poprawka dotycząca glitcha w wyglądzie czujników wirtualnych w trybie samodzielnym (poprawka w systemach Windows, Mac Intel i Linux)
- poprawki dotyczące niektórych awarii, zwłaszcza podczas zamykania emulatora;
33.1.23 (30 listopada 2023 r.)
Testowano w Android Studio Giraffe Patch 4 i Hedgehog Stable.
- Nowa implementacja składanego urządzenia, która lepiej emuluje urządzenie Pixel Fold i działa z najnowszym interfejsem API 34
- Uaktualnienie backendu grafiki: wdrożyliśmy protokół gfxstream dla backendu grafiki. To ulepszenie zwiększa ogólną wydajność i stabilność grafiki. Dodatkowo wprowadzamy obsługę Vulkan 1.3, zaczynając od obrazu systemu z interfejsem API 34.
- Prośba o dodanie funkcji: opcja wyłączenia gestu powiększania przez ściśnięcie palców lub przypisania mu skrótu klawiszowego
- [Bug Fix] Issue #302562962 Poprawka dotycząca awarii kamery internetowej emulatora podczas korzystania z Sonoma w systemie MacOS
- [Poprawka błędu] Problem #293503871 Rozwiązanie problemu polegającego na tym, że ustawienie „Mikrofon” nie jest zapisywane po ponownym uruchomieniu emulatora
- [Poprawka błędu] Problem #270386314 Rozwiązanie problemu z animacją, w którym pasek boczny pozostaje otwarty po zminimalizowaniu ekranu AVD
- [Poprawka błędu] Problem #154896775 Poprawiono narzędzie do przesyłania błędów
32.1.15 (29 sierpnia 2023 r.)
Testowano z Android Studio Giraffe Patch 1 i Hedgehog Canary 16.
- Wymagania dotyczące sprzętu GAS w przypadku czujników w emulatorze AAE
- [Poprawka] Problem #266201208 SMS w języku hebrajskim nie jest wysyłany w interfejsie API 33
- [Bug Fix] Issue #257097404 Emulator doesn't show correct time after the host is waken up on API 29 and 30
- [Bug Fix] Issue #228201899 Can't see google maps inside Android Emulator Extended Controls
32.1.14 (27 czerwca 2023 r.)
Testowano w Android Studio Hedgehog Canary 8, Giraffe Beta 5 i Flamingo Stabilna.
- Popraw orientację i zniekształcenia kamery emulatora.
- [Bug Fix] Issue #257097404 "Emulator doesn't show correct time after the host is waken up". Ten błąd można nadal odtworzyć w przypadku interfejsu API 29 i 30.
- [Bug Fix] Issue #243456582 "Android releases after API 30 might not start correctly in emulator on Mac M1 machines"
32.1.13 (22 maja 2023 r.)
Testowano w Android Studio Hedgehog Canary 2, Giraffe Beta 1 i Flamingo Stable.
- Dodano obsługę AVD dla Pixel Fold i Pixel Tablet.
- Poprawiono problem z awarią gLinux.
- [Poprawka błędu] Problem #215231636 „Emulator z interfejsem API 30 lub nowszym nie działa na procesorze Intel 12 generacji”.
- [Bug Fix] Issue #275397905 Wysoki poziom zawieszeń emulatora Androida M1 podczas wielokrotnego przenoszenia kursora do środka i poza emulatora.
- Znane problemy z uruchamianiem AVD Problem #281725854. Więcej informacji znajdziesz w artykule Rozwiązywanie problemów z emulatorem.
32.1.12 (21 marca 2023 r.)
Testowano w Android Studio Giraffe Canary 10, Flamingo RC i Electric Eel Patch 2.
- [Bug Fix] Issue #267647323 Network doesn't work on Emulator started from Android Studio
- [Bug Fix] Issue #268498686 Ekran emulatora miga
- [Poprawka błędu] Problem #270034824: wydajność emulatora pogarsza się po aktualizacji do wersji 33.1.1
- [Bug Fix] Problem #225541819 Uruchamianie Chrome powoduje awarię emulatora na systemie x86_64
- [Bug Fix] Issue #257097404 Emulator doesn't show correct time after the host is waken up
- Dodawanie raportowania awarii na urządzeniach Apple M1
32.1.11 (8 lutego 2023 r.)
Testowano 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 Virtio-snd
- Wyłączanie używania łączy symbolicznych podczas rozpakowywania emulatora Androida podczas instalacji
- Naprawianie awarii w emulator-check
31.3.14 (13 grudnia 2022 r.)
Testowano z Android Studio Dolphin, Electric Eel RC1 i Flamingo Canary 9.
- [Naprawa błędu] Naprawiono problemy z awariami AVD występujące podczas logowania się w Sklepie Play.
31.3.13 (27 października 2022 r.)
Testowano z Android Studio Dolphin, Electric Eel Beta 2 i Flamingo Canary 5.
- [Bug Fix] Problem 249948338: parametr strefy czasowej nie działa
- [Naprawa błędu] Problem 249366543: opcja emulatora -dns-server nie działa po wersji 31 interfejsu API
31.3.12 (10 października 2022 r.)
Testowano z Android Studio Dolphin i Electric Eel w wersji beta 1.
Ta aktualizacja zawiera następujące ulepszenia i poprawki:
- [Naprawa błędu] Problem 247843000: błąd obsługi ścieżki względnej w AVD
- Zwiększenie rozmiaru dysku w przypadku interfejsu API w wersji 24 lub nowszej
31.3.11 (23 września 2022 r.)
Testowano z Android Studio Dolphin i Electric Eel Canary 10.
Ta aktualizacja zawiera następujące ulepszenia i poprawki:
- [Poprawka błędu] Uruchomiony emulator AVD ulega awarii w oknie rozszerzonych ustawień
- [Poprawka błędu] Problem #183139207: problemy z dźwiękiem związane z aktywowaniem mikrofonu przez emulator
- [Poprawka błędu] Problem #229764024: błąd przylegającego dotyku w AVD, który powoduje problemy z działaniem interfejsu
- [Bug Fix] Błąd podczas uruchamiania AVD API 33 na Macu M1
- [Bug Fix] Problem 243053479: po aktualizacji emulatora prędkość sieci jest niska
- [Bug Fix] Problem 244617627: niedziałająca lokalizacja Map w systemach Windows i Linux
- [Poprawka] Problem 232971796: niedziałający przycisk „Zadzwoń na urządzenie” na stronie Rozszerzone funkcje sterujące > Telefon
- Aktualizacja emulatora Androida do wersji minigbm
- Przenoszenie skryptów kompilacji do Pythona 3
31.3.10 (18 sierpnia 2022 r.)
Testowano z Android Studio Dolphin Beta 5 i Electric Eel Canary 9.
Samodzielne wersje emulatora są już dostępne do pobrania. Jeśli masz problemy z ostatnią stabilną wersją lub jeśli aplikacja się zawiesza, zgłoś błąd i pomyśl o pobraniu wcześniejszej wersji z archiwum pobrań emulatora.
Ta aktualizacja zawiera następujące ulepszenia i poprawki:
- Lepsza obsługa ścieżek Unicode w systemie Windows
- Ulepszona obsługa zamykania emulatora, dzięki której można uruchomić ponownie ten sam AVD.
- 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 umożliwiające zmianę rozmiaru
- Naprawa Chrome dla interfejsu API 31
- [Bug Fix] Nie udało się uwierzytelnić konta Google w wersji GmsCore 21.42.18
31.2.10 (20 kwietnia 2022 r.)
Testowano 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 użyciem alternatywnych rozwiązań
- [Bug Fix] Popraw błąd kompilacji gcc8
31.2.9 (23 marca 2022 r.)
Testowano w Android Studio Dolphin Canary 7.
Ta aktualizacja zawiera następującą poprawkę:
- [Bug Fix] Ignorowanie nacisku pamięci podczas zapisywania zrzutu na M1
31.2.8 (7 lutego 2022 r.)
Testowano w Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.
Ta aktualizacja zawiera następujące ulepszenia i poprawki:
- [Bug Fix] Nie można się zalogować w aplikacjach
- [Bug Fix] Problem 215368358: polecenie „adb reboot” na platformie Intel powoduje awarię avd z komunikatem „vcpu shutdown request”
31.2.7 (1 lutego 2022 r.)
Testowano w Android Studio Bumblebee Patch 1 i Chipmunk Canary 6.
Ta aktualizacja zawiera następującą poprawkę:
- [Poprawka błędu] Błąd zawieszania się emulatora na komputerach 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:
- Dodano przyciski Wear do emulatora Wear OS.
- Umożliwiono edytowanie wszystkich właściwości pojazdu na karcie VHAL.
- [Poprawka błędu] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18.
- [Bug Fix] Netshaper nie działał prawidłowo z VirtioWifi.
- [Bug Fix] Event mouse console command didn't work.
- Dodano sprawdzanie KVM w przypadku tworzenia lokalnego AVD.
31.1.3 (18 stycznia 2022 r.)
Ta aktualizacja zawiera następujące ulepszenia i poprawki:
- Włączone porty konsoli dla Fuchsia.
- Podczas zmiany rozmiaru okna na wielu wyświetlaczach orientacja jest ignorowana.
- Wi-Fi: dodano obsługę filtrowania pakietów unicast na podstawie adresu MAC MAT.
- Wi-Fi: rozwiązano problem z awarią podczas używania vmnet.
30.9.5 (15 grudnia 2021 r.)
Ta aktualizacja zawiera następujące ulepszenia i poprawki:
- Dodano możliwość łatwego dostosowania rozmiaru okna do rozmiaru okna na komputerze lub tablecie.
- Dodano obsługę wielodotyku na zgodnych urządzeniach hosta.
- VirtioWifi: dodano obsługę sieci tap.
- Włączono wejście obrotowe dla obrazów systemu Wear.
- Rozwiązaliśmy problem z konfiguracją dźwięku gRPC.
- Zaktualizowano odtwarzanie emulatora SensorReplay, aby obsługiwał standardowe czujniki Androida.
- Podłącz emulator do urządzeń peryferyjnych i urządzeń za pomocą USB z przekazaniem 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 sygnału wejściowego.
- Dodano obsługę virtio-vsock w przestrzeni użytkownika.
- Przyszłe obrazy systemów będą używać virtio-console do logowania i komunikatu kernela.
- przyspieszyć renderowanie Vulkana;
- Dodaliśmy obsługę debugowania zrzutów w przypadku niepowodzenia testu.
- virtio-gpu: zaktualizowano definicje, aby obsługiwały najnowsze enumeracje zasobów blob.
- Dodaliśmy obsługę zrzutów dla przesyłania typu „asg”.
- macOS: dodano obsługę kompilowania z użyciem pakietu SDK macOS w wersji 11.1 lub nowszej.
- KVMclock jest domyślnie włączony w nowszych obrazach systemu.
- Dodano obsługę czujnika tętna w emulatorze Wear.
- Usunięto backend libportability Vulkan.
- 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 dotychczasowych funkcji oraz poprawki błędów.
obsługa składanych urządzeń z wirtualnym czujnikiem zawiasów i widokiem 3D,
Dodano obsługę czujników zawiasów w przypadku urządzeń składanych. Wymaga to przyszłego obrazu systemu Android 11 i konfiguracji AVD. Widok składanego urządzenia w 3D i parametry zawiasów są teraz zintegrowane z dotychczasowymi wstępnymi ustawieniami składania. Poniżej znajdziesz plik
config.ini
, który możesz użyć na przykład w przypadku składanego AVD w wersji 7.3:hw.sensor.hinge = yes hw.sensor.hinge.count = 1 hw.sensor.hinge.type = 1 hw.sensor.hinge.ranges = 180-360 hw.sensor.hinge.defaults = 180 hw.sensor.hinge.areas = 54.7-0 hw.sensor.posture_list=4, 3 hw.sensor.hinge_angles_posture_definitions=210-360, 180-210 hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
Urządzenia składane mają teraz również 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 Tworzenie aplikacji na Androida 11 za pomocą emulatora Androida.Czujnik zawiasów jest teraz domyślnie włączony.
Jeśli urządzenie składane jest skonfigurowane, emulator wysyła teraz do użytkownika gościa aktualizacje czujników kąta zawiasów i zmiany postawy. Istniejące składane urządzenia będą teraz aktualizować kąt i pozycję czujnika zawiasu po naciśnięciu przycisków składania lub rozkładania na pasku narzędzi.
Emulator dla hostów ARM64
Kod źródłowy emulatora Linuxa obsługuje teraz kompilację krzyżową z systemu x86_64 na system arm64, co umożliwia uruchamianie obrazów systemów arm64 za pomocą wirtualizacji KVM. Obecnie obsługiwana jest tylko biblioteka
-gpu swiftshader_indirect
(renderowanie hosta Swiftshader arm64), ale można też użyć zgodnego zestawu bibliotek hosta GPU libEGL/libGLESv2, zastępując nimi bibliotekę lib64/gles_swiftshader i ponownie uruchamiając aplikację z użyciem biblioteki-gpu swiftshader_indirect
. Mogą też nie działać migawki (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ą Apple Silicon.
obsługa virtio-gpu,
- Dodano obsługę po stronie hosta dla nadchodzących zasobów spójnych blobów hosta virtio-gpu.
- Ze względu na sposób działania renderowania emulatora przetwarzamy kolejkę wirtualną virtio-gpu w wątku vcpu (ponieważ renderowanie jest i tak przenoszone na inne wątki). Renderowanie virtio-gpu zostanie włączone w przyszłej wersji obrazu systemu i emulatora.
- W przyszłym obrazie systemu emulator będzie mógł obsługiwać wszystkie elementy graficzne za pomocą pakietu sterownika graficznego virtio.
Inne nowe funkcje i ulepszenia
- Przekazywanie USB jest teraz dostępne w Windows za pomocą
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
. (powinno to też działać w Linuxie 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 darwinn pipe został usunięty.
- Dekodowanie CUDA VPx dla wideo jest teraz dostępne, jeśli dekodowanie CUDA VPx jest dostępne na 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 z poziomu gościa na Androida.
- W systemie macOS INVTSC jest teraz domyślnie włączony. Może to poprawić dokładność pomiarów czasu dokonywanych przez gościa.
- W danych śledzimy teraz, który rozszerzony panel sterowania został wybrany przez użytkownika.
- Emulator Linuxa używa teraz zegara parawirtualnego KVM, gdy wersja jądra gościa jest ≥ 5.4 (obrazy systemu R lub nowsze).
- Emulator używa teraz LZ4 do dekompresji jąder gościa, dzięki czemu jest zgodny z nowoczesnym kanałem jądra.
Dodano polecenia konsoli umożliwiające uzyskanie katalogu AVD w emulatorze, ścieżki pliku wyszukiwania w przypadku osadzonego Studia 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 pionowym, dodaliśmy opcję ukrywania ramki urządzenia w bieżącym AVD w sekcji Rozszerzone kontrolki > Ustawienia. Aby ukryć ramki urządzeń globalnie we wszystkich AVD, udostępniliśmy flagę funkcji
NoDeviceFrame
, którą można aktywować, uruchamiając emulator z poziomu wiersza poleceń z ramką-feature NoDevice
lub zablokować, dodającNoDeviceFrame = on
do~/.android/advancedFeatures.ini
(jeśli plik nie istnieje, utwórz go).Dodano element menu na stronie komórkowej, aby włączyć i wyłączyć obsługę pomiarowości. Jest to opcja nieaktywna w przypadku starszych obrazów systemowych, które nie obsługują przełącznika pomiarowości 5G.
- Dodaliśmy też polecenie konsoli służące do tego samego celu:
gsm meter on|off
- Dodaliśmy też polecenie konsoli służące do tego samego celu:
Uaktualniona platforma narzędziowa / kompilacja do C++17.
Poprawki: wbudowany emulator
- Skopiowany tekst powinien się teraz wyświetlać.
- Rozwiązaliśmy problem polegający na tym, że w emulatorze wielkie litery były traktowane jako małe.
- Rozwiązano problem z wczytywaniem tokena konsoli z ścieżki Unicode w systemie Windows.
- Naprawiono komunikat o błędzie
SO_REUSEPORT
w Linuksie. - Rozwiązaliśmy problem z uszkodzonymi migawkami podczas wysyłania poleceń dotyczących migawek przez gRPC, a także podczas naciśnięcia przycisku zapisywania migawki w wbudowanym emulatorze Android Studio.
Podczas korzystania z wbudowanego w Studio emulatora Linuxa zauważyliśmy, że jeśli jest on używany w Pulpicie zdalnym Chrome, występuje błąd, który powoduje, że parametr
XDG_RUNTIME_DIR
nie jest ustawiony. Może to spowodować, że wbudowany emulator nie będzie się wyświetlać, ponieważ pliki wykrywania emulatora są umieszczane w folderzeXDG_RUNTIME_DIR
. Stan odpowiedniego problemu możesz sprawdzić w witrynie śledzenia problemów z Chrome.Aby to obejść, emulator teraz używa plików wykrywania w możliwie innym katalogu na podstawie identyfikatora użytkownika:
/run/user/<uid>
.Wbudowany emulator: urządzenia z zaokrąglonymi rogami lub wycięciami w ekranie teraz prawidłowo zmieniają układ, aby zrobić miejsce na zaokrąglone rogi i wycięcia. Wymaga to zimnego uruchamiania tych emulatorów.
Punkt końcowy gRPC obsługuje teraz wysyłanie SMS-ów na urządzenie.
Ogólne poprawki
- Zauważyliśmy problemy ze zgodnością podczas uruchamiania emulatora Windowsa z aktywnym Riot Vanguard. Emulator Windowsa wykrywa teraz system antycheatowy Vanguard i wyświetla komunikat ostrzegawczy, jeśli zostanie on wykryty.
- Naprawiono błąd
FD_SETSIZE
w systemie Windows. Do nawiązywania niezablokowanych połączeń z serwerami pętli zwrotnej używamy teraz protokołuWSAEventSelect()
zamiastselect()
. - Dodano obsługę funkcji CPUID F16C w emulatorze Linuxa, co rozwiązało problemy z uruchamianiem niektórych aplikacji ARM64 za pomocą tłumaczenia NDK. Pracujemy nad wersjami na macOS i Windows.
- Naprawiono odtwarzanie trasy w pliku gpx/kml, aby odpowiadało sygnaturom czasowym.
- Naprawiono ikonę odbijającą się podczas uruchamiania na komputerach Mac.
- Jeśli
hw.audioInput=no
ihw.audioOutput=no
wconfig.ini
, dźwięk emulatora jest teraz prawidłowo wyłączony. - Rozwiązaliśmy problem polegający na tym, że jeśli okno emulatora było zminimalizowane, a okno rozszerzonych elementów sterujących było otwarte, ale nieaktywne, to przy zmianie rozmiaru okna emulatora okno rozszerzonych elementów sterujących nadal było widoczne. W przyszłej aktualizacji całkowicie usuniemy to zachowanie (przypadek z aktywnym oknem rozszerzonych ustawień).
- Rozwiązanie problemu polegającego na tym, że po uruchomieniu emulatora nie było połączenia Wi-Fi.
- Rozwiązanie problemu z zawieszaniem się emulatora podczas zamykania, gdy wydaje on polecenia powłoki z długim lub nieokreślonym czasem oczekiwania.
- Zaktualizowano pc-bios z poprawkami, aby lepiej obsługiwać duże obrazy przekazywane do
-initrd
; poprzedni BIOS używał bardzo nieefektywnej metody. - Rozwiązano problem z awarią podczas zakończenia, gdy używana jest opcja
-wifi-server-port
. - Emulator wyświetla teraz ostrzeżenie, jeśli do
-prop
przekazywane są opcje, które nie są obsługiwane (obsługiwane są tylko atrybuty qemu.*) - Podczas kompilowania emulatora w Windowsie powinno być mniejsze prawdopodobieństwo wystąpienia niestabilnych błędów zapisu do plików. Więcej informacji znajdziesz w instrukcjach kompilowania wersji Windows.
- Wyłączenie przycisku Zoom w przypadku składanych urządzeń AVD, który powodował problemy.
- Emulator poprawnie podaje czas uruchamiania po ponownym uruchomieniu urządzenia.
- Linux: w przypadku niewystarczających uprawnień KVM emulator teraz szybciej wyświetla instrukcje debugowania.
- Rozwiązanie problemu polegającego na tym, że emulator nie mógł uruchomić najnowszych obrazów systemu bez przyspieszenia.
- Naprawiono problem z uszkodzeniem pamięci lub awarią podczas uruchamiania z wykrywania ukończonego rozruchu.
- Naprawiliśmy wyciek pamięci podczas długich sesji nagrywania ekranu.
- Ikony emulatora zostały zaktualizowane, aby odzwierciedlały elementy marki Studio 4.1.
- Dodano lepszą obsługę wykrywania sesji zdalnych w systemie Windows.
Poprawki: dekodowanie grafiki i wideo
- Rozwiązaliśmy problem, który powodował, że najnowsza wersja gry Asphalt 9 renderowała się na czarnym ekranie.
- Usunięto spam dotyczący czyszczenia mapowanego bufora z
NULL
. - Rozwiązaliśmy problem z konkurencją podczas usuwania stanu Vulkana po zamknięciu aplikacji gościa Vulkana.
- Shadery emulacji Vulkan ASTC/ETC2 są teraz wbudowane w bibliotekę libOpenglRender. Jest to bardziej niezawodne niż odczyt z systemu plików.
- Rozwiązaliśmy problem w Vulkanie, który powodował, że w przypadku uruchomienia instancji Vulkan 1.0 na hoście funkcja
vkGetImageMemoryRequirements2KHR
nieprawidłowo czyściła zwracane polepNext
strukturyVkMemoryRequirements2
. - Naprawiliśmy wyciek pamięci w wyświetlaczu Vulkan.
- Rozwiązaliśmy niedawny regres, który uniemożliwiał kompilację shaderów GLSL ES 1.00 z nazwami zmiennych takimi jak
isampler2D
. - Zaktualizowano translator shaderów ANGLE, wprowadzając różne poprawki, które rozwiązują problemy z kompilacją shaderów w systemie Linux.
- Aby śledzić to zjawisko, powoduje on teraz awarię emulatora, jeśli nie uda się skompilować podstawowego shadera blitowania framebuffera.
- Zaktualizowano tłumaczacza shaderów ANGLE, aby był zgodny z uaktualnieniami ANGLE. Poprawiono w nim problem polegający na uszkodzeniu pamięci podczas tłumaczenia i zwijania stałych shaderów OpenGL ES, które używały niekwadratowych macierzy. Tłumacz shaderów jest teraz oddzielną biblioteką współużytkowaną (
libshadertranslator.dll
). - Rozwiązaliśmy problem z inicjalizacją Vulkana w przypadku niektórych sterowników GPU, w których nie można było znaleźć niektórych funkcji urządzenia w wersji 1.1.
- Vulkan: wróciliśmy do używania wstępnie skompilowanego ładowarki, ponieważ korzystanie z ładowarki systemu Vulkan powodowało problemy w niektórych konfiguracjach. Znajdziemy lepsze rozwiązanie.
- Rozwiązanie problemu z użyciem pamięci zewnętrznej Vulkan, w której mogły zostać zaimportowane niepasujące indeksy typu pamięci na hoście.
- Rozwiązaliśmy problem z emulacją
GL_ALIASED_POINT_SIZE_RANGE
, w którym typ enumeracji nie był obsługiwany na hoście. - Rozwiązanie problemu polegającego na tym, że na niektórych kartach graficznych hosta nie można było skompilować shaderów Skia z powodu błędów związanych z
GL_EXT_shader_framebuffer_fetch
. - Nasz kod renderera D3D9 ANGLE został usunięty kilka wersji temu, dlatego teraz automatycznie przełączamy użytkowników, którzy korzystali z tego renderera, na renderer d3d11 ANGLE, jeśli został on wybrany w ustawieniach interfejsu.
- Do inicjalizacji WGL w Windows dodano więcej informacji debugujących, aby umożliwić śledzenie błędów.
- Gdy
hw.gltransport=virtio-gpu-pipe
, wydajność jest lepsza, ponieważ host nie musi się przełączać podczas przenoszenia z hosta na gościa. - Dodano więcej logowania debugowania na wypadek, gdy nie uda się zainicjować emulacji OpenGLES.
- Rozwiązaliśmy problem z miganiem filmów w YouTube lub ich niewyświetlaniem podczas wczytywania zrzutu ekranu.
- Wróciliśmy do oprogramowania dekodującego libvpx, ponieważ wystąpiły problemy ze sprzętowym dekodowaniem libvpx przez CUDA. Jeśli po stronie hosta masz obsługiwaną implementację dekodowania sprzętowego CUDA, dekodowanie sprzętowe libvpx można ponownie włączyć za pomocą zmiennej środowiskowej
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
.
30.0.10 (30 kwietnia 2020 r.)
Ta aktualizacja zawiera obsługę uruchamiania emulatora bezpośrednio w Android Studio oraz urządzeń wirtualnych z domyślnie włączonym trybem okna dowolnego kształtu.
Uruchamianie emulatora w Android Studio
Emulator Androida można teraz uruchamiać bezpośrednio w Android Studio. Używaj tej funkcji, aby oszczędzać miejsce na ekranie, szybko przełączać się między emulatorem a oknem edytora za pomocą skrótów klawiszowych oraz organizować przepływ pracy w IDE i emulatorze w jednym oknie aplikacji.
Tryb okna swobodnego
Możesz teraz utworzyć urządzenie AVD z włączonym trybem okna Freeform.Aby to zrobić, podczas tworzenia urządzenia wirtualnego w Android Studio wybierz profil sprzętowy tabletu Freeform o przekątnej 13,5 cala. Ten profil sprzętowy wymaga obrazu systemu z Androidem 11 w wersji deweloperskiej 3 lub nowszej.
Znane problemy
Zmiana rozmiaru okien dowolnego rozmiaru jest obecnie niedostępna z powodu problemów z przeniesieniem fokusa na 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 ulepszoną wydajność podczas uruchamiania binarnych plików ARM.
Obrazy systemu Android 11
Teraz możesz utworzyć AVD z Androidem 11, wybierając jedną z dostępnych wersji systemu na poziomie interfejsu API 30:
- x86: obejmuje interfejsy ABI x86 i ARMv7.
- x86_64: obejmuje interfejsy ABI x86, x86_64, ARMv7 i ARM64.
Obsługa plików binarnych ARM w obrazach 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żna użyć obrazu systemu Android 9 x86 lub dowolnego obrazu systemu Android 11 do uruchomienia aplikacji. Nie trzeba już pobierać określonego obrazu systemu do uruchamiania plików binarnych ARM. Obrazy systemów Android 9 i Android 11 obsługują procesory ARM domyślnie i zapewniają znacznie lepszą wydajność w porównaniu z obrazami z pełną emulacją ARM.
Znane problemy
- Niektóre pliki binarne ARMv7 nie działają w obrazach systemowych Androida 11 x86 i x86_64. Jeśli kierujesz aplikację na Androida 11, rozważ jej kompilację na 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óra jest dostarczana z programem, zamiast być kompilowana ze sterownikamilibgcc
. - Linux: dodano obsługę logcat do interfejsu gRPC API. Więcej informacji o gRPC znajdziesz w artykule gRPC Streaming Emulator (Linux).
- Emulator zawiera teraz wersję bez obrazu dla 32-bitowych gości x86 (
qemu-system-i386
). Umożliwia to uruchamianie obrazów 32-bitowych x86 dla poziomów interfejsu API 26 i niższych w wersji bez obrazu. Pamiętaj, że w przypadku 32-bitowych gości x86 z API 27 lub nowszym emulator używa 64-bitowego mechanizmu (qemu-system-x86_64
), ponieważ w tych obrazach systemowych 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ą zmiennej środowiskowej
ANDROID_QT_LIB_PATH
. - Teraz możesz uruchomić emulator z poprzednimi binarnymi plikami wykonywalnymi, które korzystają z QEMU1, jeśli pliki wykonywalne QEMU1 (
emulator[64]-[x86|arm|etc]
) znajdują się w katalogu emulatora. - Windows: rozwiązaliśmy problem, który czasami uniemożliwiał uruchomienie emulatora z komunikatem „vCPU shutdown request” (żądanie wyłączenia procesora vCPU).
- Rozwiązaliśmy problem z niepotrzebną barierą w pipeline w emulowanych skompresowanych teksturach w Vulkanie.
- Usunięto błąd występujący w przypadku żądań proxy http podczas używania kodowania transferu w porcjach. Więcej informacji znajdziesz w szczegółach zatwierdzania.
29.0.9 (7 maja 2019 r.)
Ta aktualizacja zawiera następującą poprawkę:
- Windows: rozwiązaliśmy problem, który powodował, że kamera wirtualnej 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 istnieje usługa gościnna do zliczania i ustawienia każdego wyświetlacza. W przyszłej aktualizacji obrazu systemu emulatora zostaną uwzględnione dodatkowe wirtualne wyświetlacze sprzętowe.
- Dodano nową opcję wiersza poleceń:
-delay-adb
. Ta opcja blokuje przetwarzanie pakietów ADB, dopóki gość nie uruchomi się całkowicie (po zimnym uruchomieniu). Ta opcja pomaga rozwiązać problemy, które mogą wystąpić, jeśli używasz emulatora w środowisku CI, które uruchamia ponownie emulator i jednocześnie używa DDMS. - Naprawiono błąd, który występował podczas wczytywania migawek, gdy funkcja
glIsRenderbuffer
zwracała nieprawidłową wartość. - Naprawiono kilka problemów ze stanem nieaktualnym podczas ponownego uruchamiania gościa na Androidzie.
- Windows: rozwiązaliśmy problemy, które uniemożliwiały uruchomienie emulatora, gdy nazwa użytkownika Windows zawierała znaki spoza zestawu ASCII lub spacje.
Znane problemy
- Interfejs Zrzuty 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 dotychczasowych funkcji oraz poprawki błędów.
Usunięcie obsługi QEMU1 i Windows 32-bit
Aby ułatwić obsługę emulatora, nie dostarczamy już pakietów binarnych QEMU1 ani 32-bitowych wersji systemu Windows. Jeśli używasz 32-bitowej wersji systemu Windows, nie możesz uaktualnić 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 teraz użyć wersji 29.0.6 (ta wersja) lub nowszej.
Ulepszenia w ramach projektu Marble
To uaktualnienie jest kontynuacją naszej pracy nad inicjatywą Project Marble, która została ogłoszona podczas Android Developer Summit w listopadzie 2018 r. Więcej informacji o innych ulepszeniach wprowadzonych w ramach projektu Marble w poprzednich wersjach znajdziesz w artykule Android Emulator: ulepszenia w ramach projektu Marble.
W ramach tej aktualizacji większość naszych działań w ramach projektu Marble była poświęcona zmniejszeniu wykorzystania zasobów przez emulator, na przykład poprzez ograniczenie wykorzystania procesora przez emulator w stanie bezczynności. Wprowadziliśmy też zmiany, które ułatwiają pracę z emulatorem w szerszym zakresie środowisk, oraz rozwiązaliśmy ogólne problemy z jakością.
W sekcjach poniżej opisujemy ulepszenia w ramach projektu Marble, które są dostępne w ramach tej aktualizacji:
Ulepszenia zachowania dźwięku gospodarza
Począwszy od wersji 28.0.3 emulator domyślnie blokuje wejście audio od hosta.
Jeśli chcesz używać danych audio gospodarza, możesz włączyć tę opcję, wybierając Rozszerzone ustawienia > Mikrofon i włączając Wirtualny mikrofon używa danych audio gospodarza. Ta opcja jest automatycznie wyłączana po ponownym uruchomieniu emulatora.
Jeśli używasz wiersza poleceń, możesz też włączyć dźwięk hosta za pomocą opcji -allow-host-audio
. Aby włączyć lub wyłączyć dane dźwięku hosta, możesz użyć tych poleceń ADB:
adb emu avd hostmicon
adb emu avd hostmicoff
Ulepszenia kompilacji w bezgłowym emulatorze
Od wersji 28.0.25 emulator zawiera opcję kompilacji bez sterowania, która może działać bez interfejsu użytkownika. Do konfigurowania emulatora na potrzeby Dockera i przepływów pracy ciągłej integracji (CI) możesz używać kompilacji bez okna.
W ramach tej aktualizacji wprowadziliśmy dalsze ulepszenia, aby umożliwić emulacji działanie z minimalną liczbą zależności. W Linuksie kompilacje bez interfejsu nie zawierają już bibliotek pulseaudio
ani libX11
. Lista bibliotek współdzielonych zależnych od systemu, które nie są pakowane z emulatorem, została skrócona do następujących pozycji:
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 Qt UI do wersji 5.12 LTS
Ta aktualizacja zawiera te ulepszenia z wersji Qt 5.12 LTS:
- Aby uniknąć awarii podczas dekodowania
libpng
w Qt podczas uruchamiania niektórych obrazów systemu, emulator używa teraz własnej kopiilibpng
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, dodaliśmy do emulatora pakiety
libfreetype
,libsoftokn
,libsqlite3
ilibxkbcommon
. - Emulator używa teraz natywnych bibliotek okien platformy do uzyskiwania wymiarów monitora zamiast bibliotek Qt, które zwracały niewiarygodne wyniki.
Automatyczne optymalizacje procesora po zimnym uruchomieniu
Aby rozwiązać problem z wykorzystaniem procesora, emulator uruchamia teraz te polecenia ADB podczas zimnego uruchamiania po otrzymaniu sygnału boot complete
:
adb shell settings put screen_off_timeout 214783647
- To polecenie zwiększa czas oczekiwania na wyłączenie ekranu, dzięki czemu emulatora można używać w trybie baterii bez ładowania. W trybie oszczędzania baterii wykorzystanie procesora w tle jest znacznie ograniczone.
- W trybie ładowania AC operacje w tle GMSCore, takie jak aktualizacje aplikacji, mogą bez ostrzeżenia przejąć wszystkie rdzenie procesora urządzenia (a zatem całą maszynę użytkownika).
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- To polecenie odwołuje uprawnienia mikrofonu dla aplikacji wyszukiwania Google, co znacznie zmniejsza wykorzystanie procesora w tle na ekranie głównym i w menedżerze aplikacji, gdy aplikacja wyszukiwania Google jest aktywna.
- To polecenie jest wykonywane dodatkowo do domyślnego zachowania emulatora, które wyłącza dźwięk hosta. Ponadto automatycznie zapewnia ograniczenie wykorzystania procesora w przypadku wykrywania słów kluczowych w wersji 28.0.23.
Nowe zmienne środowiskowe do monitorowania wydajności
Teraz możesz używać 2 nowych zmiennych środowiskowych, aby szczegółowo monitorować wydajność i wykorzystanie zasobów emulatora.
SHOW_PERF_STATS=1
- Ta zmienna środowiskowa umożliwia śledzenie wykorzystania procesora i pamięci RAM. Śledzenie wykorzystania pamięci RAM rozróżnia wykorzystanie pamięci graficznej i łączną pamięć rezydentną.
ANDROID_EMU_TRACING=1
- Ta zmienna środowiskowa umożliwia drukowanie za każdym razem, gdy operacja wejściowa lub graficzna trwa długo (dłużej niż 1 ms).
- Używamy tej zmiennej środowiskowej również do diagnozowania problemów, które występują u użytkowników systemu Windows, którzy doświadczają więcej zakłóceń (utraconych klatek) niż użytkownicy systemu macOS lub Linux.
Ogólne ulepszenia Project Marble
Ta aktualizacja zawiera też te ogólne ulepszenia, które są częścią inicjatywy Project Marble:
- Teraz możesz natychmiast wstrzymać wszystkie procesory wirtualne w emulatorze za pomocą tych poleceń konsoli:
adb emu avd pause
adb emu avd resume
- Znacznie zmniejszono obciążenie związane z rysowaniem OpenGL. Ta poprawka zmniejsza wykorzystanie procesora podczas odtwarzania animacji przez emulator.
- Przywróciliśmy obsługę głównego urządzenia sieciowego QEMU e1000. Możesz użyć tego urządzenia, aby skonfigurować emulator w środowisku sieci mostkowej. W środowisku z mostkiem sieciowym 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
ffmpeg
do wersji 3.4.5 w celu kodowania i dekodowania wideo. - Znacznie zmniejszono obciążenie związane z wejściami/wyjściami głównego pętli QEMU na macOS, zastępując główną pętlę opartą na
select()
główną pętlą opartą nakqueue
. - Rozmiar bufora logcat został zwiększony do 2 MB, aby rozwiązać problemy z nieoczekiwanym EOF podczas uruchamiania logcat za pomocą emulatora.
- Emulator teraz domyślnie eksportuje zmienną środowiskową
LC_ALL=C
. Ta zmiana rozwiązuje problemy z zawieszaniem się i niezgodnością związane z uruchamianiem emulatora w różnych lokalizacjach. - Teraz możesz śledzić wykorzystanie procesora i pamięci RAM przez emulator za pomocą statystyk dotyczących wydajności, do których możesz uzyskać dostęp w sekcji Rozszerzone sterowanie > Ustawienia > Zaawansowane > Statystyki wydajności. Jeśli emulowany system wydaje się używać zbyt dużo procesora lub pamięci RAM, możesz użyć tych statystyk, aby szybko zdiagnozować problemy.
- Funkcja
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
używa teraz wyniku z procesora graficznego hosta zamiast emulowanego. Ta zmiana pomaga rozwiązać problemy z nieprawidłowym wyświetlaniem obrazów i komponentów z powodu nieprawidłowego formatu odczytu. - Dodano obsługę rozszerzeń OpenGL ES
GL_EXT_texture_format_BGRA8888
iGL_APPLE_texture_format_BGRA8888
, jeśli są one obsługiwane przez hosta. - Dodaliśmy więcej informacji diagnostycznych do interfejsu Bugreport. Dodatkowo możesz przeglądać raporty o błędach w konsoli za pomocą tych poleceń:
telnet localhost 5554
avd bugreport
- W przypadku obrazów systemu Android Q emulowany system zwiększa minimalną ilość pamięci RAM do 2 GB.
- Dodano więcej logowania i drukowania, gdy nie udaje się zainicjować OpenGL lub hipernadzorcy.
- Jeśli emulator nie może uruchomić równoległego wystąpienia
-read-only
AVD, teraz próbuje ponownie uruchomić-read-only
AVD jeszcze 3 razy w ciągu 3 sekund. Ta zmiana zwiększa prawdopodobieństwo, że emulator będzie mógł uruchamiać równolegle-read-only
instancje AVD, jeśli inne instancje z możliwością zapisu tego AVD nie skończyły czyszczenia nieaktualnych plików. - W przypadku nadchodzących obrazów systemowych emulator obsługuje teraz narzędzie Hardware Composer 2.0. Ta zmiana powinna zmniejszyć obciążenie sterownika podczas uruchamiania większości animacji.
- Kompilacja emulatora jest teraz oparta na CMake/Ninja.
- W interfejsie rozszerzonych ustawień emulatora przywrócono linie rozdzielające w tabeli skrótów klawiszowych.
- Użytkownicy mogą teraz wyrazić zgodę na udostępnianie naszemu zespołowi danych o wykorzystywaniu procesora i pamięci RAM w interwałach 10-sekundowych. Korzystamy z tych danych, aby wzbogacać informacje o użyciu zasobów przez emulator o różne przypadki użycia przez użytkowników, co pozwala nam uczynić emulator bardziej wydajnym i szybko reagującym.
Ogólne poprawki w Project Marble
Ta aktualizacja zawiera też te ogólne poprawki, które są częścią projektu Marble:
- Rozwiązaliśmy problemy z mruganiem i nieprawidłowymi klatkami, które były wyświetlane na systemach z kartami graficznymi Intel podczas korzystania z obrazu systemu Android Q.
- Naprawiono problemy z czarnym ekranem podczas korzystania z Androida Q z okładkami na Pixel 2 XL (lub innymi okładkami z wycięciem lub zaokrąglonymi rogami).
- Rozwiązaliśmy problem polegający na tym, że opcja wiersza polecenia
-partition-size
nie ustawiała rozmiaru partycji danych. - Rozwiązaliśmy problem, który powodował, że pulseaudio na emulatorze Linx w niektórych sytuacjach zajmował całe rdzenie procesora.
- Rozwiązanie problemów z dostępem do pamięci spoza zakresu podczas przetwarzania skompresowanych tekstur.
- Usunęliśmy błędy GL występujące na hoście w
glTexSubImage2D
podczas aktualizowania niektórych buforów gralloc (o formatach RGB 565, RGB10A2, RGB(A)16F). - Rozwiązaliśmy problem z wyświetlaniem obrazów systemu Android Q ze zrzutami ekranu, w których geometria panelu powiadomień została wyrenderowana z nieprawidłowym ustawieniem dzielnika instancji.
- Naprawiono kilka trudnych do odtworzenia problemów z zawieszaniem się i zawieszaniem podczas uruchamiania, które były spowodowane utratą sygnałów przez Qt lub niestabilnym, niespójnym stanem podczas uruchamiania.
- Rozwiązaliśmy wiele problemów z jednoczesnością. Teraz możemy tworzyć emulatora Linuxa za pomocą ThreadSanitizer (TSAN), który może łatwo wykrywać błędy, które w innym przypadku są trudne do odtworzenia.
- Użytkownicy Linuksa: zauważyliśmy, że w przypadku niektórych jąder hosta jądro gościa Androida może wygenerować błąd i zamknąć się w KVM z ogólnym błędem sprzętowym. Aby ułatwić debugowanie, emululator będzie teraz
abort()
(wcześniej emululator po prostu się zawieszał). - Użytkownicy Linuksa: dla wygody podczas konfigurowania CI możesz użyć nowej opcji wiersza poleceń
-stdouterr-file <file-name>
, aby przekierować zarównostdout
, jak istderr
do pliku. - Rozwiązaliśmy problem polegający na nieprawidłowym użyciu funkcji
SO_REUSEADDR
. Więcej informacji znajdziesz w szczegółach commita. - Rozwiązaliśmy długotrwały problem z emulatorem Windows, który uniemożliwiał uruchamianie podprocesów, takich jak polecenia ADB, jeśli nazwa użytkownika zawierała spacje.
- Rozwiązaliśmy problem z brakiem inicjalizacji RCU w wątkach vCPU HAXM. Ta poprawka może rozwiązać problemy z niektórymi awariami i konfliktami.
- Rozwiązano problem z awarią, która występowała przy określonych wzorach zapisywania i wczytywania zrzutów ekranu z interfejsu zrzutów ekranu przy użyciu najnowszych obrazów systemowych Androida Q.
- Rozwiązaliśmy problem, który powodował, że podczas inicjowania emulatora ze zrzutu ekranu kamera wirtualnej sceny była pusta, jeśli podczas zapisywania tego zrzutu ekranu było odtwarzane makro AR.
- Rozwiązaliśmy problem, który powodował, że niektórzy użytkownicy korzystający z konfiguracji pulpitu zdalnego widzieli czarny ekran podczas uruchamiania emulatora w systemie Linux. Aby tego uniknąć, emulator teraz jawnie konfiguruje
MESA_RGB_VISUAL
. Więcej informacji znajdziesz w szczegółach zatwierdzania. - Rozwiązaliśmy problem polegający na tym, że przyciski obracania pojawiały się w AVD na telewizorach.
- Rozwiązaliśmy problem polegający na tym, że jeśli emulowany system był ustawiony tak, aby zawsze był na górze, po każdym jego obróceniu pojawiało się okno rozszerzonych elementów sterujących.
Profile sprzętu dla urządzeń składanych
Emulator zawiera teraz profile sprzętowe dla urządzeń składanych. Aby używać tych nowych profili sprzętowych, musisz korzystać z Android Studio 3.5 Canary 10 lub nowszej wersji.
Do tworzenia aplikacji na urządzenia składane dostępne są 2 profile sprzętowe:
- 7,3 cala składany: 1536 x 2152 w rozłożonym stanie, 4,6 cala 840 x 1960 w złożonym stanie
- 8" składany: 2200 x 2480 w rozłożonym stanie, 6,6" 1480 x 2480 w złożonym stanie
Po uruchomieniu emulatora za pomocą jednego z tych profili sprzętowych możesz składać i rozkładać urządzenie za pomocą działań składania i rozkładania na pasku narzędzi emulatora, komend konsoli lub tych skrótów klawiszowych:
- Złożenie:
Ctrl + F
(Command + F
w systemie macOS) - Rozwiń:
Ctrl + U
(Command + U
w systemie macOS)
Makra AR
Emulator zawiera teraz makra AR, które ułatwiają testowanie typowych działań związanych z rozszerzoną rzeczywistością. Możesz na przykład użyć makra, aby zresetować wszystkie czujniki urządzenia do stanu domyślnego.
Więcej informacji znajdziesz w artykule Testowanie typowych działań AR za pomocą makr.
Obsługa Vulkana (Windows, Linux)
Użytkownicy systemu Windows i Linux mogą teraz testować aplikacje Vulkan za pomocą emulatora Androida do wersji Vulkan 1.1, jeśli używają zgodnego obrazu systemu (Android Q Beta 3 lub nowszej w przypadku Vulkan 1.1, Android Q Beta 2 w przypadku Vulkan 1.0) i zgodny procesor graficzny hosta (w tym większość procesorów graficznych Intel, NVIDIA i AMD z 2014 roku lub nowszych).
Aby włączyć obsługę Vulkana, musisz dodać do pliku ~/.android/advancedFeatures.ini
te flagi funkcji (jeśli pliku nie ma, utwórz go):
Vulkan = on
GLDirectMem = on
Wstępna pomoc dla deweloperów ROM-ów
Deweloperzy ROM-ów, którzy tworzą obrazy sdk_phone_x86
lub sdk_phone_x86_64
(warianty userdebug
, eng
) na gałęzi AOSP master
, mogą teraz uruchomić emulator obsługujący Vulkan.
Ta obsługa jest nadal eksperymentalna i przeznaczona głównie dla deweloperów, którzy pracują nad obrazami systemowymi, sterownikami i silnikami gier. Nadal brakuje wielu rozszerzeń.
Pamięć HOST_COHERENT
jest jednak obsługiwana, a teraz możesz uruchomić przykłady samouczka interfejsu Vulkan API.
Jeśli używasz Linuksa, możesz spróbować użyć 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 Skia za pomocą Vulkan
Karty graficzne NVIDIA i AMD, które obsługują Vulkan, obsługują też interoperacyjność bez kopiowania z OpenGL za pomocą rozszerzenia GL_EXT_memory_objects
. Korzysta on z tej funkcji, aby zapewnić kompletny sposób renderowania interfejsu użytkownika Androida za pomocą interfejsów Vulkan API Skia.
Jeśli masz kartę graficzną NVIDIA lub AMD obsługującą Vulkan, wykonaj te polecenia, aby przetestować renderowanie Skia za pomocą zgodnego obrazu systemu (Android Q w wersji beta 3 lub nowszej):
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
Obsługa Vulkana w macOS
Obsługa 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 środowiska:
- 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 być w stanie przypisać pamięci spójnej Vulkan do gościa i zatrzymuje działanie emulatora. Ten problem zostanie rozwiązany w przyszłej aktualizacji HAXM.
Emulator strumieniowego przesyłania danych gRPC (Linux)
Cały czas staramy się, aby emulator był jak najbardziej wszechstronny, umożliwiając hostowanie renderowania GPU i interakcji w jak najszerszym zakresie kontekstów. Użytkownicy CI i pulpitu zdalnego mają te długotrwałe problemy:
- Programowe wysyłanie poleceń do emulacji wymaga albo uruchomienia poleceń adb shell, które mogą generować duży narzut, albo korzystania 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 wyświetlacza, co może utrudniać zauważenie problemów wymagających widocznego ekranu lub interakcji z ekranem.
- Użytkownicy pulpitu zdalnego często nie mogą wchodzić w interakcje z emulatorem podczas korzystania z hosta do renderowania GPU, ponieważ renderowanie GPU jest często powiązane z niewirtualnymi wyświetlaczami hosta.
Aby rozwiązać ten problem, emulator działający na komputerze z Linuksem udostępnia teraz usługę gRPC. gRPC to ogólny interfejs RPC działający przez HTTP.
Domyślnie usługa gRPC emulatora jest wyłączona, ale możesz ją aktywować za pomocą tej opcji wiersza poleceń, gdzie <port>
to port, z którego 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ń wprowadzania danych, jak i odbieranie zrzutów ekranu. Te polecenia pomagają rozwiązać te problemy:
- Polecenia wejściowe można wysyłać do emulatora z małym nadmiarem przez HTTP. HTTP umożliwia też wysyłanie poleceń w dodatkowych konfiguracjach sieci.
- Polecenia dotyczące zrzutów ekranu mogą być wysyłane, aby zapytać o obecny ekran, nawet jeśli emulator działa w trybie bez okna. W celu zapewnienia interakcji zdarzenia wejścia mogą też być wysyłane z powrotem do emulatora.
- Użytkownicy pulpitu zdalnego mogą uruchomić bezgłowy emulator na głównym wyświetlaczu z renderowaniem przyspieszonym przez GPU, a jednocześnie używać gRPC do uzyskiwania zrzutów ekranu i wysyłania zdarzeń wprowadzania danych, aby wchodzić w interakcję z emulatorem.
Pełną listę dostępnych poleceń znajdziesz w tym pliku protobuf.
Aby ułatwić Ci rozpoczęcie korzystania z gRPC, udostępniliśmy przykładowe klienci, z których możesz korzystać.
Obecnie obejmuje to te próbki:
- Usługa oparta na Go, która może służyć do wysyłania zapytań o stany emulatora.
- Aplikacja React demonstrująca zdalne interakcje za pomocą zrzutów ekranu i wejść RPC. Ten przykład wymaga protokołu protobuf w wersji 3.7.0 lub nowszej.
- Przykładowy kod Pythona, 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:
Wersja emulatora bez interfejsu
Ustawienie emulatora było trudne w przypadku Dockera i innych procesów ciągłej integracji (CI), ponieważ system miał implicitne oczekiwania dotyczące obsługi Qt wraz z zależnościami bibliotek współdzielonych (między innymi z tych powodów).
W pierwszym kroku wprowadziliśmy wariant emulatora z uruchomikiem QEMU, który nie zależy od Qt. W Linuxie nadal jest link do libX11
, ale mamy nadzieję, że uda nam się go wkrótce usunąć.
Aby użyć emulatora bez okna, uruchom go z poziomu wiersza poleceń jak zwykle, ale zastąp wywołanie binarnego emulatora parametrem emulator-headless
. Więcej informacji znajdziesz w aktualizacji wersji 28.1.8 Canary.
- Naprawiono problemy z mruganiem i nieprawidłowym wyświetlaniem klatek na kartach graficznych Intel podczas uruchamiania obrazów systemu Android Q.
- Rozwiązaliśmy problemy z czarnym ekranem podczas korzystania z obrazów systemu Androida Q z motywami Pixel 2 XL.
- Do uruchamiania emulatora używane są teraz najnowsze binarne pliki BIOS-u. Ta zmiana może pomóc w zmniejszeniu liczby błędów „vCPU shutdown request”, które czasami występują podczas uruchamiania emulatora w Windows.
- Wprowadziliśmy poprawkę dla problemu polegającego na nieprawidłowym wyświetlaniu obrazów systemu Androida Q po wznowieniu z migawki.
- Użytkownicy mieli problemy z „nieautoryzowanymi” emulatorami z powodu niezgodnych zmian w ADB w wersji platform-tools 28.0.2. Teraz możesz bezpiecznie używać ADB z platform-tools 28.0.2 w emulatorze. Jeśli masz problemy z „nieautoryzowanymi” emulatorami, wykonaj te czynności:
- Zamknij wszystkie emulatory.
- Usuń pliki
~/.android/adbkey
i~/.android/adbkey.pub
. - Uruchom to polecenie:
adb kill-server
- Uruchom to polecenie:
adb devices
- Wyczyść dane AVD.
- Uruchom ponownie emulator.
28.0.23 (29 stycznia 2019 r.)
Ta aktualizacja zawiera następujące ulepszenia i poprawki:
Wejściowy sygnał dźwiękowy gospodarza jest domyślnie wyłączony
Niedawny post na Reddicie szczegółowo opisał, jak system operacyjny Android gościa zawsze będzie używać mikrofonu hosta, co pozwoli „Ok Google” działać nieoczekiwanie. Przepraszamy za niedogodności. Wspólnie z zespołem ds. Androida zadbamy o to, aby wykrywanie słów kluczowych było wyłączone również w obrazie systemu.
Aby rozwiązać ten problem, wprowadziliśmy te zmiany:
- Dane dźwiękowe gospodarza są teraz domyślnie wyciszane. Gdy gość używa mikrofonu, zamiast dźwięku gospodarza jest przekazywana cisza.
- Jeśli chcesz używać danych audio gospodarza, możesz włączyć tę opcję, wybierając Rozszerzone ustawienia > Mikrofon i włączając Wirtualny mikrofon używa danych audio gospodarza. Ta opcja jest automatycznie wyłączana po każdym ponownym uruchomieniu emulatora.
Aktualizacje dotyczące prowadzonych przez nas śledztw dotyczących wykorzystania procesora
Podczas prowadzonych przez nas badań w ramach projektu Marble zauważyliśmy, że wysokie wykorzystanie procesora w emulatorze można ogólnie podzielić na 3 kategorie:
W trybie bezczynności: automatyczne aktualizacje aplikacji w obrazach w Sklepie Play
Zauważyliśmy, że w losowych odstępach czasu wszystkie zainstalowane aplikacje są aktualizowane, nawet gdy użytkownik nie jest zalogowany. Podczas tego procesu wykorzystanie procesora jest określane przez liczbę rdzeni × 100% (zwykle około 400%) w GMSCore i dex2oat. Aby rozwiązać ten problem, wyłącz automatyczne aktualizacje aplikacji w aplikacji Sklep Play.
W trybie bezczynności: wykrywanie słów-kluczy.
Na ekranie głównym bez żadnej aplikacji na pierwszym planie procesor może być mocno obciążony (około 25% z wzlotami do 50%). Przyczyną jest wykrywanie słów-kluczy, które stale wysyła żądania do hosta. Nie możesz rozwiązać tego problemu, wyłączając dane wejściowe gospodarza dotyczące dźwięku, ponieważ koszt procesora wynika głównie z czasu potrzebnego na przesłanie danych od gospodarza do gościa. Możesz jednak rozwiązać ten problem, cofając uprawnienia do mikrofonu w aplikacji Google.
Podczas działania, czasami w trybie bezczynności: animacje.
Trzecim źródłem wysokiego wykorzystania procesora są animacje. Zauważyliśmy, że dzięki optymalizacji stosu sterownika graficznego możemy też zmniejszyć wykorzystanie procesora nawet wtedy, gdy emulator nie jest nieczynny. W ramach projektu Marble będziemy stopniowo wdrażać optymalizacje sterowników karty graficznej.
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ł panikę jądra podczas zapisywania Quickboot. (Problem 120951634)
- Gdy używany jest mapowany plik jako migawka pamięci RAM, emulator odwzorowuje mapowanie pliku wyraźnie 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ł zacinanie się emulatora podczas wczytywania snapshota w przypadku niektórych modeli kart graficznych Intel.
- Rozwiązaliśmy problem, który powodował stan urządzenia
unauthorized
ADB podczas korzystania z niestandardowej lokalizacjiANDROID_SDK_HOME
. - Rozwiązaliśmy problem występujący w Windowsie, który powodował awarię emulatora podczas uruchamiania obrazów systemu z wyłączonym przyspieszeniem procesora.
- Rozwiązano problem z emulacją pikseli. Obniżanie próbkowania powinno teraz działać.
- Rozwiązaliśmy problem występujący w systemie macOS 10.14 i nowszych, w którym kontrola sterowania kamerą w wirtualnej scenie mogła stać się zbyt czuła z powodu interakcji z nowymi ustawieniami zabezpieczeń ułatwień dostępu.
- Rozwiązaliśmy błąd w obliczeniach strefy czasowej, który mógł powodować sporadyczne zmiany zegara emulatora.
- Naprawiono błędy związane z renderowaniem w różnych aplikacjach cocos2d i Unreal Engine.
- Dodano w emulatorze obsługę Wi-Fi peer-to-peer.
Dwa emulatory mogą teraz komunikować się ze sobą bezpośrednio przez Wi-Fi, jeśli używasz najnowszego obrazu Sklepu Play w wersji Pie. Aby korzystać z Wi-Fi peer-to-peer, uruchom 2 AVD z tymi samymi argumentami
-wifi-server-port
i-wifi-client-port
:emulator @<server-avd-name> -wifi-server-port 9999
emulator @<client-avd-name>-wifi-client-port 9999
- Dodaliśmy obsługę większej liczby kamer internetowych w systemie Windows, uwzględniając wszystkie niezgodne rozmiary ramek i dynamicznie dostosowując je do ustawień kamery w urządzeniu gościa z Androidem.
28.0.16 (listopad 2018 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji oraz poprawki błędów.
Użycie zasobów
Emulator używa teraz mniej pamięci RAM, zwłaszcza w przypadku obrazów systemowych z poziomem interfejsu API 28 lub nowszym. Te obrazy systemowe obejmują ulepszony sposób wykorzystywania pamięci przez sterowniki graficzne po stronie gościa.
Dodatkowo poprawiliś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 wykorzystywaniem pamięci podczas długich testów, utwórz zgłoszenie opisujące Twój przypadek użycia w narzędziu do śledzenia problemów.
- Zmniejszenie wykorzystania procesora podczas uruchamiania aplikacji z animacjami.
- Rozwiązaliśmy problem polegający na tym, że w systemie Windows mógł wyciekać kontekst QEMU AIO.
Uruchamianie wielu instancji pojedynczego AVD jednocześnie
Możesz teraz uruchomić wiele instancji tego samego AVD i uruchamiać je jednocześnie. Instancje, które uruchamiasz po pierwszej, są tylko do odczytu, a zmiany wprowadzone na dysku wirtualnym gościa są odrzucane po wyjściu.
Aby uruchomić kilka instancji tego samego AVD jednocześnie, uruchom wszystkie instancje po pierwszej, używając flagi -read-only
.
Ta funkcja jest możliwa dzięki kopiowaniu plików QCOW2 powiązanych z możliwością zapisu części obrazu Androida. Aby ułatwić zarządzanie miejscem na dysku, dodaliśmy też narzędzie wiersza poleceń qemu-img
, które umożliwia wstępne zatwierdzanie plików QCOW2 przed uruchomieniem wielu instancji.
Ponadto, gdy funkcja jest używana razem z funkcją migawek pamięci RAM gościa obsługiwanych przez pliki , wiele instancji AVD udostępnia główną migawkę AVD Quickboot jako wspólne źródło pamięci RAM gościa z kopiowaniem na zapis. Ta właściwość oznacza, że instancje mają wspólną pamięć RAM. Używaj tej funkcji, aby przeprowadzać testy, które wymagają równoległego działania na wielu urządzeniach.
Będziemy wdzięczni za opinie na temat możliwych przypadków użycia, które są częścią normalnego procesu interakcji lub CI. Utwórz problemy lub zagłosuj na nie w IssueTracker.
Zrzuty pamięci RAM gościa oparte na plikach
Dzięki wstępnemu przydziałowi i zmapowaniu pamięci RAM gościa jako pliku emulator może teraz zapisywać migawki Szybkiego uruchamiania w czasie działania zamiast wykonywać całą pracę po zakończeniu. Jeśli podczas zamykania emulatorów występują długie czasy zapisywania, włącz tę funkcję, aby poprawić wydajność Szybkiego uruchamiania. Domyślnie migawka Szybkiego uruchamiania jest zapisywana po wyjściu i ładowana za każdym razem, tak jak w przypadku zawieszania i wybudzania rzeczywistego urządzenia.
Pamięć RAM gościa Androida jest teraz domyślnie zapisywana automatycznie, więc jeśli chcesz zdefiniować stan urządzenia i następnie wielokrotnie go wczytywać, musisz powiedzieć emulatorowi, aby po każdej sesji odrzucał zmiany. Możesz to zrobić na kilka sposobów:
- Podczas uruchamiania emulatora z wiersza poleceń użyj flagi
-no-snapshot-save
lub-read-only
. - Kliknij Rozszerzone kontrolki > Zrzuty ekranu > Ustawienia i ustaw przełącznik Automatyczne zapisywanie bieżącego stanu do szybkiego uruchamiania? w pozycji Nie.
- Po wybraniu tej opcji musisz ponownie uruchomić emulator. Jeśli emulator jest skonfigurowany do automatycznego zapisywania, możesz uruchomić to polecenie, aby ustawić punkt kontrolny:
Po wykonaniu tego polecenia zrzut Quickboot emulatora pozostanie na tym punkcie kontrolnym. Uruchom to samo polecenie ponownie, aby załadować emulator z kontrolnej pozycji.adb emu avd snapshot remap 0
Zrzuty ekranu, które są wykonywane i ładowane za pomocą interfejsu Zrzuty ekranu, działają tak samo jak wcześniej, bez mapowania plików.
Ponieważ jest to duża zmiana w działaniu Szybkiego rozruchu, chcielibyśmy poznać Twoją opinię na temat tego, czy poprawiła się wydajność tej funkcji i z jakimi problemami się spotykasz podczas jej używania. Jeśli wystąpią problemy, możesz wyłączyć tę funkcję, dodając ten wiersz do pliku ~/.android/advancedFeatures.ini
:
QuickbootFileBacked = off
Gdy uruchamiasz emulator z migawki (za pomocą opcji wiersza poleceń -snapshot
lub uruchamiając go z migawki w menedżerze AVD), emulator wyłącza automatyczne zapisywanie migawk Szybkiego uruchamiania oraz zapisywanie migawk Szybkiego uruchamiania po zakończeniu pracy. Zmniejsza to ryzyko przypadkowego zastąpienia migawki Szybkiego uruchamiania i unika korzystania z wolnych ścieżek zapasowych, które nie korzystają z migawek Szybkiego uruchamiania opartych na plikach.
QEMU 2.12
Zmieniliśmy wersję QEMU z QEMU 2.9 na QEMU 2.12. Ta aktualizacja zawiera następujące zmiany w QEMU:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
Oto kilka istotnych zmian, które mają wpływ na emulator Androida:
- x86:
gdbstub
ma teraz dostęp do rejestrów SSE. - Obrazy dysków: blokowanie obrazów jest domyślnie dodane i włączone. Wiele procesów QEMU nie może zapisywać danych w tym samym obrazie, dopóki host obsługuje blokowanie OFD lub POSIX, chyba że opcje są określone inaczej.
qemu-img: qemu-img resize
obsługuje wstępną alokację nowych części obrazu.- Obsługa kompresji QCOW2 w wersjach
qemu
iqemu-img
.
Ułatwienia dostępu
- Rozwiązano problemy z czytnikami ekranu i dodano lepszą obsługę tych narzędzi w interfejsie nagrywania ekranu i zrzutów ekranu.
- Ikony powiadomień Szybkiego uruchamiania są teraz bardziej dostępne dla użytkowników z zaburzeniami rozpoznawania barw.
Grafika
- Rozwiązaliśmy problem z dostępem do pamięci spoza zakresu, który mógł wystąpić w przypadku wskaźników tablic wierzchołków OpenGL ES.
- Niektóre starsze procesory graficzne nie obsługiwały OpenGL 2.1 lub nowszej wersji (co jest wymagane) albo miały inne problemy z niezawodnością. Te problemy mogą spowodować, że emulator ulegnie awarii podczas uruchamiania, zawiesi się lub będzie nieużyteczny przy domyślnym ustawieniu procesora graficznego. Emulator automatycznie przełącza się na renderowanie Swiftshader, jeśli wykryje, że te GPU są używane.
- Rozwiązaliśmy problem, który powodował, że emulator nie publikował prawidłowego framebuffera, jeśli w momencie wywołania funkcji
eglSwapBuffers
było zawiązaneFBO != 0
. - Rozwiązaliśmy problem polegający na tym, że wirtualny wyświetlacz Androida wyświetlał się tylko w lewym górnym rogu. Uważamy, że było to spowodowane nieprawidłowo skonfigurowanymi zmiennymi środowiskowymi Qt. Emulator zastępuje teraz wszystkie zmienne środowiskowe związane z skalowaniem Qt.
- Rozwiązaliśmy problem, który powodował awarię emulatora w niektórych sytuacjach podczas wczytywania aplikacji GLES1 ze migawki.
- Rozwiązano problemy z jednoczesnością w OpenGL i uruchamianiu wątków renderowania, które mogły powodować podwójne zwalnianie pamięci lub uszkodzenie danych.
- Emulator Androida obsługuje teraz tekstury skompresowane w formacie ASTC LDR (
GL_KHR_texture_compression_astc_ldr
) w przypadku obrazów systemowych używających poziomu interfejsu API 28 lub nowszego. - Większość nowoczesnych kart graficznych powinna teraz umożliwiać uruchamianie emulatora z domyślnie włączonym OpenGL ES 3.x bez używania flagi funkcji
GLESDynamicVersion
. -gpu guest
(renderowanie programowe w trybie gościa) zostało wycofane. Systemowe obrazy API w poziomie 28 lub wyższym są teraz automatycznie przełączane na Swiftshader (-gpu swiftshader_indirect
).- Jeśli emulator jest uruchamiany z wiersza poleceń za pomocą flagi
-no-window
, domyślnym renderowaniem jest teraz Swiftshader.
Lokalizacja
- Emulator może teraz aktualizować kierunek wraz z pozycją szerokości i długości geograficznej. Czujnik magnetyczny dostosowuje się dynamicznie do magnetycznego kierunku północnego, wywnioskowując ruch 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 po zakończeniu odtwarzania jest ustawiana na zero.
- Wysokość nie jest już ograniczona do zakresu od -1000 do +10 000 metrów.
- Rozwiązaliśmy problem, który powodował, że wirtualna lokalizacja GPS nie była aktualizowana okresowo, chyba że okno rozszerzonych ustawień zostało otwarte co najmniej raz.
Aparat
W systemie Windows obsługiwanych jest teraz więcej kamer internetowych, ponieważ emulator dynamicznie zmienia rozmiar ramek kamery dostarczanych z kamery internetowej. Ta funkcja zapobiega też temu, aby błędy w dostarczonej klatce powodowały zawieszanie się emulatora.
Sklep Play
Aby rozwiązać problemy z brakiem miejsca na dysku w przypadku obrazów Sklepu Play, emulator automatycznie zmienia rozmiar partycji userdata na 6 GB podczas uruchamiania z nową maszyną wirtualną AVD Sklepu Play.
Ogólne ulepszenia i poprawki dotyczące jakości
- Niektórzy użytkownicy zgłaszali, że emulacja działa wolno. Zidentyfikowaliśmy jedną
możliwą przyczynę, w której katalog tymczasowy emulatora zawiera zbyt wiele nieaktualnych plików. Aby rozwiązać ten problem, emulowany system nie przechowuje już plików sprawdzania działania ADB w tym katalogu. Może się jednak okazać, że usunięcie zawartości tego folderu pomoże rozwiązać problem. W zależności od systemu operacyjnego folder znajduje się w jednym z tych miejsc:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS lub Linux:
/tmp/android-<username>/*
- Windows:
- Jeśli emulator nie może się uruchomić z powodu niewystarczającej ilości wolnej pamięci RAM, wyświetli się komunikat o błędzie. Jeśli używasz systemu Windows i zauważysz, że jest wolna pamięć RAM, ale nadal nie możesz uruchomić emulatora, może to oznaczać, że został przekroczony limit wykorzystania zasobów. Więcej informacji o tym problemie znajdziesz na stronie rozwiązywania problemów z emulatorem.
- Opcja wiersza poleceń
-sysdir
zastępuje teraz poprawnie wywnioskowany katalog obrazów systemu. - Modem wirtualny obsługuje teraz zapytanie
+MAI
z informacjami o aktywności modelu. - Rozwiązano różne problemy z wyciekami i uszkodzeniami pamięci oraz z wykorzystaniem procesora. Jeśli aplikacja ulega awariom, ma problemy z wyciekiem pamięci lub wykorzystuje zbyt dużo zasobów, utwórz zgłoszenie w Issue Tracker.
- Rozwiązaliśmy problem, który powrócił w systemie macOS 10.14. Używanie słuchawek Bluetooth z emulatorem powodowało ogólne pogorszenie jakości dźwięku. Aby temu zapobiec, emulator nie używa już dźwięku Bluetooth podczas działania na komputerze Mac. (Problem 37070892)
- Rozwiązaliśmy problem występujący w Windowsie, w którym zegar w emulatorze nie był ustawiony na odpowiedni czas strefy czasowej.
- Rozwiązaliśmy problemy z powolnością i zawieszeniami emulatora w systemach Linux z twardymi dyskami talerzowymi (HDD).
- Naprawiono niektóre ostrzeżenia podczas kompilacji, które mogły prowadzić do uszkodzenia stosu na komputerach Mac.
- Rozwiązaliśmy problemy, które mogły powodować mylące raporty o zawieszeniu.
- Rozwiązaliśmy problem z niszczeniem puli wątków, który mógł powodować awarię, jeśli jeden z wątków nie został utworzony.
- Rozwiązaliśmy problem z systemem macOS, który powodował niestabilną pracę zegarów, a co za tym idzie zawieszanie się aplikacji i inne dziwne zachowania. Jeśli emulowany system zawiesza się na komputerze Mac, utwórz zgłoszenie w Issue Tracker.
- Rozwiązaliśmy problem, który powodował, że zamykanie emulatora wyłączało interfejs użytkownika, ale nie zamykano emulatora.
- Naprawiono problemy związane z sporadycznym zawieszaniem się aplikacji, w tym przerwanie działania z powodu otwarcia zbyt wielu wystąpień
/dev/urandom
. - Rozwiązaliśmy problem, który powodował, że emulator nie uruchamiał się po pierwszym uruchomieniu, jeśli narzędzie ADB zostało zamknięte w sposób przymusowy.
- Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, utwórz zgłoszenie w Issue Tracker.
- Rozwiązaliśmy problem, który powodował uszkodzenie połączeń ADB podczas wczytywania zrzutu ekranu.
- Rozwiązaliśmy problem polegający na tym, że okno emulatora miało ślad obrazu lub teleportowało się poza ekran podczas wznawiania zrzutu ekranu, gdy orientacja urządzenia różniła się od domyślnej orientacji AVD.
- Rozwiązaliśmy problemy z awariami podczas zapisywania migawek.
- W systemie Linux systemy plików btrfs mogą powodować znaczne spowolnienie, ponieważ emulator automatycznie zapisuje migawki i używa kopii na zapis dla swoich urządzeń dyskowych wirtualnych. Zalecamy wyczyszczenie katalogu
~/.android/avd
i uruchomienie tego polecenia w pustym katalogu~/.android/avd
: Spowoduje to utworzenie nowych migawek w folderze, w którym kopiowanie podczas zapisu jest wyłączone.chattr +C
HAXM 7.3.2
Ponownie przypominamy, że musisz zainstalować HAXM 7.3.2, aby najnowsze obrazy systemu działały prawidłowo na emulatorze. HAXM 7.3.2 powinien być już dostępny na kanale stabilnym. Można go też zainstalować ręcznie z witryny https://github.com/intel/haxm/releases.
Oto kilka problemów rozwiązanych w tej wersji HAXM:
- Naprawiono przypadkowe awarie systemów operacyjnych gościa, które używają najnowszego jądra Linuksa (≥ 4.6). np. Ubuntu 18.04 (#39, #74).
- Naprawiono błąd w emulatorze instrukcji x86, który mógł prowadzić do awarii hosta (#93).
Wycofanie obsługi 32-bitowych systemów Windows
Ze względu na niską częstotliwość używania i wysokie koszty utrzymania planujemy wycofać 32-bitową wersję emulatora Androida, która działa w systemie Windows. Przed wycofaniem i zakończeniem obsługi 32-bitowej wersji emulatora Androida wprowadzimy plan przejścia. Chętnie poznamy Twoją opinię na temat tej przyszłej zmiany.
Jeśli korzystasz obecnie z 32-bitowej wersji emulatora Androida, która działa w Windowsie, poinformuj nas o tym w Issue Trackerze i podaj, jak możemy Ci pomóc.
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 emulacja działa wolno. Zidentyfikowaliśmy jedną możliwą przyczynę, w której rozmiar pamięci RAM AVD w pliku config.ini
AVD był ustawiony niepoprawnie.
Aby temu zaradzić, emulator zwiększa minimalny poziom pamięci RAM w przypadku obrazów, które używają poziomu API 26 lub wyższego, do domyślnego poziomu 1536 MB w Android Studio. Jeśli plik config.ini
w Twoim AVD nie zawiera informacji o hw.ramSize
w megabajtach, utwórz zgłoszenie w Narzędziu do śledzenia błędów.
Plik config.ini
znajdziesz w tej lokalizacji:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (lipiec 2018 r.)
Ta aktualizacja zawiera następujące ulepszenia i poprawki błędów:
Ulepszone komunikaty o błędach w przypadku funkcji Windows Hypervisor Platform
Niektórzy użytkownicy mieli problemy z diagnozowaniem, dlaczego nie udało się zainicjować platformy Windows Hypervisor (WHPX), gdy aktywowali emulator WHPX. Aby ułatwić diagnozowanie tych problemów, dodaliśmy więcej komunikatów o błędach. Aby włączyć te komunikaty o błędach, uruchom emulator z poziomu wiersza poleceń, używając flagi -verbose
.
Ogólne poprawki
- Naprawiono błędy OpenGL występujące podczas wczytywania zrzutu ekranu w aplikacji aparatu.
27.3.8 (lipiec 2018 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji oraz poprawki błędów.
Zrzuty danych
Możesz teraz zapisać wiele zrzutów AVD dla danej konfiguracji urządzenia i wybrać, który z nich ma być wczytany podczas uruchamiania emulatora.
Począwszy od wersji Android Studio 3.2 Canary 13 każda konfiguracja urządzenia zawiera element sterujący w ustawieniach zaawansowanych w oknie konfiguracji urządzenia wirtualnego, za pomocą którego można określić, który zrzut AVD ma być wczytany podczas uruchamiania AVD.
Aby uwzględnić rozszerzenie funkcji zrzutów, dodaliśmy kategorię Zrzuty do okna Rozszerzone ustawienia. Ta nowa karta zawiera elementy sterujące do zapisywania i wczytywania migawek AVD, w tym elementy sterujące do zapisywania i wczytywania migawki szybkiego uruchamiania, które wcześniej znajdowały się na karcie Ustawienia.
Możesz edytować nazwę i opis każdego zapisanego zrzutu ekranu.
Więcej informacji znajdziesz w artykule Zrzuty.
HAXM 7.2.0
HAXM 7.2.0 jest teraz dostępny we wszystkich kanałach.
Ta aktualizacja zawiera poprawki błędów i ulepszoną obsługę dużych ilości pamięci RAM. Ponadto dzięki tej aktualizacji HAXM i Emulatora 27.3 lub nowszego migawki wczytują zawartość do pamięci RAM na żądanie, a nie wczytują całej migawki podczas uruchamiania urządzenia wirtualnego. Ta zmiana powinna znacznie skrócić czas potrzebny do załadowania zrzutu ekranu.
Więcej informacji znajdziesz w artykule Konfigurowanie akceleracji maszyny wirtualnej.
27.2.9 (maj 2018 r.)
Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji oraz poprawki błędów.
Nagrywanie ekranu
Teraz możesz nagrywać filmy i dźwięk w Emulatorze Androida oraz zapisywać nagrania 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 (na Macu Command + Shift + R).
Aby rozpocząć nagrywanie ekranu, kliknij przycisk Rozpocznij nagrywanie na karcie Nagrywanie ekranu. Aby zatrzymać nagrywanie, kliknij Zatrzymaj nagrywanie.
Elementy sterujące odtwarzaniem i zapisywaniem nagranego filmu znajdują się u dołu karty Nagrywanie ekranu. Aby zapisać film, wybierz WebM lub GIF z menu u dołu karty i kliknij Zapisz.
Możesz też nagrywać i zapisywać zrzuty ekranu z emulatora, używając w wierszu poleceń tego polecenia:
adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm
Zrzuty ekranu
Zrzuty ekranu możesz robić z poziomu wiersza poleceń za pomocą jednego z tych poleceń:
screenrecord screenshot [destination-directory]
adb emu screenrecord screenshot [destination-directory]
Zrzuty ekranu są zapisywane w formacie PNG.
Kamera wirtualnej sceny i ARCore
Dzięki nowej kamerze do tworzenia wirtualnych scen, która umożliwia eksperymentowanie z rzeczywistością rozszerzoną w wirtualnym środowisku, tworzenie i testowanie aplikacji do rzeczywistości rozszerzonej (AR) za pomocą ARCore jest teraz jeszcze łatwiejsze.
Informacje o używaniu kamery wirtualnej sceny w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.
Sklep Google Play na obrazach urządzenia Pixel
Sklep Google Play jest teraz dostępny na obrazach urządzeń Pixel i Pixel 2. Jest to oznaczone w Menedżerze AVD w Androidzie Studio 3.2 lub nowszej wersji logo Google Play w kolumnie Sklep Play. W przypadku urządzeń z włączonym Sklepem Google Play na karcie Google Play w oknie Rozszerzone ustawienia znajduje się przycisk umożliwiający wygodne aktualizowanie Usług Google Play na urządzeniu.
Zrzuty danych
Teraz możesz wczytywać zrzuty Szybkiego rozruchu bez restartowania emulatora. Aby załadować migawkę, otwórz okno Rozszerzone opcje w sekcji Ustawienia i kliknij przycisk Załaduj teraz.
Wprowadziliśmy wiele ulepszeń dotyczących wczytywania i zapisywania migawek, aby zwiększyć wydajność wykorzystania zasobów i zminimalizować czas trwania poszczególnych operacji. Jeśli nadal występują nietypowo długie czasy zapisywania, zgłoś problem, podając szczegóły dotyczące procesora, pamięci RAM i ustawień oprogramowania antywirusowego, zapory sieciowej lub oprogramowania zabezpieczającego, które są uruchomione.
Renderowanie za pomocą Skia
Jeśli używasz obrazów dla interfejsu API 27 lub nowszego, emulator może renderować interfejs użytkownika Androida za pomocą Skia, co może sprawić, że renderowanie będzie płynniejsze i bardziej wydajne.
Obecnie korzystanie z Skia wymaga wyraźnego włączenia tej usługi.
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 korzysta teraz z Media Foundation jako backendu kamery internetowej, co znacznie poprawia wydajność i liczbę klatek podczas rejestrowania obrazu z kamery internetowej do 720p przy 30 FPS.
Na komputerach Mac możesz teraz używać kamery internetowej webcam0 i webcam1 jednocześnie.
Różne
Opcja wiersza poleceń -phone-number-prefix
została zmieniona na -phone-number [number]
, co umożliwia ustawienie pełnego numeru telefonu.
Możesz teraz używać adresów SMS-owych zawierających znaki alfanumeryczne.
Poprawki
- Wersja emulatora Androida na system Linux jest teraz kompilowana za pomocą nowoczesnego zestawu narzędzi Clang C++. Ta zmiana rozwiązuje problem polegający na tym, że emulator nie uruchamiał się z powodu błędów w bibliotekach libGL i libstdc++.
- Usunięto kilka przyczyn awarii i zawieszania się aplikacji.
- Aby uniknąć awarii i zawieszania się emulatora spowodowanego brakiem wystarczającej ilości wolnego miejsca na dysku, emulator sprawdza teraz, czy na początku jest wystarczająco dużo wolnego miejsca na dysku. Nie uruchomi się, jeśli nie ma co najmniej 2 GB wolnego miejsca.
- Rozwiązaliśmy problem, który uniemożliwiał renderowanie niektórych gier w Unity.
- Rozwiązaliśmy problem z DNS, który uniemożliwiał emulowanemu urządzeniu nawiązanie połączenia z siecią.
- Rozwiązaliśmy problem, który powodował, że zmiany w pamięci wewnętrznej przypisanej do AVD nie działały w oknie Konfiguracja urządzenia wirtualnego.
- Rozwiązaliśmy problem polegający na tworzeniu wielu procesów adb, które nie były prawidłowo zamykane.
- Rozwiązaliśmy problem, który powodował, że przyciski obracania i inne elementy interfejsu przestawały reagować, chyba że było otwarte okno Rozszerzone sterowanie.
- Rozwiązaliśmy problem, który powodował, że kopiowanie i wklejanie od gospodarza nie działało, chyba że okno Rozszerzone opcje było otwierane co najmniej raz.
- Prostokąt do zmiany rozmiaru w emulatorze 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-ów i komórek po załadowaniu migawki.
- Nie będziesz już otrzymywać fałszywych ostrzeżeń, takich jak:
“Unable to open... \pstore.bin. Permission denied.”
- Rozwiązaliśmy problem, który uniemożliwiał ponowne umieszczenie AVD na niektórych ekranach Mac.
- Rozwiązaliśmy problemy z migotaniem i pustymi ekranami na nowszych komputerach MacBook Pro podczas uruchamiania AVD z interfejsem Pixel 2 XL.
- Rozwiązaliśmy problemy z pustymi ekranami podczas przełączania się w tryb powiększony, gdy aktywny był emulowany bezramkowy interfejs.
- Rozwiązaliśmy problem, który powodował, że podczas powiększenia tło i zawartość emulatora nie były zsynchronizowane.
Jeśli problemy z zawieszaniem się lub inne problemy z niestabilnością nadal występują, zgłoś problem.
27.1.12 (marzec 2018 r.)
Ta aktualizacja zawiera poprawki tych problemów:
- Po uruchomieniu emulatora jakość dźwięku Bluetooth jest gorsza. (Problem 37095756)
- Lokalizacje wysłane do jednego emulatora zostały wysłane do wszystkich. (Problem 73450633)
- Lokalizacja GPS ustawiona za pomocą konsoli została zastąpiona wartościami ustawionymi w interfejsie graficznym w sekcji Rozszerzone ustawienia > Lokalizacja. (Problem 73471760)
Jeśli problemy z zawieszaniem się lub inne problemy z niestabilnością nadal występują, zgłoś problem.
Dzięki tej aktualizacji, bieżącemu obrazowi systemu i wersji podglądu Android Studio możesz używać emulatora Androida do uruchamiania aplikacji rzeczywistości rozszerzonej utworzonych za pomocą ARCore. Szczegółowe wymagania i instrukcje znajdziesz w artykule Uruchamianie aplikacji AR w Emulatorze Androida.
27.1.10 (luty 2018 r.)
Rozdzielczość aparatu
Z podłączonej kamery internetowej można teraz rejestrować klatki w jakości 720p.
Aby współpracować z obrazami systemowymi Androida 8.1 (poziom interfejsu API 27) lub nowszym, 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ł czasem zniekształcony lub całkowicie zielony.
- Rozwiązaliśmy problem, który powodował wyświetlanie tego komunikatu nawet wtedy, gdy nie było żadnego zawieszenia: „emulator: ERROR: detected a hanging thread 'Qt event loop'. Brak odpowiedzi przez 15 000 ms”.
Jeśli problemy z zawieszaniem się lub inne problemy z niestabilnością nadal występują, zgłoś problem.
27.1.7 (luty 2018 r.)
Okno emulatora bez ramki:
Domyślnie emulatory z plikami skórki urządzenia są teraz wyświetlane bez obramowania okna. Aby wyświetlić obramowanie okna, w panelu Ustawienia w oknie Rozszerzone ustawienia włącz opcję Pokaż obramowanie okna wokół urządzenia.
Ulepszenia funkcji Szybkie uruchamianie, które zwiększają efektywność pracy ze zrzutami AVD:
- W dowolnym momencie możesz zapisać migawkę AVD, używając przycisku Zapisz teraz w panelu Ustawienia w oknie Rozszerzone ustawienia.
- W wielu przypadkach emulacja skraca czas zapisywania zrzutu, zapisując tylko różnicę między bieżącym stanem a poprzednio zapisanym zrzutem.
Szczegółowe informacje znajdziesz w dokumentacji Quick Boot.
Emulator został zaktualizowany do wersji QEMU 2.9.
Oto niektóre z nich:
- Optymalizacja operacji wejścia/wyjścia i dokładniejsze blokowanie wątków operacji wejścia/wyjścia w celu zwiększenia wydajności.
- Naprawione błędy od wersji QEMU 2.8 (26.1.4).
- Nowa implementacja backendu HAXM.
Pełną listę zmian znajdziesz w historii zmian QEMU 2.9.
Implementacja Swiftshader zgodna z OpenGL ES 3.0:
Renderer Swiftshader emulatora jest teraz w pełni zgodny z OpenGL ES 3.0. Szczegółowe informacje o renderowaniu Swiftshader znajdziesz w sekcji Ustawienia > Zaawansowane w Rozszerzonych ustawieniach.
Poprawki
- Rozwiązaliśmy problem polegający na tym, że udostępnianie schowka nie działało, chyba że opcja Włącz udostępnianie schowka została wyłączona i ponownie włączona.
- Rozwiązaliśmy problem z zawieszaniem się podczas używania modułu renderowania Swiftshader w przypadku AVD o niskiej rozdzielczości.
27.0.5 (styczeń 2018 r.)
ANGLE do renderowania w Windows jest teraz domyślnie wyłączony.
Jeśli ANGLE działa lepiej, możesz ponownie włączyć to narzędzie za pomocą parametru
-gpu angle_indirect
w wierszu poleceń. Możesz też otworzyć okno Rozszerzone ustawienia, przejść do Ustawienia > Zaawansowane i wybrać ANGLE D3D11 jako ustawienie dla renderowania OpenGL ES.Rozwiązaliśmy problem polegający na tym, że kombinacja klawiszy Shift + B nie powodowała wpisania wielkiej litery B.
27.0.2 (grudzień 2017 r.)
Nowa funkcja Szybkie uruchamianie zapewnia szybsze uruchamianie emulatora na podstawie zrzutu instancji AVD.
Szybkie uruchamianie jest domyślnie włączone we wszystkich maszynach AVD. Podczas pierwszego uruchamiania AVD musi on wykonać zimny rozruch (podobnie jak w przypadku włączania urządzenia), ale wszystkie kolejne uruchomienia są szybkie, a system wraca do stanu, w którym został zamknięty (podobnie jak w przypadku wybudzania urządzenia).
Jeśli chcesz kontrolować, kiedy emulator ma zapisywać migawkę, otwórz okno Rozszerzone opcje emulatora i kliknij Ustawienia. Tutaj możesz wybrać jedno z tych ustawień Zapisz stan szybkiego uruchamiania po wyjściu:
- Tak: zawsze zapisuj migawkę szybkiego uruchamiania po zamknięciu emulatora. Jest to ustawienie domyślne.
- Nie: nigdy nie zapisuj zrzutu z szybkiego uruchamiania; zawsze wykonuj zimny rozruch.
- Pytaj: wyświetlaj pytanie, czy zapisać zrzut szybkiego rozruchu podczas zamykania emulatora.
Wybrana opcja dotyczy tylko aktualnie otwartego okna czatu.
Więcej informacji znajdziesz w dokumentacji Szybkiego rozruchu.
Dodano obsługę Mac OpenGL ES 3 (w przypadku obrazów systemowych używających poziomu API 24 lub nowszego, interfejsów Google i ABI x86).
Aby zwiększyć stabilność aplikacji OpenGL ES 2+, emulator używa teraz profilu rdzenia OpenGL, jeśli jest dostępny.
Nowe opcje renderowania za pomocą Swiftshader lub ANGLE:
-gpu swiftshader_indirect
: szybsza i bardziej stabilna wersja Swiftshader, która działa z Quick Boot.-gpu angle_indirect
(tylko w Windows): bardziej stabilna wersja biblioteki ANGLE D3D, która działa również z szybkim uruchamianiem.
Starsze opcje
-gpu swiftshader
i-gpu angle
zostały wycofane. W oknie Rozszerzone opcje opcje „SwiftShader” i „ANGLE” w ustawieniu „Renderowanie OpenGL ES” na stronie Ustawienia > Zaawansowane korzystają teraz z wariantów*_indirect
.Poprawki różnych innych błędów.
26.1.4 (sierpień 2017 r.)
To drobna aktualizacja z poprawkami błędów i tymi ulepszeniami konfiguracji GPU:
- Włączanie animacji uruchamiania podczas korzystania z renderowania ANGLE
- Wyłącz GLES3 podczas działania na silniku renderowania ANGLE
26.1.3 (sierpień 2017 r.)
To jest niewielka aktualizacja zawierająca poprawki błędów, ulepszenia działania i niewielkie zmiany funkcji.
- Ta wersja jest teraz wymagana do korzystania z najnowszych obrazów systemu Android 8.0.
Są one zgodne z Treble i mają oddzielne partycje
vendor.img
. - Nowa wersja HAXM 6.2.0 jest już dostępna (sprawdź Menedżera pakietu SDK). Obejmuje ona te zmiany:
- Lepsze wykorzystanie pamięci. Maksymalny zestaw roboczy pamięci przypiętych przez HAXM nie jest już równy rozmiarowi pamięci RAM AVD. Zamiast tego pamięć jest przenoszona na żądanie. Dzięki temu emulowany system będzie działał bardziej niezawodnie na maszynach z mniejszymi ilościami pamięci RAM.
- Emulator z HAXM 6.2.0 może teraz uruchamiać się szybciej w systemie macOS, pomijając czasochłonną fazę inicjalizacji.
- Ulepszenia w konfiguracji GPU
- Rozwiązaliśmy problemy z czarnym ekranem podczas uruchamiania, gdy wykonywane jest renderowanie oprogramowania po stronie gościa. Zamiast tego używane jest renderowanie oprogramowania po stronie hosta za pomocą Swiftshader. Najnowsze wersje obrazów systemowych dla poziomów interfejsu API 19–25 z interfejsami Google API powinny mieć działające renderowanie po stronie gościa.
- Rozwiązaliśmy problem, który powodował przełączenie emulatora na renderowanie oprogramowania z powodu wykrycia obecności starszych procesorów graficznych Intela, podczas gdy emulator działał na osobnym procesorze graficznym. Które GPU będą przełączane na renderowanie za pomocą ANGLE lub Swiftshader, jest określane w ten sposób:
- Starsze iGPU Intela mają problemy ze sterownikami zarówno w przypadku OpenGL, jak i sterowników ANGLE D3D. Użytkownicy kart Intel HD Graphics 3xxx i starszych będą używać Swiftshader.
- Niektórzy użytkownicy zgłaszali, że nie mogą korzystać z obrazów na poziomie API 25 z powodu błędu, który powoduje ciągłe zatrzymywanie się aplikacji Pixel Launcher. Wygląda na to, że jest to problem z sterownikami w przypadku niektórych modeli Intel HD 4xxx. Zostaną one automatycznie przełączone na korzystanie z ANGLE.
- Aby uzyskać najlepsze wyniki w emulacji karty graficznej, zalecamy użycie karty graficznej NVIDIA lub AMD albo nowszej karty graficznej Intel (Iris, HD 5xxx, HD 5xx/6xx).
- Rozwiązaliśmy problem, który powodował, że emulacja OpenGL nie mogła się uruchomić (nie udało się zainicjować emulacji OpenGL), jeśli AVD zostało skonfigurowane za pomocą
hw.gpu.mode=host
, a emulator był uruchamiany w zdalnym kliencie pulpitu. - Uściślone ustawienia „Poziom interfejsu OpenGL ES API (wymaga ponownego uruchomienia)” oraz dodanie opcji obniżenia poziomu interfejsu OpenGL ES z 3 na 2, jeśli występują problemy lub trzeba przeprowadzić testy na niższym poziomie interfejsu OpenGL ES API.
- Mechanizm renderowania Mesa został wycofany.
hw.gpu.mode=mesa
będzie teraz automatycznie przełączać się na korzystanie z Swiftshadera na hoście.
- Ulepszenia w systemie macOS:
- Emulator jest teraz w pełni zgodny z systemem macOS 10.13 High Sierra za pomocą Hypervisor.Framework lub HAXM 6.2.0.
- Hypervisor.framework jest teraz domyślnie włączony w systemie macOS w przypadku 32-bitowych obrazów x86, aby poprawić wydajność i zgodność z systemem macOS. Jeśli masz z nim problemy, prześlij raport o błędzie i dołącz plik
HVF = off
do pliku~/.android/advancedFeatures.ini
(jeśli go nie ma, utwórz go). - Rozwiązaliśmy problemy z brakiem internetu lub niemożliwością dołączenia debugera podczas korzystania z Hypervisor.framework.
- Aby zwiększyć zgodność i wydajność przechwytywania z kamery internetowej, zastąpiliśmy przechwytywanie na podstawie biblioteki QTKit za pomocą bufora opartego na bibliotece AVFoundation.
- Dodano obsługę Wi-Fi w niektórych obrazach systemowych (obecnie tylko na poziomie interfejsu API 25).
Dostępny jest punkt dostępu o nazwie „AndroidWifi”, z którym Android łączy się automatycznie. Obsługę Wi-Fi można wyłączyć, uruchamiając emulator z parametrem wiersza poleceń
-feature -Wifi
. - Niektórzy użytkownicy wyrazili obawy, że obrazy systemowe o stałym rozmiarze w Sklepie Play mają za mało miejsca. Dlatego zwiększyliśmy domyślny rozmiar do 2 GB (z 800 MB).
- Dodano skrót klawiszowy (Ctrl + Shift + U) umożliwiający otwieranie strony interfejsu zgłaszania błędów bezpośrednio z strony ustawień.
- Rozwiązaliśmy problem, który powodował, że w przypadku użycia starszego procesora z technologiami Intel x86 EPT, ale bez UG emulator nie uruchamiał się, gdy skonfigurowano więcej niż 1 rdzeń.
- Rozwiązaliśmy problem polegający na nieprawidłowym wykrywaniu Hyper-V, jeśli emulator był uruchamiany w hypervisorze Xen.
- Rozwiązaliśmy problem, który powodował zawieszanie się emulatora podczas uruchamiania w niektórych konfiguracjach Linuksa.
26.1.2 (lipiec 2017 r.)
Ta wersja zawiera nowe funkcje i ulepszenia działania aplikacji.
Dodano możliwość definiowania niestandardowej konfiguracji serwera proxy HTTP w rozszerzonych kontrolkach (kliknij Więcej , a następnie Ustawienia i Serwer proxy). Domyślnie emulator używa ustawień serwera proxy HTTP Android Studio, ale na tym ekranie możesz zdefiniować ręczną konfigurację serwera proxy.
Dodano obsługę VNC dla karty graficznej w trybie gościa, aby można było wyświetlać i sterować emulatorem zdalnie. Możesz na przykład uruchomić emulator i pozwolić VNC na nasłuchiwanie na porcie 5901 w ten sposób:
- Wykonaj:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
Otwórz program do wyświetlania 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 hasło.
Android O nie jest obecnie obsługiwany w trybie VNC.
- Wykonaj:
Dodano przycisk Zgłoś błąd na ekranie pomocy rozszerzonych ustawień sterowania (kliknij Więcej , a następnie Pomoc i Pomoc dotycząca emulatora). Kliknięcie Zgłoś błąd powoduje otwarcie okna, w którym znajdziesz szczegóły zgłoszenia błędu, takie jak zrzut ekranu, informacje o konfiguracji AVD i dziennik zgłoszenia błędu. Następnie możesz zapisać raport na własny użytek lub zgłosić problemy z emulatorem.
Dodano czujnik żyroskopu do panelu emulatora i czujników wirtualnych. Wymaga to obrazu systemu z obsługą żyroskopu (obecnie poziom API 24 i 25).
Dodano preferowany przez hosta serwer DNS do listy serwerów DNS Qemu w Windows, gdy wiele wirtualnych interfejsów sieciowych na hoście wprowadza wiele adresów DNS, które nie są funkcjonalne dla emulatora.
Dodano eksperymentalną obsługę macOS Hypervisor.Framework dla obrazów 32-bitowych x86 na macOS 10.10 i nowszych za pomocą flag serwera, co powinno poprawić czas uruchamiania i wydajność.
- Jeśli wystąpią problemy, dodaj wiersz
HVF = off
w pliku~/.android/advancedFeatures.ini
.
- Jeśli wystąpią problemy, dodaj wiersz
OpenGL ES 3.x jest teraz domyślnie włączony w przypadku obrazów systemu i procesorów graficznych hosta, które obsługują OpenGL ES 3. Obecnie OpenGL ES 3 jest obsługiwany tylko na hostach z Androidem O (poziom API 26) oraz systemami Windows i Linux.
- Jeśli wystąpią problemy z OpenGL ES 3, dodaj wiersz
GLESDynamicVersion = off
w pliku~/.android/advancedFeatures.ini
.
- Jeśli wystąpią problemy z OpenGL ES 3, dodaj wiersz
Emulator używa teraz offscreenowych FBOs OpenGL do wszystkich operacji renderowania, z wyjątkiem publikowania obrazów na wyświetlaczu, co powinno pomóc w rozwiązaniu problemów z spójnością kolorów na różnych platformach.
Po zebraniu danych o nagłym spowolnieniu działania emulatora stwierdziliśmy, że problem może być związany z niektórymi interakcjami między starszymi sterownikami OpenGL firmy Intel a aktualizacjami systemu Windows. Dlatego użytkownicy kart Intel HD 4000, 3000 i 2000 (oraz powiązanych z nimi procesorów graficznych) mają teraz domyślnie ustawiony renderer D3D (ANGLE) lub Swiftshader (renderer oprogramowania).
26.0.0 (marzec 2017 r.)
Ta wersja jest zgodna z poziomem interfejsu API 26. Zawiera też kilka ulepszeń działania i poprawek błędów.
Mała aktualizacja 26.0.3 (maj 2017 r.)
- Dodaje flagi funkcji, które można aktualizować online, aby szybko rozwiązywać problemy wynikające z problematycznych konfiguracji sprzętowych. Dzięki temu Google może wdrażać poprawki i funkcje zależne od konfiguracji użytkownika poprzez aktualizowanie flag po stronie serwera. Jeśli zauważysz problemy z konkretnym sprzętem, zgłoś błąd, abyśmy mogli zbadać sprawę.
- Nowa obsługa wejścia obrotowego w przypadku obrazów systemowych na Androida Wear na poziomie API 25. Aby emulować pokrętło na urządzeniu Wear, w rozwiniętym oknie kliknij kartę Pokrętło.
- Rozmiar okna Raportowanie awarii można teraz zmieniać, a okno to nie będzie się już resetować.Gdy wysyłać raporty o awariach nie będzie już domyślnie ustawione na Zapytaj.
- Aby zapobiec wyczerpaniu się miejsca w 2 GB wirtualnej przestrzeni adresowej, emulowany system 32-bitowy wymaga teraz, aby maksymalny rozmiar pamięci RAM AVD był mniejszy niż 512 MB.
- Dodaje obsługę ścieżek bezwzględnych w obrazach emulatora.
- Dodaje nową kartę w rozszerzonym oknie dla obrazów ze Sklepu Google Play, która wyświetla wersję Usług Google Play oraz przycisk umożliwiający sprawdzenie, czy są dostępne aktualizacje Usług Google Play.
- Dodaje menu, w którym można wybrać procesor OpenGL na stronie Ustawienia emulatora. Jeśli masz problemy z sterownikiem OpenGL na komputerze z systemem Windows, spróbuj użyć opcji ANGLE (D3D11) lub ANGLE (D3D9) (wymaga ponownego uruchomienia). Jeśli masz problemy ze sterownikiem OpenGL na komputerze z systemem innym niż Windows, spróbuj użyć procesora graficznego Swiftshader (wymaga ponownego uruchomienia).
- Rozwiązano rzadki problem z zawieszaniem się podczas zamykania, gdy emulator otrzymuje polecenia
exit
iminimize
. - Rozwiązanie problemu ze skalowaniem podczas zmiany wyświetlaczy na komputerze Mac. (Problem: 268296)
- Rozwiązano problem, który powodował, że po wznowieniu pracy komputera-hosta z trybu uśpienia lub po długim czasie działania emulatora emulator zajmował 300% procesora i nie zwalniał go.
- Naprawiono błąd powodujący awarię podczas zamykania emulatora.
Aktualizacje z HAXM w wersji 6.1.1 (marzec 2017 r.)
Uwaga: HAXM w wersji 6.1.1 jest dostępna dla użytkowników Maców w menedżerze pakietu SDK od 30 marca. Wkrótce będzie dostępna dla użytkowników systemu Windows.
Wersja 26.0.0 emulatora Androida obsługuje HAXM w wersji 6.1.1, która zawiera te aktualizacje:
- Umożliwia emulację jednostek monitorowania wydajności (PMU). (Problem 223377)
- Poprawki dotyczące współistnienia z VirtualBox i Dockerem na komputerach Mac. (Problem 197915)
- Poprawia komunikat o błędzie instalacji wyświetlany, gdy instalator nie może wykryć Intel VT-x w Windows, zwykle dlatego, że Hyper-V jest włączony.
- Dodano obsługę przyspieszania emulatora Androida w maszynie wirtualnej Windowsa opartej na Hyper-V. Ta aktualizacja wymaga, aby instancja hosta Hyper-V (ta, która zarządza maszyną wirtualną Windows/gościem) używała najnowszej wersji Hyper-V z włączoną zduplikowaną wirtualizacją. Hyper-V musi być wyłączony w instancji Hyper-V gościa (maszyna wirtualna Windows).
Zależności
- Android SDK Platform-Tools w wersji 25.0.4 lub nowszej.
- Android SDK Tools w wersji 26.0.0 lub nowszej.
Nowe funkcje i poprawki błędów
- Zgodność z poziomem interfejsu API 26.
- Pełna zgodność z GLES 2.0. Jeśli hostowy procesor GPU ma zgodne sterowniki OpenGL, emulator przechodzi teraz 100% testów z listy Android CTS dEQP-GLES2
mustpass
. Ta funkcja została wydana w przypadku obrazów na poziomie interfejsu API 24 na platformę x86 (wersja 11 lub nowsza) i wkrótce zostanie uwzględniona we wszystkich obrazach systemowych. - Poprawiona wydajność odtwarzania filmów. Emulator przechowuje teraz wszystkie bufory kolorów wideo w wspólnej pamięci hosta/gościa i wykonuje na GPU niezbędną końcową konwersję YUV na RGB. Większość systemów powinna bez problemu obsługiwać rozdzielczość 1080p30. Ta funkcja została wydana w przypadku obrazów na urządzeniach x86 z poziomem interfejsu API 24 (wersja 11 lub nowsza) i wkrótce zostanie uwzględniona we wszystkich obrazach systemowych.
- Emulator poprawnie wyrejestruje się z listy
adb devices
po zakończeniu działania i zamyka otwarte porty TCP na maszynach z Linuxem. - Połączenia adb są teraz bardziej niezawodne. Uruchomiony emulator jest wykrywany szybciej i nie przechodzi już w stan „offline” ani „unauthorized”.
25.3.0 (marzec 2017 r.)
Od tej wersji Android Emulator będzie wydawany oddzielnie od narzędzi pakietu SDK. Ta wersja zawiera wiele ulepszeń wydajności, nowe funkcje i poprawki błędów.
Mała poprawka 25.3.1 (marzec 2017 r.)
- Naprawiono problem z awarią występującą w niektórych konfiguracjach GPU. Wyeliminowano go, wyłączając domyślnie GLAsyncSwap.
Ta funkcja została dodana w wersji 25.3.0 w celu poprawy czasu wyświetlania klatek i liczby klatek na sekundę w przypadku gier i filmów, ale powoduje awarie emulatora w niektórych nieznanych konfiguracjach maszyn. Możesz ją włączyć ręcznie, otwierając plik
android_sdk/emulator/lib/advancedFeatures.ini
i ustawienieGLAsyncSwap = on
.
Zależności
- Android SDK Platform-Tools w wersji 24 lub nowszej.
- Android SDK Tools w wersji 25.3.0.
Nowe funkcje i poprawki błędów
- Zaktualizowaliśmy mechanizm emulacji do wersji QEMU 2.7, w tym wszystkie najnowsze poprawki błędów, ulepszenia wydajności i nowe funkcje.
- Nowa obsługa IPv6.
- Emulator używa teraz SwiftShader jako czystego procesora graficznego opartego na oprogramowaniu na hoście.
- Ulepszenia wydajności Android Pipe: Android Pipe, główny kanał komunikacji między emulatorem a systemem Android, jest teraz szybszy o kilka rzędów wielkości, ma mniejsze opóźnienie i oferuje lepszą wydajność wielowątkową. W efekcie emulacja jest teraz szybsza. Oto kilka przykładów:
- Zwiększona szybkość przesyłania i pobierania danych przez ADB.
- lepsza obsługa akceleracji 3D;
- Zwiększona ogólna responsywność emulatora.
- Poprawiona wydajność grafiki.
- Emulator używa teraz buforów po stronie GPU (glBindBuffers / glBufferData), gdy gość ich zażąda, co zmniejsza obciążenie procesora w niektórych aplikacjach.
- Ulepszona obsługa dźwięku.
- Szybsze operacje wejścia/wyjścia z dysku: emulator używa teraz osobnych wątków do obsługi operacji wejścia/wyjścia z dysku, co zapewnia mniejsze opóźnienia i większą przepustowość (około 1, 5 raza wyższa prędkość sekwencyjnego I/O i około 5 razy wyższa prędkość dostępu do pamięci RAM). Dzięki temu zmniejsza się też liczba opróżnień bufora na dysku, co powoduje znacznie mniejsze obciążenie fizyczne urządzenia.
- Emulator używa teraz rzadkich plików do uruchamiania z dysku na komputerach z systemem Windows, co przyspiesza zarówno pierwsze uruchamianie, jak i uruchamianie z opcją „Wymaż dane”. Podczas tworzenia lub resetowania AVD emulator zapisuje 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óry zawiera poprawki błędów i ulepszenia wydajności.
- Inicjowanie interfejsu nie próbuje już wczytywać wszystkich plików wykonywalnych emulatora jako wtyczek Qt, dzięki czemu jest znacznie krótsze, zwłaszcza na dyskach twardych.
- Interakcje z interfejsem są teraz szybsze i płynniejsze, w tym: obracanie, zmiana rozmiaru okna i otwieranie oraz zamykanie rozszerzonego okna