Emulator Androida jest dołączony do Android Studio.
Wersje emulatora sprzed wersji 25.3.0 były dystrybuowane jako część Androida. SDK Tools.
Aby upewnić się, że masz najnowszą wersję, sprawdź SDK Manager.
Aby pobrać poprzednie wersje emulatora Androida, zobacz Archiwum pobranych emulatorów.
Informacje o wersji emulatorów starszych niż 25.3.0 znajdziesz w Informacje o wersji Android SDK Tools
Znane problemy i sposoby ich rozwiązywania znajdziesz w artykule Rozwiązywanie problemów z emulatorem.
34.2.16 (9 lipca 2024 r.)
- [Naprawiono błąd] Interfejs Pixela Fold zawiesza się podczas składania i otwierania
- [Poprawka błędu] Nieprawidłowe wyświetlanie wersji Androida jako „Android Vanilla Ice Cream” Wersja przedpremierowa zamiast API 35 na Macu M1.
- [Poprawka błędu] Problem nr 296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE zwraca wartość „prawda” w emulatorze tabletu Pixel C
34.2.15 (31 maja 2024 r.)
- Naprawiono różne awarie związane z trybem przesuwania i czyszczeniem reklamodawcy
34.2.14 (20 maja 2024 r.)
Przetestowano za pomocą poprawki Androida Studio Jellyfish Stable Patch 1.
- [Poprawka błędu] Zrzut ekranu czasami zawiesza się w umieszczonym emulatorze.
- [Poprawka błędu] „Nie” i „Anuluj” Przyciski nie działają prawidłowo na zrzucie dysku
- [Naprawiono błąd] Przyciski pada kierunkowego nie działają
- [Poprawka błędu] Naprawiono błąd 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 wyświetlanie w logu komunikatu o błędzie „Nie udało się zainicjować emulacji GL”. Pamiętaj, że uruchomienie emulatora przy użyciu wiersza poleceń z opcją
-gpu swangle_indirect
może nadal generować ten błąd w tej wersji. Jeśli nadal chcesz uruchomić emulator za pomocą wiersza poleceń w systemie Windows z programowym renderowaniem grafiki grafiki w tej wersji, użyj polecenia-gpu swiftshader_indirect
- [Poprawka błędu] Skrót do lokalizacji na klawiaturze wczytuje bezużyteczną mapę.
- [Naprawiono błąd] Podczas ustawiania lokalizacji opcja „zapisz trasę” brak okna
34.2.13 (30 kwietnia 2024 r.)
Przetestowano w Android Studio Jellyfish Stable.
- Aktualizacja do Qt 6.5.3
- Zgodność aktualizacji interfejsu API Map Google używanych w funkcjach lokalizacji w rozszerzonych elementach sterujących Emulator, która pojawi się pod koniec maja.
- Poprawki poważnych błędów
- Różne poprawki na urządzeniach Pixel AVD
- Zaktualizuj bibliotekę grafiki używaną do renderowania programowego
- [Naprawianie błędu]Problem 225541819 Uruchamianie emulatora awarii Chrome na x86_64
- [Poprawka błędu]Problem 314614435 – przełącznik
-http-proxy
jest nieprawidłowo przeanalizowany
34.1.20 (1 kwietnia 2024 r.)
Przetestowano w wersji stabilnej Android Studio Iguana.
- [Poprawka błędu] Problem nr 314614435: rozwiąż problem z nieprawidłową analizą przełącznika
-http-proxy
34.1.19 (7 marca 2024 r.)
Przetestowano w wersji stabilnej Android Studio Iguana.
- [Poprawka błędu] Problem nr 312677259: usunięto problem z blokowaniem ekranu w osadzonym emulatorze po zmianie rozmiaru okna.
34.1.18 (29 lutego 2024 r.)
Przetestowano w wersji stabilnej Android Studio Iguana.
- Do emulatora dodano urządzenia, w tym:
- Pixel Fold
- Pixel Tablet
- Pixel 8
- Pixel 8 Pro
- Pixel 7a
- Test integracji gRPC: punkty końcowe gRPC są teraz dostępne na potrzeby testów instrumentowanych przeprowadzanych w emulatorze, które umożliwiają testowanie realistycznych scenariuszy. Ta funkcja pozwala deweloperom bezpiecznie korzystać z punktu końcowego gRPC hostowanego przez emulator Androida w ramach testów instrumentacji Androida.
- Poprawki różnych błędów
- Poprawka błędu: łatwiejsza obsługa urządzeń po przewinięciu
- Poprawka błędu: dostosuj położenie emulatora po obrocie.
- Usuwanie awarii
33.1.24 (28 grudnia 2023 r.)
Przetestowano w Android Studio Hedgehog Stable i Iguana Beta 1.
- Rozwiąż problem z kamerą internetową emulatora, który nie zezwala na nagrywanie ekranu w formacie MP4.
- Naprawianie awarii emulatora na Pixelu Fold AVD, gdy jest on rozłożony podczas nagrywania ekranu.
- Rozwiązanie problemu polegającego na tym, że Pixel Fold wyświetla inny wygląd telefonu z odłączoną klawiaturą i nie można z niego korzystać (naprawiliśmy go w systemach Windows, Mac Intel i Linux)
- Naprawianie błędów w czujnikach wirtualnych w trybie samodzielnym (naprawione w systemach Windows, Mac Intel i Linux)
- Naprawiono niektóre awarie, zwłaszcza podczas zamykania emulatora
33.1.23 (30 listopada 2023 r.)
Przetestowano w Android Studio Giraffe Patch 4 i Hedgehog Stable.
- Nowa składana implementacja, która umożliwia lepszą emulację urządzenia Pixel Fold, działa z najnowszym interfejsem API 34
- Uaktualnienie backendu karty graficznej: wdrożyliśmy protokół gfxstream na potrzeby naszego backendu graficznego. To ulepszenie poprawia ogólną wydajność grafiki i stabilność systemu. Oprócz tego wprowadziliśmy obsługę interfejsu Vulkan 1.3, począwszy od obrazu systemu w interfejsie API 34.
- Prośba o funkcję: możliwość wyłączenia gestu ściągnięcia palcami i zmiany przypisania odpowiedniego klawisza skrótu.
- [Naprawianie błędu] Problem nr 302562962 Naprawianie awarii kamery internetowej emulatora podczas korzystania z funkcji sonoma w systemie macOS
- [Naprawianie błędu] Problem #293503871 Naprawiono błąd polegający na tym, że „Mikrofon” ustawienie nie jest zapisywane po ponownym uruchomieniu emulatora
- [Poprawka błędu] Problem nr 270386314 Naprawiono błąd animacji polegający na tym, że pasek boczny pozostaje otwarty po zminimalizowaniu ekranu AVD
- [Naprawianie błędu] Problem nr 154896775 Napraw narzędzie do zgłaszania błędów
32.1.15 (29 sierpnia 2023 r.)
Przetestowano w Android Studio Giraffe Patch 1 i Hedgehog Canary 16.
- Zgodność z wymaganiami GAS HW w przypadku czujników w emulatorze AAE
- [Naprawianie błędu] Problem nr 266201208 w przypadku interfejsu API 33 SMS-y w języku hebrajskim nie są wysyłane
- [Poprawka błędu] Problem nr 257097404: Emulator nie pokazuje prawidłowego czasu po wybudzeniu hosta przy użyciu interfejsów API 29 i 30
- [Poprawka błędu] Problem nr 228201899 Nie widzę Map Google w rozszerzonych elementach sterujących emulatora Androida
32.1.14 (27 czerwca 2023 r.)
Przetestowano w Android Studio Hedgehog Canary 8, Giraffe Beta 5 i flamingo Stabilny.
- Napraw orientację kamery emulatora i zniekształcenia.
- [Poprawka błędu] Problem nr 257097404 „Emulator nie pokazuje prawidłowej godziny po wybudzeniu hosta”. Ten błąd jest wciąż można odtworzyć w przypadku interfejsów API 29 i API 30.
- [Poprawka błędu] Problem nr 243456582 „Wersje Androida po wersji API 30 mogą nie uruchamiać się poprawnie w emulatorze Mac M1”.
32.1.13 (22 maja 2023 r.)
Testy zostały przetestowane w środowiskach Android Studio Hedgehog Canary 2, Giraffe Beta 1 i flamingo Stable.
- Dodaliśmy obsługę urządzeń AVD w urządzeniach Pixel Fold i Pixel Tablet.
- Napraw problem z awariami gLinux.
- [Naprawianie błędu] Problem nr 215231636 „Emulator z interfejsem API powyżej 30 nie działa na procesorze Intel 12 generacji”.
- [Poprawka błędu] Problem nr 275397905 Duża liczba awarii w emulatorze Androida M1 podczas przesuwania ostrości do i z dala od kursora z emulatora.
- Znany problem dotyczący wersji AVD: numer 281725854. Więcej informacji znajdziesz w artykule Rozwiązywanie problemów z emulatorami.
32.1.12 (21 marca 2023 r.)
Przetestowano w Android Studio Giraffe Canary 10, Flamingo RC i Electric Eel Patch 2.
- [Poprawka błędu] Problem nr 267647323 Sieć nie działa z emulatorem uruchomionym w Android Studio
- [Naprawiono błąd] Problem nr 268498686 Ekran emulatora migocze.
- [Naprawiono błąd] Problem nr 270034824 Wydajność emulatora po zaktualizowaniu do wersji 33.1.1 spadła.
- [Poprawka błędu] Problem nr 225541819 Uruchamianie emulatora awarii Chrome w systemie x86_64
- [Naprawiono błąd] Problem nr 257097404 Emulator nie pokazuje prawidłowej godziny po wybudzeniu hosta
- Dodawanie raportów o awariach dotyczących urządzeń Apple M1
32.1.11 (8 lutego 2023 r.)
Przetestowano w Android Studio Giraffe Canary 2, Flamingo Beta 1 i Electric Eel Patch 1.
- Optymalizacje prędkości sieci
- Obsługa myszy w wbudowanym emulatorze
- Ulepszenia Virtio-Snd
- Wyłącz używanie dowiązania symbolicznego podczas rozpakowywania emulatora Androida podczas instalacji
- Naprawianie awarii w sprawdzaniu emulatora
31.3.14 (13 grudnia 2022 r.)
Przetestowano na urządzeniach Android Studio Dolphin, Electric Eel RC1 i Flaming Canary 9.
- [Naprawianie błędu] Naprawianie błędów AVD występujących podczas logowania się do Sklepu Play.
31.3.13 (27 października 2022 r.)
Przetestowano na urządzeniach Android Studio Dolphin, Electric Eel Beta 2 oraz Flamingo Canary 5.
- [Poprawka błędu] Problem nr 249948338: parametr strefy czasowej nie działa
- [Poprawka błędu] Problem nr 249366543: opcja emulatora -dns-server nie działa po wprowadzeniu interfejsu API 31.
31.3.12 (10 października 2022 r.)
Przetestowano w programie Android Studio Dolphin i Electric Eel Beta 1.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- [Rozwiązanie problemu] Problem nr 247843000: błąd obsługi ścieżki względnej AVD
- Zwiększanie rozmiaru dysku w przypadku interfejsu API 24 i nowszych
31.3.11 (23 września 2022 r.)
Przetestowane na urządzeniach Android Studio Dolphin i Electric Eel Canary 10.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- [Naprawiono błąd] AVD wbudowanego emulatora w oknie rozszerzonych ustawień
- [Naprawianie błędu] Problem nr 183139207: problemy z dźwiękiem związane z włączeniem mikrofonu przez emulator
- [Naprawianie błędu] Problem nr 229764024: błąd przyklejonego dotyku AVD, który powoduje problemy z działaniem interfejsu użytkownika.
- [Poprawka błędu] Błąd przy uruchamianiu API 33 AVD na Macu M1.
- [Naprawianie błędu] Problem nr 243053479: powolna szybkość sieci po zaktualizowaniu emulatora
- [Poprawka błędu] Problem nr 244617627: niedziałająca lokalizacja w Mapach Google w systemach Windows i Linux
- [Naprawianie błędu] Problem nr 232971796: niedziałający przycisk „zadzwoń na urządzenie” w elementach rozszerzonych > Strona telefonu
- Zaktualizuj emulator Androida do minigbm
- Migracja skryptów kompilacji do Pythona3
31.3.10 (18 sierpnia 2022 r.)
Przetestowana na urządzeniach Android Studio Dolphin Beta 5 i Electric Eel Canary 9.
Emulator możesz pobrać samodzielnie. Jeśli doświadczasz czy wystąpią problemy lub awarie w najnowszej wersji stabilnej, zgłoś błąd i rozważ pobranie wersji, która wcześniej działała z archiwów pobranych emulatorów.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Lepsza obsługa ścieżek Unicode w systemie Windows
- Lepsza obsługa wyłączania emulatora pozwala na uruchomienie nowego systemu AVD odnieść sukces.
- Zaktualizowano składaną konstrukcję AVD i ustawienia domyślne
- Zaktualizowano przyciski emulatora Wear
- Ulepszenia strumieniowania dźwięku gRPC
- Dodano polecenie konsoli emulatora z możliwością zmiany rozmiaru
- Poprawka Chrome dla interfejsu API 31
- [Naprawiono błąd] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18
31.2.10 (20 kwietnia 2022 r.)
Przetestowana na Androidzie Studio Dolphin Canary 8 i Champunk RC 1.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodaj narzędzie do wczytywania funkcji Vulkan z użyciem wartości zastępczych
- [Naprawianie błędu] Naprawianie błędu kompilacji w Gcc8
31.2.9 (23 marca 2022 r.)
Przetestowana w Android Studio Dolphin Canary 7.
Ta aktualizacja zawiera te poprawki:
- [Poprawka błędu] Ignoruj wykorzystanie pamięci podczas zapisywania zrzutu w M1
31.2.8 (7 lutego 2022 r.)
Przetestowano w Android Studio Bumblebee Patch 1 i Champunk Canary 6.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- [Naprawianie błędu] Nie można zalogować się w aplikacjach
- [Naprawianie błędu] Problem nr 215368358: „ponowne uruchomienie programu adb” na platformie Intel spowoduje awarię avd z komunikatem „żądanie wyłączenia procesorów wirtualnych”
31.2.7 (1 lutego 2022 r.)
Przetestowano w Android Studio Bumblebee Patch 1 i Champunk Canary 6.
Ta aktualizacja zawiera te poprawki:
- [Naprawianie błędu] Błąd zawieszania się emulatora na komputerach M1.
31.2.6 (20 stycznia 2022 r.)
Przetestowano na Androidzie Studio Arctic Fox, Bumblebee Beta 4 i Chipmunk Canary 6.
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodaliśmy przyciski Wear OS do emulatora Wear OS.
- Edytowano wszystkie właściwości pojazdu na karcie VHAL.
- [Naprawiono błąd] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18.
- [Poprawka błędu] Netshaper nie działał dobrze z VirtioWifi.
- [Naprawiono błąd] Polecenie konsoli myszy do zdarzenia nie zadziałało.
- Dodano kontrolę KVM na potrzeby lokalnego tworzenia AVD.
31.1.3 (18 stycznia 2022 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Włączono porty konsoli dla Fuchsia.
- Podczas zmiany rozmiaru okna z kilkoma wyświetlaczami orientacja jest ignorowana.
- Wi-Fi: dodano obsługę filtrowania pakietów pojedynczych w oparciu o system MAT Mac adresu.
- Wi-Fi: usunięto błąd występujący podczas korzystania z maszyny wirtualnej.
30.9.5 (15 grudnia 2021 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodano możliwość łatwego zmieniania rozmiaru okna do rozmiaru komputera lub tabletu.
- Dodano obsługę wprowadzania wielodotykowego ze zgodnych urządzeń hosta.
- VirtioWifi: dodano obsługę sieci zbliżeniowej.
- Włączono pokrętło dla obrazów systemu Wear.
- Naprawiono problem z konfiguracją dźwięku gRPC.
- Zaktualizowano odtwarzanie emulatora SensorReplay, aby obsługiwało standardowe czujniki Androida.
- Podłącz emulator do urządzeń peryferyjnych i urządzeń za pomocą USB z przepustowością przez USB.
30.4.5 (23 lutego 2021 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- macOS: usunięto problemy ze zniekształceniami wejściowymi audio.
- Dodano obsługę virtio-vsock w przestrzeni użytkownika.
- Przyszłe obrazy systemu będą używać virtio-console do obsługi komunikatów logcat i jądra systemu.
- Przyspiesz renderowanie interfejsu Vulkan.
- Dodano obsługę debugowania zrzutów w przypadku niepowodzenia testu.
- virtio-gpu: zaktualizowane definicje, aby obsługiwać najnowsze wyliczenia zasobów blob.
- Dodano obsługę zrzutów dla zasobu „ASG” i transportu graficznego.
- macOS: dodano obsługę tworzenia przy użyciu pakietu SDK macOS w wersji 11.1 lub nowszej.
- Funkcja KVMclock jest domyślnie włączona w nowszych obrazach systemowych.
- Dodano obsługę czujnika tętna do emulatorów Wear.
- Usunięto backend Vulkan pozwalający na bezproblemowe korzystanie z biblioteki.
- Dodano obsługę większej liczby funkcji symulatora modemu.
30.0.26 (16 sierpnia 2020 r.)
Aktualizacja obejmuje kilka nowych funkcji i usprawnień istniejących funkcji, i poprawki błędów.
Obsługa urządzeń składanych z czujnikiem wirtualnego zawiasu i widokiem 3D.
Dodano obsługę czujników zawiasów w urządzeniach składanych. Wymaga to przyszłości Obraz systemu Android 11 i konfiguracja AVD. Składany widok i zawias 3D są teraz zintegrowane z istniejącymi składanymi gotowymi ustawieniami. Poniżej może być używana na przykład ze składanym plikiem
config.ini
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 także parametr podtypu.
config.ini
usługahw.sensor.hinge.sub_type = hinge/fold
jest już dostępna. Zobacz Tworzenie aplikacji na Androida 11 z Androidem Emulator .Czujnik zawiasów jest teraz domyślnie włączony.
Jeśli skonfigurowane jest urządzenie składane, emulator wysyła teraz czujniki kąta zawiasu i aktualizacje stanu gościa. Istniejące urządzenia składane będą teraz aktualizuj kąt i stan czujnika zawiasu podczas zamykania i otwierania przycisków paska narzędzi jest wciśnięty.
Emulator hostów ARM64
Kod źródłowy emulatora Linuksa obsługuje teraz kompilację krzyżową z x86_64 do arm64 co umożliwia uruchamianie obrazów systemu arm64 z wirtualizacją KVM. Obecnie tylko
-gpu swiftshader_indirect
(swiftshader arm64 renderowanie hosta) to jest obsługiwany, ale zgodny zestaw bibliotek libEGL/libGLESv2 hosta GPU może również używany przez zastąpienie lib64/gles_swiftshader nimi, a następnie ponowne uruchomienie z wartością-gpu swiftshader_indirect
Zrzuty mogą też nie działać (dodaj-no-snapshot
do wiersza poleceń). Instrukcje:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Obsługa Apple Silicon jest w toku.
Obsługa virtio-gpu
- Dodano obsługę po stronie hosta dla nadchodzącego spójnego obiektu blob hosta virtio-gpu i zasobami Google Cloud.
- Ze względu na sposób działania emulatora teraz przetwarzamy virtio-gpu virtqueue w wątek vcpu (ponieważ renderowanie i tak jest odciążane od innych wątków). Renderowanie virtio-gpu zostanie włączone w przyszłym obrazie systemu i emulatorze wersji.
- W przyszłości w obrazie systemu emulator będzie mógł obsługiwać wszystkie grafiki z oparty na virtio-gpu.
Inne nowe funkcje i ulepszenia
- Przekazywanie USB jest teraz dostępne w systemie Windows przy użyciu
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
. (powinien to także działają już w systemach Linux i macOS). - Biblioteki WebRTC zostały zaktualizowane do wersji M83.
- Emulator obsługuje teraz strumieniowe przesyłanie dźwięku w kontenerach przez WebRTC.
- Punkt końcowy potoku Darwinn został usunięty.
- Dekodowanie wideo CUDA VPx jest teraz dostępne, jeśli dekodowanie CUDA VPx jest dostępne w
sprzęt, za pomocą zmiennej środowiskowej
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
. - W systemach macOS SSE 4.1 i 4.2 są teraz dostępne z poziomu gościa na Androidzie.
- W systemie macOS funkcja INVTSC jest teraz domyślnie włączona. Może to poprawić dokładność czasu pomiary wykonywane przez gościa.
- Teraz w danych śledzimy, który rozszerzony panel sterowania został wybrany przez użytkownika.
- Emulator Linuksa używa teraz parawirtualizowanego zegara KVM, gdy jądro gościa wersja 5.4 lub nowsza.
- Emulator używa teraz LZ4 do dekompresji jądra gościa, dzięki czemu jest zgodny z do nowoczesnego potoku jądra.
Dodanie poleceń konsoli umożliwiających uzyskanie katalogu AVD emulatora, plik wykrywania w przypadku użycia osadzonego w Studio oraz ścieżce do zrzutów dysku:
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 w pionie, dodaliśmy opcję ukrywania. ramki urządzenia dla bieżącego średniego czasu oglądania w sekcji Ustawienia rozszerzone > Ustawienia. Do globalnie ukrywają ramki urządzeń dla wszystkich urządzeń AVD, Flaga funkcji
NoDeviceFrame
, którą można aktywować, uruchamiając emulator z wiersza poleceń z ramką-feature NoDevice
lub zablokować, dodającNoDeviceFrame = on
do~/.android/advancedFeatures.ini
(utwórz ten plik, jeśli już nie istnieje).Na stronie dotyczącej sieci komórkowej dodano menu, które pozwala włączyć lub wyłączyć pomiar pomiaru nie działa w przypadku starszych obrazów systemu, które nie obsługują sieci 5G. przełącznik pomiaru wykorzystania limitu.
- Dodano również polecenie konsoli do tego samego celu:
gsm meter on|off
- Dodano również polecenie konsoli do tego samego celu:
Uaktualniliśmy łańcuch narzędzi / kompilację do C++17.
Poprawki: osadzony emulator
- Schowek powinien teraz działać.
- Rozwiązanie problemu polegającego na tym, że wielkie litery były przesyłane jako małe litery w emulatorze.
- Naprawiono wczytywanie tokena konsoli ze ścieżki Unicode w oknach.
- Usunięto komunikat o błędzie
SO_REUSEPORT
w systemie Linux. - Usunięto problem z uszkodzeniem zrzutu podczas wysyłania poleceń zrzutu przez gRPC, a także po kliknięciu przycisku zapisywania zrzutu w narzędziu Android Studio za pomocą emulatora.
Podczas korzystania z emulatora Linuksa wbudowanego w Studio odkryliśmy, że jest to przez Pulpit zdalny Chrome, występuje błąd, w wyniku którego
XDG_RUNTIME_DIR
nie ustawiono i może spowodować, że osadzony emulator nie wyświetli się z powodu błędu umieszczam pliki wykrywania emulatora w folderzeXDG_RUNTIME_DIR
. Informacje na temat stan odpowiedniego problemu w Chrome, .Aby obejść ten problem, emulator wraca teraz do używania plików wykrywania być może jest inny katalog oparty na identyfikatorze UID użytkownika:
/run/user/<uid>
.Wbudowany emulator: urządzenia z zaokrąglonymi rogami lub wycięciami teraz zmieniają się aby zrobić miejsce na rogi i wycięcie. Wymaga to „zimnego rozruchu” tych emulatorów.
Punkt końcowy gRPC obsługuje teraz wysyłanie SMS-ów do urządzenia.
Poprawki ogólne
- Zauważyliśmy problemy ze zgodnością podczas uruchamiania emulatora systemu Windows w aplikacji Riot Zespół Vanguard aktywny. Emulator systemu Windows wykrywa teraz zabezpieczenia przed oszustami i efekty popowe Vanguard komunikat ostrzegawczy w przypadku wykrycia Vanguard.
- Usunięto
FD_SETSIZE
błąd w systemie Windows. Używamy teraz nazwyWSAEventSelect()
zamiastselect()
za nawiązywanie nieblokujących połączeń z serwerami zapętlającymi. - Dodano obsługę funkcji CPUID F16C do emulatora Linuxa z poprawkami działania niektóre aplikacje na architekturę ARM64 za pomocą translacji NDK; System macOS/Windows w toku.
- Poprawiono odtwarzanie trasy w formacie Gpx/kml zgodnie z sygnaturami czasowymi.
- Usunięto problem z odrzucaniem ikony przy uruchamianiu w systemie macOS.
- Jeśli
hw.audioInput=no
ihw.audioOutput=no
wconfig.ini
, emulator dźwięku jest teraz prawidłowo wyłączony. - Rozwiązaliśmy problem, który powodował, że okno emulatora było zminimalizowane podczas było otwarte, ale nieaktywne, rozszerzone okno kontroli widoczne przy zmianie rozmiaru okna emulatora. Całkowicie usuniemy (w przypadku zgłoszenia z aktywnym rozszerzonym oknem ustawień) w przyszłej aktualizacji.
- Naprawiono błąd, który powodował niestabilne połączenie z siecią Wi-Fi przy uruchamianiu emulatora.
- Rozwiązano problem z zawieszaniem się przy zamykaniu, gdy emulator wysyła polecenia powłoki o długiej lub nieokreślonej wartości. tymczasowe zawieszenie użytkownika.
- Zaktualizowaliśmy biogram komputera z poprawkami, aby lepiej obsługiwać duże obrazy przekazywane do
-initrd
. poprzedni BIOS używał bardzo mało wydajnej metody. - Naprawiono poważny błąd występujący podczas zamykania, gdy używana była opcja
-wifi-server-port
. - Emulator wyświetli teraz ostrzeżenie, jeśli do funkcji
-prop
zostaną przekazane nieobsługiwane opcje (Obsługiwane są tylko rekwizyty qemu.*). - Gdy tworzysz emulator w systemie Windows, ryzyko wykrycia jest mniejsze. niestabilnym zapisie w plikach, Więcej informacji znajdziesz w kompilacji dla systemu Windows instrukcje.
- W przypadku składanych urządzeń AVD wyłączono przycisk powiększenia, co było źródłem problemów.
- Emulator prawidłowo raportuje teraz czas rozruchu po ponownym uruchomieniu urządzenia.
- Linux: w przypadku niewystarczających uprawnień KVM emulator teraz szybciej wyświetla instrukcje debugowania.
- Rozwiązaliśmy problem, który powodował, że emulator nie mógł uruchomić ostatnich obrazów systemu bez jego przyspieszenie.
- Rozwiązaliśmy problem z uszkodzeniem pamięci i awarią podczas uruchamiania z wzorca wykrywania zakończenia rozruchu.
- Rozwiązano wyciek pamięci podczas sesji nagrywania długiego ekranu.
- Ikony emulatora zostały zaktualizowane, aby odzwierciedlić markę Studio 4.1.
- Dodaliśmy lepszą obsługę wykrywania sesji zdalnych w systemie Windows.
Poprawki: dekodowanie grafiki i filmów
- Rozwiązaliśmy problem, który powodował, że w najnowszej grze Asphalt 9 była wyświetlana czarny ekran.
- Usunięto spam związany z opróżnianiem bufora zmapowanego za pomocą funkcji
NULL
. - Naprawiono stan wyścigu podczas usuwania stanu Vulkan w przypadku gościnnej aplikacji Vulkan zamknięto.
- Mechanizmy cieniowania emulacji Vulkan ASTC/ETC2 są teraz wbudowane w libOpenglRender bibliotece. Będzie to bardziej niezawodne niż odczyt z systemu plików.
- Naprawiono błąd interfejsu Vulkan, który powodował, że w przypadku uruchomienia w instancji Vulkan 1.0
hosta, funkcja
vkGetImageMemoryRequirements2KHR
nieprawidłowo wyczyści zwrócone dane PolepNext
elementuVkMemoryRequirements2
struct. - Naprawiono wyciek pamięci w mechanizmie renderowania Vulkan.
- Naprawiliśmy ostatnią regresję, w wyniku której cieniowanie GLSL ES 1.00 o nazwach zmiennych:
Nie udało się skompilować pliku
isampler2D
. - Zaktualizowaliśmy tłumacza do cieniowania ANGLE, dodając różne poprawki, które można rozwiązać nie udało się skompilować programów do cieniowania w systemie Linux.
- Awaria emulatora następuje teraz, jeśli podstawowy cieniowanie bufora klatek nie działa w przypadku błędu kompilować, by śledzić zjawisko.
- Zaktualizowaliśmy tłumacza do cieniowania ANGLE, aby nadążać za ANGLE nadrzędnymi. Naprawiło to
problem związany z uszkodzeniem pamięci podczas tłumaczenia i ciągłego zwijania OpenGL ES
programów do cieniowania, które używały macierzy niekwadratowych. Tłumacz programów do cieniowania jest teraz oddzielnym narzędziem
zasoby wspólne,
libshadertranslator.dll
. - Naprawiono problem z inicjowaniem interfejsu Vulkan w przypadku niektórych sterowników GPU, gdzie niektóre sterowniki 1.1 nie znaleziono funkcji urządzenia.
- Vulkan: Ponownie wróciliśmy do używania gotowego programu ładującego jako systemowy program ładujący Vulkan spowodował problemy w niektórych konfiguracjach, będzie w stanie i rozwiązania problemu.
- Rozwiązaliśmy problem z używaniem zewnętrznej pamięci Vulkan zaimportowano na hoście niepasujące indeksy typów pamięci.
- Rozwiązaliśmy problem z emulacjami funkcji
GL_ALIASED_POINT_SIZE_RANGE
, w których wyliczenie uwzględniało nie są obsługiwane przez hosta. - Rozwiązaliśmy problem polegający na tym, że w przypadku niektórych GPU hosta nie można było skompilować programów do cieniowania Skia z powodu
błędy związane z:
GL_EXT_shader_framebuffer_fetch
. - Ponieważ nasza kopia mechanizmu renderowania D3D9 ANGLE została usunięta kilka wersji temu, a także automatycznie przełączaj użytkowników korzystających z mechanizmu renderowania na d3d11 ANGLE, jeśli wybrane w preferencjach interfejsu.
- Do inicjowania WGL w systemie Windows dodaliśmy więcej danych debugowania, aby błędów śledzenia.
- Gdy
hw.gltransport=virtio-gpu-pipe
działa, wydajność poprawia się, nie wirując na hoście podczas przenoszenia między hostem. - Dodaliśmy więcej rejestrowania debugowania, gdy nie uda się zainicjować emulacji OpenGLES.
- Rozwiązaliśmy problem, który powodował, że filmy w YouTube migoały lub nie wyświetlały się na zdjęciu. strony.
- Na razie powróciliśmy do dekodowania programowego libvpx, ponieważ zauważyliśmy problemy z
Sprzętowe dekodowanie libvpx przez CUDA. Jeśli masz obsługiwane sprzętowe dekodowanie CUDA
po stronie hosta, sprzętowe dekodowanie libvpx można włączyć za pomocą
zmienną środowiskową
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
.
30.0.10 (30 kwietnia 2020 r.)
Ta aktualizacja obejmuje obsługę uruchamiania emulatora bezpośrednio w Android Studio i wirtualnych, z domyślnie włączonym trybem dowolnego okna.
Uruchamianie emulatora w Android Studio
Emulator Androida można teraz uruchamiać bezpośrednio na Androidzie Studio. Ta funkcja pozwala oszczędzać powierzchnię ekranu, co umożliwia szybkie poruszanie się między z emulatora i okna edytora za pomocą skrótów klawiszowych oraz do uporządkowania IDE i procesu emulatora w jednym oknie aplikacji.
Tryb dowolnego okna
Można teraz utworzyć średni czas oglądania z włączonym trybem dowolnego okna, wybierając profilu sprzętowego tabletu 13.5” Freeform podczas tworzenia urządzenia wirtualnego Android Studio. Ten profil sprzętu wymaga obrazu systemu z Androidem 11 Podgląd dla programistów w wersji 3 lub nowszej.
Znane problemy
Zmiana rozmiaru dowolnych okien działa obecnie z powodu problemów z przenoszeniem przejdź do Menedżera okien. Zostanie on poprawiony w przyszłości w Androidzie 11. nową wersję obrazu systemu.
30.0.0 (19 lutego 2020 r.)
Ta aktualizacja obejmuje obrazy systemowe Androida 11 (poziom interfejsu API 30) i ulepszone podczas uruchamiania plików binarnych ARM.
Obrazy systemowe Androida 11
Możesz teraz utworzyć aplikację na żywo z Androidem 11, wybierając jedną z tych opcji dostępne obrazy systemowe poziomu 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żyć emulatora Androida, ponieważ aplikacja w zależności od plików binarnych ARM, można teraz użyć obrazu systemu Android 9x86 lub dowolnego obraz systemu Androida 11, który będzie potrzebny do uruchomienia aplikacji – nie trzeba już pobierz określony obraz systemu, aby uruchomić pliki binarne ARM. Android 9 oraz Obrazy systemu Android 11 domyślnie obsługują architekturę ARM i świetnie się zapewniają są szybsze w porównaniu z urządzeniami z pełną emulacją ARM.
Znane problemy
- Niektóre pliki binarne ARMv7 nie działają w obrazach systemowych Androida 11 x 86 i x86_64. Jeśli kierujesz produkty na Androida 11, rozważ wykorzystanie modelu ARM64.
29.0.11 (29 maja 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Windows: emulator korzysta teraz z biblioteki DLL
libgcc
, którą wysyłamy zamiast jest statycznie skompilowana z funkcjąlibgcc
. - Linux: do interfejsu gRPC API dodano obsługę logcat. Więcej informacji na temat gRPC znajdziesz tutaj: Emulator strumieniowania gRPC (Linux).
- Emulator zawiera teraz kompilację bez interfejsu graficznego dla gości 32-bitowych x86
(
qemu-system-i386
). Ta funkcja włącza 32-bitowe obrazy x86 na poziomach API 26 i niżej, aby działała bez interfejsu graficznego. Pamiętaj, że w przypadku 32-bitowych plików gości x86 z Interfejs API w wersji 27 i nowszych emulator używa silnika 64-bitowego (qemu-system-x86_64
) ponieważ w tych obrazach jądro to 32-bitowa przestrzeń użytkownika, 64-bitowy. Android Studio używa jądra do wyboru silników emulacji. - Możesz teraz określać niestandardowe ścieżki biblioteki Qt za pomocą interfejsu
ANDROID_QT_LIB_PATH
zmiennej środowiskowej. - Możesz teraz uruchomić emulator z poprzednimi plikami binarnymi korzystającymi z QEMU1, jeśli
Pliki wykonywalne QEMU1 (
emulator[64]-[x86|arm|etc]
) są umieszczane w emulatorze katalogu. - Windows: usunięto błąd, który czasami powodował awarię emulatora Powinien zacząć od „żądania wyłączenia procesora wirtualnego”. .
- Rozwiązaliśmy problem z niepotrzebną barierą potoku w emulowanej skompresowanej wersji tekstur w języku Vulkan.
- Naprawiono błąd, który pojawiał się w przypadku żądań serwera proxy HTTP, gdy transfer został podzielony na fragmenty użyto kodowania. Więcej informacji: szczegóły zobowiązania.
29.0.9 (7 maja 2019 r.)
Ta aktualizacja zawiera te poprawki:
- Windows: usunięto problem, który powodował, że kamera sceny wirtualnej i kamera internetowa nie działały. możemy pracować nad emulatorem.
29.0.8 (6 maja 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Dodano obsługę wielu wyświetlaczy sprzętu wirtualnego w obecności gości może wyliczać i ustawiać każdy wyświetlacz. Wiele wyświetlaczy sprzętu wirtualnego zostaną uwzględnione w przyszłej aktualizacji obrazu systemu emulatora.
- Dodano nową opcję wiersza poleceń:
-delay-adb
. Ta opcja jest pomijana przetwarzania pakietów ADB do momentu zakończenia uruchamiania przez gościa (na zimno), uruchamianie). Ta opcja pomaga rozwiązać problemy, które mogą wystąpić, jeśli korzystasz z w środowisku CI, które ponownie uruchamia emulator i jednocześnie używa DDMS obecnie się znajdujesz. - Naprawiono błąd, który występował podczas wczytywania zrzutów w miejscu
glIsRenderbuffer
zwróci nieprawidłową wartość. - Rozwiązaliśmy niektóre problemy ze stanem braku aktualizacji podczas ponownego uruchamiania gościa z Androidem.
- Windows: usunięto problemy, które uniemożliwiały uruchomienie emulatora przy Nazwa użytkownika w systemie Windows zawierała znaki spoza zestawu ASCII lub spacje.
Znane problemy
- Interfejs zrzutów jest wyłączony w przypadku obrazów systemu motoryzacyjnego, ponieważ zrzuty ekranu nie są obecnie obsługiwane w przypadku tych obrazów systemu.
29.0.6 (1 maja 2019 r.)
Aktualizacja obejmuje kilka nowych funkcji i usprawnień istniejących funkcji, i poprawki błędów.
Usunięcie QEMU1 i obsługi 32-bitowej wersji systemu Windows
Aby zapewnić lepszą obsługę emulatora, nie oferujemy już QEMU1 ani 32-bitowego systemu Windows pliki binarne. Jeśli używasz 32-bitowego systemu Windows, nie możesz zaktualizować przeglądarki do wersji 29.0.6.
Wymagania dotyczące obrazów systemu Android Q
Jeśli chcesz uruchomić aplikację AVD z obrazem systemu Androida Q, musisz użyć wersji 29.0.6 (tej wersji) lub nowszej.
Ulepszenia dotyczące marmuru projektu
Ta aktualizacja jest kontynuacją pracy nad Projektem Marble inicjatywę ogłoszoną na Android Developer Summit w listopadzie 2018 r. Więcej informacji o innych ulepszeniach w Project Marble w poprzednich wersjach znajdziesz w artykule Emulator Androida: usprawnienia projektu Marble.
W tej aktualizacji większość naszych działań w projekcie Marble skupiała się na redukcji wykorzystanie zasobów emulatora, na przykład przez zmniejszenie wykorzystania procesora przez emulator podczas bezczynności. Wprowadziliśmy też zmiany, które ułatwiają pracę z emulatorem w bardziej zróżnicowanych środowisk i rozwiązaliśmy ogólne problemy z jakością.
W sekcjach poniżej opisujemy ulepszenia wprowadzone w Project Marble, zawarte w tej aktualizacji:
Ulepszenia działania dźwięku hosta
Od wersji 28.0.3 emulator blokuje wejście audio z hosta.
Jeśli chcesz użyć danych dźwiękowych hosta, możesz włączyć tę opcję w Rozszerzone elementy sterujące > Mikrofon i włączenie opcji Mikrofon wirtualny używa hosta wejście audio. Ta opcja jest automatycznie wyłączana, gdy emulator jest Zrestartowano.
Jeśli korzystasz z wiersza poleceń, możesz też włączyć dźwięk hosta za pomocą polecenia
-allow-host-audio
, a w tym celu możesz użyć tych poleceń ADB:
odpowiednio włączyć lub wyłączyć hostowanie danych audio:
adb emu avd hostmicon
adb emu avd hostmicoff
Ulepszenia kompilacji emulatorów bez interfejsu graficznego
Od wersji 28.0.25 emulator zawiera opcję kompilacji bez interfejsu graficznego które mogą działać bez interfejsu użytkownika. Możesz użyć kompilacji bez interfejsu graficznego, aby skonfigurować emulator dla przepływów pracy Dockera i ciągłej integracji (CI).
W ramach tej aktualizacji wprowadziliśmy dalsze ulepszenia, które umożliwiają działanie emulatora
z minimalną liczbą zależności. W Linuksie nie można już tworzyć kompilacji bez interfejsu graficznego
uwzględniaj biblioteki pulseaudio
i libX11
. Udostępniane zależne od systemu
biblioteki, które nie są spakowane z emulatorem, zostały zmniejszone do
ta lista:
Linux-vdso.so.1
Libutil.so.1
Libm.so.6
Libdl.so.2
Librt.so.1
Libpthread.so.0
Libgcc_s.so.1
Libc.so.6
ld-linux-x86-64.so.2
Biblioteki interfejsu Qt zostały zaktualizowane do wersji 5.12 LTS
Ta aktualizacja zawiera te ulepszenia z wersji LTS Qt 5.12:
- Aby uniknąć awarii podczas dekodowania systemu
libpng
podczas uruchamiania określonego systemu obrazów, emulator używa teraz własnej kopii plikulibpng
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, mamy teraz pakiet
libfreetype
,libsoftokn
,libsqlite3
ilibxkbcommon
za pomocą emulatora. - Emulator używa teraz natywnych bibliotek obsługi okna platformy, aby pobrać monitoruj wymiary, zamiast korzystać z bibliotek Qt, które zwróciły zawodne wyników.
Automatyczne optymalizacje procesora po uruchomieniu „na zimno”
Aby rozwiązać problem wykorzystania procesora, emulator uruchamia teraz następujące polecenia ADB
uruchamianie po otrzymaniu sygnału boot complete
:
adb shell settings put screen_off_timeout 214783647
- To polecenie wydłuża czas oczekiwania na wyłączenie ekranu, aby można było używać emulatora w trybie baterii bez ładowania. W trybie baterii wykorzystanie procesora w tle jest znacznie zredukowane. .
- W trybie ładowania AC działania w tle GMSCore, takie jak aktualizacje aplikacji, mogą trwać na wszystkich rdzeniach procesora urządzenia, a co za tym idzie, na komputerze użytkownika – bez
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- To polecenie anuluje uprawnienia aplikacji wyszukiwarki Google do mikrofonu, co znacznie ogranicza wykorzystanie procesora w tle na ekranie głównym i w programie uruchamiającym, czy wyszukiwarka Google jest aktywna. .
- To polecenie jest uruchamiane w uzupełnieniu domyślnego działania emulatora – wyłączeniu dźwięku dla hosta. Ponadto automatycznie udostępnia środki ograniczające użycie procesora opisane dla wykrywania słów-kluczy w wersji 28.0.23. .
Nowe zmienne środowiskowe do monitorowania wydajności
Za pomocą dwóch nowych zmiennych środowiskowych możesz teraz szczegółowo monitorować wydajność emulatora i wykorzystanie zasobów.
SHOW_PERF_STATS=1
- Ta zmienna środowiskowa umożliwia śledzenie wykorzystania procesora i pamięci RAM. Śledzenie wykorzystanie pamięci RAM pozwala rozróżnić wykorzystanie karty graficznej i całkowitą ilość pamięci rezydentnej.
ANDROID_EMU_TRACING=1
- Ta zmienna środowiskowa umożliwia drukowanie za każdym razem, gdy dane wejściowe lub grafika Operacja trwa bardzo długo (ponad 1 ms). .
- Korzystamy również z tej zmiennej środowiskowej do diagnozowania problemów, które W systemie Windows wystąpiło więcej zacięć (usuwanych klatek) niż u użytkowników w systemach macOS i Linux.
Ogólne ulepszenia w projekcie Marble
Ta aktualizacja obejmuje też następujące ogólne ulepszenia wprowadzone w ramach inicjatywy Project Marble:
- Możesz teraz natychmiast wstrzymać wszystkie procesory wirtualne w emulatorze za pomocą tych poleceń konsoli:
adb emu avd pause
adb emu avd resume
- Znacznie zmniejszony narzut związany z rysowaniem przez OpenGL. To ulepszenie zmniejsza wykorzystanie procesora gdy emulator odtwarza animacje.
- Przywrócono obsługę głównego urządzenia sieci wirtualnej e1000 firmy mainline QEMU. Za pomocą na tym urządzeniu, aby skonfigurować emulator w pomostowym środowisku sieciowym. W mostka, emulator jest widoczny w sieci hosta, a sieć hosta jest widoczna w emulatorze.
- Do uruchamiania emulatora są teraz używane pliki binarne BIOS odpowiednie dla QEMU 2.12.
- Zaktualizowano
ffmpeg
do wersji 3.4.5 na potrzeby kodowania i dekodowania wideo. - Znacznie zmniejszono obciążenie głównej pętli I/O QEMU w systemie macOS, zastępując główną
pętla oparta na metodzie
select()
, z pętlą główną opartą nakqueue
. - Zwiększono rozmiar bufora logcat do 2 MB, aby rozwiązać problemy z nieoczekiwanymi problemami EOF w przypadku uruchomienia programu logcat z emulatorem.
- Emulator domyślnie eksportuje teraz zmienną środowiskową
LC_ALL=C
. Ten rozwiązuje problemy powodujące awarie i niekompatybilność w różnych językach. - Możesz teraz śledzić wykorzystanie procesora i pamięci RAM przez emulator, korzystając z wydajności dostępne na stronie Ustawienia rozszerzone > Ustawienia > Zaawansowane > Statystyki skuteczności. Wykorzystaj te statystyki, aby szybko zdiagnozować problemy, jeśli emulator prawdopodobnie używa za dużo procesora lub pamięci RAM.
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
używa teraz procesora graficznego hosta zamiast emulowanego wyniku. Ta zmiana pomaga rozwiązać problemy z obrazami , a zasoby nie są wyświetlane ze względu na nieprawidłowy format odczytu.- Dodano obsługę rozszerzeń OpenGL ES
GL_EXT_texture_format_BGRA8888
iGL_APPLE_texture_format_BGRA8888
, jeśli te rozszerzenia są obsługiwane przez hosta. - Dodaliśmy więcej informacji diagnostycznych do interfejsu Zgłaszanie błędów. Ponadto masz dostęp do
za pomocą tych poleceń:
telnet localhost 5554
avd bugreport
- W przypadku obrazów systemowych Androida Q emulator zwiększa minimalny rozmiar pamięci RAM do 2. GB.
- Dodanie większej ilości danych logowania i drukowania za każdym razem, gdy OpenGL lub hipernadzorca nie mogą zainicjować.
- Jeśli emulator nie może uruchomić równoczesnej instancji
-read-only
AVD, emulator próbuje teraz ponownie uruchomić aplikację-read-only
AVD jeszcze 3 razy ponad 3 razy sek. Ta zmiana zwiększa prawdopodobieństwo, że emulator będzie w stanie uruchamiaj równoczesne instancje-read-only
i AVD, jeśli inne możliwe do zapisu instancje aby system AVD nie usuwał nieaktualnych plików. - W przypadku nadchodzących obrazów systemu emulator obsługuje teraz narzędzie Hardware Composer 2.0. Ta zmiana powinna zmniejszyć obciążenie kierowcy podczas uruchamiania większości animacji.
- Kompilacja emulatora jest teraz oparta na CMake/Ninja.
- W interfejsie rozszerzonych elementów sterujących emulatora linie separatorów w skrótach klawiszowych Tabela została przywrócona.
- Użytkownicy mogą teraz udostępnić naszemu zespołowi dane o wykorzystaniu procesora i pamięci RAM w Interwał 10-sekundowy. Wykorzystujemy te wskaźniki, aby wzbogacić informacje o emulatorze wykorzystanie zasobów w różnych przypadkach użycia przez użytkowników, co pozwala nam poprawi wydajność i responsywność emulatora.
Ogólne poprawki dotyczące marmuru w projekcie
Ta aktualizacja zawiera też poniższe ogólne poprawki, które są częścią Inicjatywa Projektu Marble:
- Rozwiązaliśmy problemy z drganiem i nieprawidłowymi klatkami podczas wyświetlania z procesorami graficznymi Intel i obrazami systemu Android Q.
- Rozwiązaliśmy problem z wyświetlaniem czarnego ekranu podczas korzystania z Androida Q (lub dowolnej skórki z wycięciem albo zaokrąglonymi rogami).
- Rozwiązaliśmy problem, który powodował, że opcja wiersza poleceń
-partition-size
nie była ustawiana rozmiar partycji danych. - Naprawiono błąd, który powodował kręcenie się i przechwytywanie pulsujących dźwięków na emulatorze Linx lub całego rdzenia procesora.
- Rozwiązaliśmy problemy z dostępem poza granicami pamięci podczas przetwarzania skompresowanego pliku tekstury.
- Usunięto błędy GL, które występowały na hoście w
glTexSubImage2D
podczas aktualizacji określone bufory gralloc (w formacie RGB 565, RGB10A2, RGB(A)16F). - Usunięto problem z wyświetlaniem. w obrazach systemowych Androida Q ze zrzutami, w których obszar powiadomień geometria została wyrenderowana z nieprawidłowym ustawieniem dzielnika instancji.
- Naprawiliśmy kilka problemów z trudną do odtworzenia awarią i zawieszaniem aplikacji podczas uruchamiania. z powodu utraty sygnałów lub niespójnych stanów po uruchomieniu.
- Naprawiono wiele problemów z równoczesnością. Teraz możemy stworzyć emulator Linuksa, z narzędziem ThreadSanitizer (TSAN), które ułatwia wykrywanie błędów, jest trudny do odtworzenia.
- Użytkownicy systemu Linux: w niektórych jądrach hosta
jądro może zakończyć się błędem i wyjść w KVM z ogólnym błędem sprzętowym. Emulator
teraz
abort()
, gdy to nastąpi, co zwiększy możliwość debugowania (wcześniej emulator się zawieszał). - Użytkownicy systemu Linux: dla wygody podczas konfiguracji CI można używać nowej
Opcja wiersza poleceń
-stdouterr-file <file-name>
do przekierowania zarównostdout
, jak istderr
do pliku. - Rozwiązaliśmy problem, który powodował nieprawidłowe korzystanie z pola
SO_REUSEADDR
. Aby dowiedzieć się więcej, zobacz szczegóły zobowiązania. - Rozwiązaliśmy od dawna problem z emulatorem Windows, w którym podprocesy takich jak polecenia ADB, nie można uruchomić, jeśli nazwa użytkownika zawierała spacje.
- Naprawiono problem braku inicjowania RCU w wątkach procesora wirtualnego HAXM. Ten może naprawić niektóre wypadki i warunki wyścigu.
- Naprawiliśmy awarię, która występowała przy określonych wzorcach zapisywania i wczytywania z interfejsu zrzutów przy użyciu najnowszych obrazów systemu Android Q.
- Rozwiązaliśmy problem, który powodował, że kamera sceny wirtualnej była pusta, gdy emulator została zainicjowana ze zrzutu, jeśli w trakcie jej odtwarzania było uruchamiane makro AR został zapisany.
- Rozwiązaliśmy problem, który powodował, że u niektórych użytkowników korzystających z konfiguracji pulpitu zdalnego pojawiał się czarny ekran
przy uruchamianiu emulatora w systemie Linux. Aby tego uniknąć, emulator wyraźnie
konfiguruje konfigurację
MESA_RGB_VISUAL
. Więcej informacji znajdziesz w szczegółach zobowiązania. - Rozwiązaliśmy problem z rotacją. pojawią się na telewizorach AVD.
- Rozwiązaliśmy problem, który polegał na tym, że emulator było zawsze na górze, za każdym razem, gdy został obrócony emulator.
Profile sprzętu na urządzeniach składanych
Emulator zawiera teraz profile sprzętowe na urządzeniach składanych. Aby ich używać nowych profili sprzętu, musisz korzystać z Android Studio 3.5 Canary w wersji 10 lub nowszej.
Do utworzenia AVD możesz użyć 2 składanych profili sprzętu:
- 7,3 cala Składany: 1536 x 2152 rozłożony, 4,6 cala 840 x 1960 po złożeniu
- 20 cm Składany: 2200 x 2480 rozłożony, 6,6 cala 1480 x 2480 po złożeniu
Po uruchomieniu emulatora przy użyciu jednego z tych profili sprzętowych możesz składać otwórz urządzenie za pomocą funkcji składania i otwierania. na pasku narzędzi emulatora poleceń konsoli, lub te skróty klawiszowe:
- Fold:
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ń AR. Za pomocą makra możesz na przykład zresetować wszystkie czujniki urządzenia domyślny stan.
Więcej informacji znajdziesz w artykule Testowanie typowych działań AR za pomocą makr.
Obsługa interfejsu Vulkan (Windows, Linux)
Użytkownicy systemów Windows i Linux mogą teraz testować aplikacje Vulkan za pomocą Emulatora Androida do Vulkan 1.1 w przypadku zgodnego obrazu systemu (Android Q Beta 3 lub nowszy dla Vulkan 1.1, Android Q Beta 2 dla Vulkan 1.0) i zgodny procesor graficzny hosta (to obejmuje większość procesorów graficznych Intel, NVIDIA i AMD z 2014 roku i nowszych).
Aby włączyć obsługę interfejsu Vulkan, musisz dodać następujące flagi funkcji do swojego
~/.android/advancedFeatures.ini
plik (jeśli nie istnieje, utwórz go):
Vulkan = on
GLDirectMem = on
Wstępna pomoc dla programistów ROM
deweloperzy ROM, którzy tworzą sdk_phone_x86
lub sdk_phone_x86_64
;
Cele (warianty userdebug
, eng
) w gałęzi AOSP master
mogą teraz uruchamiać
Emulator z obsługą interfejsu Vulkan.
Jest ona wciąż w fazie eksperymentalnej i jest przeznaczona głównie dla programistów,
oraz obrazy systemu, sterowniki i silniki gier. Nadal brakuje wielu rozszerzeń.
Jednak pamięć HOST_COHERENT
jest obsługiwana, więc powinno być już możliwe
uruchomić przykładowe samouczki interfejsu Vulkan API.
Jeśli używasz Linuksa, możesz to zrobić przy użyciu następujących poleceń:
mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem
Renderowanie za pomocą interfejsu Vulkan na platformie Skia
Procesory graficzne NVIDIA i AMD obsługujące interfejs Vulkan obsługują również interoperacyjność typu zero-copy z
OpenGL przez rozszerzenie GL_EXT_memory_objects
. Emulator wykorzystuje tę funkcję
pozwala na całkowite renderowanie interfejsu Androida za pomocą interfejsu Skia
interfejsów API interfejsu Vulkan.
Jeśli masz procesor graficzny NVIDIA lub AMD obsługujący Vulkan, użyj do testowania renderowania w trybie Skia ze zgodnym obrazem systemu (Android Q beta 3 i nowszych):
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
Obsługa interfejsu Vulkan w systemie macOS
Obsługa systemu macOS jest wciąż w fazie eksperymentalnej, ale emulator zawiera już Swiftshader, MoltenVK oraz libportability (gfx-rs). Możesz eksperymentować z tymi interfejsami API, ustawiając następujące środowisko zmienne:
- Swiftshader:
ANDROID_EMU_VK_ICD=swiftshader
- MoltenVK:
ANDROID_EMU_VK_ICD=moltenvk
- swoboda praw autorskich:
ANDROID_EMU_VK_ICD=portability
Znane problemy
Funkcja HAXM może czasem nie zmapować spójnej pamięci interfejsu Vulkan na gościa i się wyłącza. wyłączyć emulator. Ten problem postaramy się rozwiązać w przyszłej aktualizacji HAXM.
Emulator strumieniowania gRPC (Linux)
Zależy nam, aby emulator był jak najbardziej uniwersalny, renderowanie i interakcję z GPU w najszerszym zakresie działających kontekstów. Nasi użytkownicy CI i komputerów zdalnych od dawna mają następujące problemy:
- Automatyczne wysyłanie poleceń wejściowych do emulatora obejmuje: uruchamianie poleceń powłoki adb, które mogą wymagać dużego nakładu pracy, lub korzystanie z konsolę Telnet, która jest szybsza, ale może nie działać w niektórych sieciach konfiguracji.
- Użytkownicy CI często używają emulatorów bez interfejsu graficznego, co utrudnia ich zauważenie. problemy, które wymagają, aby ekran był widoczny lub interaktywny.
- Użytkownicy komputerów zdalnych często nie mogą wchodzić w interakcje z emulatorem, gdy korzystają z hosta Renderowanie za pomocą GPU, ponieważ renderowanie GPU jest często powiązane z niewirtualną mapą hosta i wyświetlacze.
Aby rozwiązać ten problem, na komputerze z systemem Linux emulator obsługuje teraz gRPC. gRPC to ogólna platforma dla RPC, które działają przez HTTP.
Domyślnie usługa emulatora gRPC jest wyłączona, ale możesz aktywować
za pomocą poniższej opcji wiersza poleceń, gdzie <port>
to port, na którym emulator powinien obsługiwać żądania gRPC (zwykle 5556
):
-grpc <port>
Po uruchomieniu usługi polecenia gRPC mogą być udostępniane klientom. bieżący zestaw poleceń pozwala zarówno na wysyłanie zdarzeń wejściowych, jak i odbieranie zrzuty ekranu. Te polecenia pomagają rozwiązać następujące problemy:
- Polecenia wejściowe mogą być wysyłane do emulatora bez konieczności przesyłania dużych ilości danych przez HTTP. HTTP umożliwia także wysyłanie poleceń w dodatkowych konfiguracjach sieci.
- Polecenia zrzutu ekranu można wysyłać, aby wykonać zapytanie dotyczące bieżącego ekranu, nawet jeśli Emulator działa bez interfejsu graficznego. Aby zwiększyć interaktywność, możesz też wysyłać zdarzenia wejściowe z powrotem do emulatora.
- Użytkownicy komputerów zdalnych mogą uruchomić emulator bez interfejsu graficznego na głównym wyświetlaczu za pomocą Renderowanie z akceleracją GPU, używanie gRPC do pobierania zrzutów ekranu i wysyłania danych wejściowych do interakcji z emulatorem.
Pełną listę dostępnych poleceń znajdziesz w sekcji tego protokołu.
Aby ułatwić Ci rozpoczęcie pracy z gRPC, przygotowaliśmy przykładowe klienty i do których możesz się odnieść.
Obecnie obejmuje to następujące przykłady:
- Usługa w języku Go, której można używać do wysyłania zapytań dotyczących stanów emulatora.
- Aplikacja React, która demonstruje zdalną interaktywność za pomocą zrzutów ekranu i wprowadzania danych RPC. Ten przykład wymaga bufora protokołu w wersji 3.7.0 lub nowszej.
- Przykładowy kod w języku Python, który wysyła zapytanie do konfiguracji maszyny wirtualnej emulatora, a następnie wysyła lub szereg poleceń.
28.0.25 (29 marca 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
Kompilacja emulatora bez interfejsu graficznego
Trudno było skonfigurować emulator przy użyciu Dockera i innych usług w przepływach pracy integracji (CI) ze względu na niejawne oczekiwania wobec systemu obsługuje platformę Qt wraz z zależnościami zasobów wspólnych oraz innych kwestii.
Pierwszym krokiem w rozwiązaniu tego problemu jest wprowadzenie wariantu emulatora.
program uruchamiający z plikami wykonywalnymi QEMU, który nie jest zależny od Qt. W Linuksie
wciąż jest link do libX11
, ale mamy nadzieję, że wkrótce go usuniemy.
Aby użyć emulatora bez interfejsu graficznego, uruchom go w zwykły sposób z wiersza poleceń:
ale zastąp wywołanie binarne emulatora wyrażeniem emulator-headless
. Więcej
więcej informacji znajdziesz w artykule 28.1.8 Canary.
aktualizację wersji.
- Rozwiązano drżenie i nieprawidłowe wyświetlanie klatek w procesorach graficznych Intel podczas korzystania z Androida. Obrazy systemu Q.
- Rozwiązano problemy z wyświetlaniem czarnego ekranu podczas korzystania z Androida Q. obrazów ze skórkami telefonu Pixel 2 XL.
- Do uruchomienia emulatora są teraz używane najnowsze pliki binarne BIOS. Ta zmiana może pomóc ograniczyć „żądanie wyłączenia procesora wirtualnego” które występują czasami, uruchamia emulator w systemie Windows.
- Dodano poprawkę dotyczącą „nieprawidłowego wyświetlania podczas wznawiania obrazów systemu Android Q ze zrzutu”. .
- Wystąpiły problemy u użytkowników: brak autoryzacji problemy z emulatorami
z powodu niezgodnej zmiany w ADB w narzędziu platformowym 28.0.2. Dostępne opcje
teraz bezpiecznie używaj ADB z narzędzi platformy w wersji 28.0.2 za pomocą emulatora. Jeśli jesteś
Problemy z wartością „brak autoryzacji” emulatorów wykonaj te czynności
jak rozwiązać problem:
- 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.
- Ponownie uruchom emulator.
28.0.23 (29 stycznia 2019 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
Domyślnie wejście audio hosta jest wyłączone
Niedawny post na Reddicie szczegółowy sposób, w jaki system operacyjny Android gościa zawsze używa mikrofonu hosta. audio, co pozwala używać polecenia „OK Google” działanie w nieoczekiwany sposób. Przykro nam oraz będą współpracować z zespołem Androida, aby zapewnić wykrywanie słów-kluczy wyłączone w obrazie systemu.
Aby rozwiązać ten problem, wprowadziliśmy te zmiany:
- Rzeczywiste dane audio hosta są teraz domyślnie blokowane. Gdy gość użyje funkcji mikrofon, zamiast dźwięku gospodarza jest przekazywana cisza.
- Jeśli chcesz korzystać z danych dźwiękowych hosta, możesz teraz włączyć tę opcję przez Otwórz Rozszerzone elementy sterujące > Mikrofon i włączenie Mikrofon wirtualny korzysta z wejścia audio hosta. Ta opcja jest automatycznie wyłączana, gdy Ponownie uruchom emulator.
Aktualności na temat analizy wykorzystania procesora
Podczas badań projektu Marble zauważyliśmy, że wysokie wykorzystanie CPU emulator można ogólnie podzielić na te 3 kategorie:
Podczas bezczynności: automatyczne aktualizacje aplikacji w obrazach w Sklepie Play
Odkryliśmy, że wszystkie zainstalowane aplikacje są aktualizowane w losowych odstępach czasu, nawet jeśli Użytkownik nie jest zalogowany. W trakcie tego procesu wykorzystanie procesora jest zmniejszane do liczby x 100% (zwykle ok. 400%) w GMSCore i dex2oat. Możesz temu zapobiec przez wyłączenie automatycznych aktualizacji w aplikacji Sklep Play.
W przypadku bezczynności: wykrywanie słowa-klucza
Na ekranie głównym bez aplikacji na pierwszym planie możesz mieć wykorzystanie procesora (około 25% przy wzroście do 50%). Przyczyną jest wykrywanie słowa-klucza który stale wysyła pingi do hosta. Nie możesz rozwiązać tego problemu przez wyłączenie hosta audio, ponieważ koszt procesora zależy głównie od czasu potrzebnego do gościa od gospodarza. Możesz jednak temu zapobiec, cofniemy uprawnienia do mikrofonu w aplikacji Google.
Gdy użytkownik jest aktywny, a czasem bezczynny: animacje
Trzecim źródłem wysokiego obciążenia procesora są animacje. Według naszych danych optymalizując stos sterowników karty graficznej, możemy też zmniejszyć wykorzystanie procesora, nawet jeśli emulator nie jest nieaktywny. Będziemy wprowadzać optymalizacje sterowników karty graficznej stopniowo w ramach Projektu Marble.
28.0.22 (21 grudnia 2018 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Rozwiązano od dawna problem polegający na tym, że w niektórych ustawieniach emulator Maca lub powstanie zagrożenia dla jądra podczas zapisywania przez szybki rozruch. (Numer 120951634)
- Gdy używasz pliku zmapowanego jako zrzutu pamięci RAM, emulator usuwa teraz mapowanie jawnego mapowania pliku przy wyjściu.
28.0.20 (11 grudnia 2018 r.)
Ta aktualizacja zawiera te ulepszenia i poprawki:
- Rozwiązaliśmy problem w systemie Windows, który powodował, że emulator zawieszał się podczas zrzutu dysku przez niektóre modele GPU firmy Intel.
- Rozwiązaliśmy problem, który powodował, że stan urządzenia
unauthorized
ADB był niestandardową lokalizację:ANDROID_SDK_HOME
. - Rozwiązaliśmy problem w systemie Windows, który powodował awarię emulatora podczas uruchamianie obrazów systemu z wyłączoną akceleracją procesora.
- Naprawiono rozpikselowane obszary problem z wyświetlaniem emulatora. Teraz próbkowanie w dół powinno działać.
- Naprawiono błąd na urządzeniach z systemem macOS 10.14 lub nowszym, zbyt czułe z powodu interakcji z nowymi ustawieniami zabezpieczeń ułatwień dostępu.
- Usunęliśmy błąd w obliczaniu strefy czasowej, który powodował, że zegar emulatora zmieniać się sporadycznie.
- Usunięto błędy renderowania w różnych widokach Cocos2d i Nierealistycznych aplikacji wyszukiwarki.
- Dodaliśmy obsługę emulatora połączeń peer-to-peer w sieci Wi-Fi.
Dwa emulatory mogą teraz komunikować się ze sobą bezpośrednio przez Wi-Fi, jeśli używane są
Obraz Kołowy ze Sklepu Play. Aby użyć połączenia peer-to-peer w sieci Wi-Fi, uruchom dwa AVD z takim samym
Argumenty
-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 dzięki obsłudze niezgodnej klatki rozmiarów i dynamicznie dostosowując je do ustawień aparatu w Androidzie. gościa.
28.0.16 (listopad 2018 r.)
Aktualizacja obejmuje kilka nowych funkcji i usprawnień istniejących funkcji, i poprawki błędów.
Użycie zasobów
Emulator używa teraz mniej pamięci RAM, zwłaszcza przy korzystaniu z obrazów systemu z Interfejs API na poziomie 28 lub wyższym. Te obrazy systemowe pokazują ulepszone wykorzystanie pamięci przez sterowniki karty graficznej po stronie gościa.
Zwiększyliśmy też wykorzystanie zasobów w następujących obszarach:
- Zmniejszone wykorzystanie pamięci emulatora podczas długo trwających testów. Jeśli nadal wystąpią problemy z wykorzystaniem pamięci podczas długotrwałych testów, utwórz problem, który opisuje Twój przypadek użycia w narzędziu Issue Tracker.
- Zmniejszone wykorzystanie procesora podczas uruchamiania aplikacji z animacjami.
- Rozwiązaliśmy problem, który powodował wyciek kontekstu QEMU AIO w systemie Windows.
Uruchamiaj wiele instancji jednego AVD jednocześnie
Teraz możesz uruchamiać wiele instancji tego samego AVD i uruchamiać je jednocześnie. Instancje uruchamiane po pierwszej instancji są tylko do odczytu, a ich instancje zmiany na dysku wirtualnym gościa są odrzucane przy zamykaniu.
Aby jednocześnie uruchomić wiele instancji tego samego AVD, uruchom dowolne instancje
za pierwszą instancję z poziomu wiersza poleceń przy użyciu flagi -read-only
.
Ta funkcja jest możliwa dzięki skopiowaniu plików QCOW2 powiązanych z
z których można zapisać dane. Aby ułatwić zarządzanie miejscem na dysku, stworzyliśmy również
pakiet zawiera narzędzie wiersza poleceń qemu-img
, które umożliwia wstępne zatwierdzenie QCOW2
przed uruchomieniem wielu instancji.
Dodatkowo w połączeniu z utworzonymi przez pliki zrzutami pamięci RAM gościa , wiele instancji AVD współużytkuje podstawowy zrzut AVD Quickboot jako popularne źródło pamięci RAM w trybie kopiowania podczas zapisu i w trybie gościa. Ta właściwość oznacza, że instancje mają wspólną dużą ilość pamięci RAM. Używaj do uruchamiania testów, które wymagają równoległego działania na kilku urządzeniach.
Doceniamy Twoją opinię na temat możliwych przypadków użycia, które są częścią lub CI. Utwórz problemy lub zagłosuj za nimi w sekcji Problem Tracker.
Zrzuty pamięci RAM gości opartej na plikach
Dzięki wstępnemu przydzielaniu i mapowaniu pamięci RAM gościa na plik emulator może teraz zapisywać Szybki rozruch jest wykonywany w czasie działania, a nie przy wyjściu. Jeśli jeśli zamykasz emulatory, możesz zaoszczędzić czas, tę funkcję, aby poprawić wydajność systemu Quickboot. Domyślnie szybki jest zapisywany przy wyjściu i ładowany ponownie za każdym razem, np. zawieszenie jak prawdziwe urządzenie.
Pamięć RAM Androida jest teraz domyślnie zapisywana automatycznie, więc jeśli chcesz zdefiniować stanu urządzenia i wielokrotnie ładowało się od tego stanu, musisz poinformować emulator odrzucić zmiany po każdej sesji. Możesz to zrobić na kilka sposobów:
- Przy uruchamianiu emulatora użyj flag
-no-snapshot-save
lub-read-only
w wierszu poleceń. - Otwórz Rozszerzone elementy sterujące > Zrzuty > Ustawienia i przełącznik Zapisuj automatycznie bieżącego stanu do Quickboot? do Nie.
- Po wybraniu tej opcji musisz ponownie uruchomić emulator. Jeśli
ma włączone automatyczne zapisywanie, możesz uruchomić to polecenie, aby ustawić
punkt kontrolny:
Po uruchomieniu tego polecenia zrzut Quickboot emulatora pozostanie na tym poziomie i punktu kontrolnego. Uruchom ponownie to samo polecenie, aby wczytać emulator ze swojego i punktu kontrolnego.adb emu avd snapshot remap 0
zrzuty ekranu, które są wykonywane i ładowane przy użyciu funkcji interfejsu zrzutów w miarę ich bez mapowania plików.
Ponieważ jest to duża zmiana w sposobie działania Quickboot, chcieliśmy
doceniam Twoją opinię na temat tego, czy poprawia wydajność Quickboot i co
napotkanych podczas korzystania z usługi. W razie problemów możesz:
wyłącz tę funkcję, dodając ten wiersz do
Plik ~/.android/advancedFeatures.ini
:
QuickbootFileBacked = off
Gdy uruchomisz emulator ze zrzutu (za pomocą polecenia -snapshot
wiersza poleceń lub uruchamianiu z poziomu menedżera AVD)
emulator wyłącza automatyczne zapisywanie zarówno zrzutów szybkiego rozruchu, jak i szybkiego rozruchu
i przy wyjściu. Zmniejsza to ryzyko, że zrzut Quickboot zostanie
i niezamierzonych zastąpieniach oraz o unikaniu powolnych ścieżek zastępczych, które nie używają
oparte na plikach zrzuty szybkiego rozruchu.
QEMU 2.12
Zmieniliśmy wariant QEMU z QEMU 2.9 na QEMU 2.12. Ta aktualizacja zawiera te zmiany QEMU:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
Oto kilka ważnych zmian, które wpływają na emulator Androida:
- x86:
gdbstub
zapewnia teraz dostęp do rejestrów SSE. - Obrazy na dysku: blokowanie obrazów jest dodane i włączone domyślnie. Wiele QEMU procesy nie mogą zapisywać w tym samym obrazie, jeśli host obsługuje OFD lub blokowanie posix, chyba że opcje są określone inaczej.
- Funkcja
qemu-img: qemu-img resize
obsługuje wstępne przydzielanie nowych części obrazu. - Zmniejszanie liczby QCOW2 jest teraz obsługiwane w
qemu
iqemu-img
.
Ułatwienia dostępu
- Rozwiązaliśmy problemy z czytnikami ekranu i ulepszyliśmy obsługę tych narzędzi w w interfejsach Nagrywanie ekranu i Zrzut ekranu.
- Ikony powiadomień szybkiego uruchamiania są teraz bardziej dostępne dla użytkowników, którzy nie rozróżniają kolorów.
Grafika
- Rozwiązaliśmy problem z dostępem poza granicami pamięci, który mógł występować w przypadku OpenGL ES wskaźniki tablicy wierzchołkowej.
- niektóre starsze GPU nie obsługiwały OpenGL 2.1 lub nowszego (co jest wymagane). wystąpiły inne problemy z niezawodnością. Te problemy mogą spowodować awarię emulatora uruchamiania, zawieszania się i braku możliwości korzystania z domyślnego ustawienia GPU. Teraz emulator automatycznie przełącza się na mechanizm renderowania Swiftshader, jeśli wykryje, że Procesory graficzne są w użyciu.
- Rozwiązaliśmy problem, który powodował, że emulator nie publikował poprawnego bufora ramki, jeśli:
Powiązanie
FBO != 0
było w chwilieglSwapBuffers
. - Rozwiązanie problemu polegającego na tym, że wirtualny wyświetlacz Androida wyświetlał się tylko u góry lewym rogu. Naszym zdaniem było to spowodowane nieprawidłowo skonfigurowanymi zmiennymi środowiskowymi Qt. Emulator zastępuje teraz wszystkie zmienne środowiskowe powiązane ze skalowaniem Qt.
- Rozwiązaliśmy problem, który powodował awarię emulatora podczas wczytywania Aplikacje GLES1 ze zrzutu.
- Rozwiązaliśmy problemy z równoczesnością w trybie OpenGL i uruchamiane wątki renderowania, które mogły co może podwójnie uwolnić dane lub spowodować uszkodzenie danych.
- Emulator Androida obsługuje teraz obsługę skompresowanej tekstury ASTC LDR
(
GL_KHR_texture_compression_astc_ldr
) w przypadku obrazów systemu korzystających z interfejsu API na poziomie 28 lub wyższą. - Większość współczesnych procesorów graficznych powinna teraz mieć możliwość uruchamiania emulatora w środowisku OpenGL ES 3.x
włączona domyślnie bez użycia flagi funkcji
GLESDynamicVersion
. - Interfejs
-gpu guest
(renderowanie programowe w trybie gościa) został wycofany. Systemowy obrazy dla interfejsu API na poziomie 28 lub wyższym są teraz automatycznie przełączane na używanie Swiftshader zamiast (-gpu swiftshader_indirect
). - Jeśli emulator zostanie uruchomiony z poziomu wiersza poleceń przy użyciu flagi
-no-window
, domyślnym mechanizmem renderowania jest teraz Swiftshader.
Lokalizacja
- Emulator może teraz aktualizować położenie wraz z długością i szerokością geograficzną pozycji. Wirtualny czujnik magnetometru dynamicznie dostosowuje się do ruchu magnetycznego na północ dzięki wnioskowaniu ruchu podczas odtwarzania pliku GPX lub KML.
- Szybkość urządzenia można teraz ustawić na stronie Lokalizacja.
- Podczas odtwarzania pliku GPX lub KML szybkość jest ustawiana automatycznie i na 0 po zakończeniu odtwarzania.
- Wysokość nie jest już ograniczona do zakresu od -1000 do +10 000 m
- Rozwiązaliśmy problem, który powodował, że lokalizacja wirtualnego GPS-a nie była aktualizowana okresowo, chyba że okno rozszerzonych ustawień zostało co najmniej raz otwarte.
Aparat
W systemie Windows obsługiwanych jest teraz więcej kamer internetowych, ponieważ emulator dynamicznie zmienia rozmiar klatek przesyłanych z kamery internetowej. Ta funkcja również zapobiega zawieszaniu się emulatora przy błędach przesyłania ramek.
Sklep Play
Aby rozwiązać problemy z brakiem miejsca na dysku w przypadku obrazów w Sklepie Play, emulator automatycznie zmienia teraz rozmiar partycji danych użytkownika do 6 GB po uruchomieniu dzięki nowemu AVD w Sklepie Play.
Ogólne ulepszenia jakości i poprawki
- Niektórzy użytkownicy zgłaszali, że emulator działa wolno. Wykryliśmy 1
możliwe, że w katalogu tymczasowym emulatora znajduje się zbyt wiele
nieaktualnych plików. Aby obejść ten problem, emulator nie przechowuje już żywotności ADB
sprawdzić pliki w tym katalogu. Pomocne może być jednak usunięcie treści,
tego folderu. Folder znajduje się w jednej z tych lokalizacji:
w zależności od systemu operacyjnego:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS lub Linux:
/tmp/android-<username>/*
- Windows:
- Jeśli nie można uruchomić emulatora z powodu niewystarczającej ilości wolnej pamięci RAM, pojawi się błąd . Jeśli korzystasz z systemu Windows i zauważasz, że masz pamięć RAM jest bezpłatne, ale nadal nie możesz uruchomić emulatora, być może opłata za zatwierdzenie została przekroczona. Pomoc w rozwiązaniu tego problemu znajdziesz na stronie rozwiązywania problemów z emulatorem.
- Opcja wiersza poleceń
-sysdir
prawidłowo zastępuje system ustalony katalogu zdjęć. - Modem wirtualny obsługuje teraz zapytanie
+MAI
dotyczące aktywności modelu. - Rozwiązaliśmy różne problemy z wyciekami pamięci, uszkodzeniem pamięci i wykorzystaniem procesora. Jeśli występują awarie, wycieki pamięci lub inne wysokie wykorzystanie zasobów, utwórz problem w narzędziu Issue Tracker.
- Rozwiązaliśmy problem, który pojawiał się ponownie w systemie macOS 10.14, polegający na używaniu zestawów słuchawkowych Bluetooth. spowodowałoby globalne pogorszenie jakości dźwięku. Aby temu zapobiec, pozwala teraz uniknąć używania dźwięku przez Bluetooth w systemie macOS. (Problem 37070892)
- Rozwiązaliśmy problem z nieprawidłowym ustawieniem zegara emulatora w systemie Windows. strefy czasowej.
- Rozwiązano problem z powolnym działaniem emulatora i zawieszanie się w systemach Linux z obracającymi się dyskami twardymi. i na dyskach HDD.
- Naprawiliśmy niektóre ostrzeżenia dotyczące kompilacji, które mogły prowadzić do uszkodzenia stosu w systemie macOS.
- Rozwiązano problemy, które mogły prowadzić do zgłaszania mylących informacji o zawieszaniu się.
- Rozwiązaliśmy problem z niszczeniem pul wątków, które mogło powodować awarię, jeśli: nie udało się utworzyć wątków.
- Rozwiązaliśmy problem z systemem macOS, który powodował niestabilne działanie liczników czasu i spowodowało ich zawieszanie i inne dziwne zachowania. Jeśli emulator zawiesza się w systemie macOS, utwórz problem w narzędziu Issue Tracker.
- Rozwiązaliśmy problem, który powodował, że zamknięcie emulatora powodowało wyłączenie interfejsu użytkownika, ale nie Zamknij emulator.
- Rozwiązano problemy z sporadycznymi awariami, w tym przerwami spowodowanymi otwieraniem się aplikacji.
wiele wystąpień parametru
/dev/urandom
. - Rozwiązaliśmy problem, który powodował, że nie uruchamiał się emulator za pierwszym razem jeśli działanie ADB zostało wymuszone.
- Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, utwórz w narzędziu Issue Tracker.
- Rozwiązaliśmy problem, który powodował, że połączenia ADB mogły zostać uszkodzone podczas wczytywania zrzutu.
- Rozwiązaliśmy problem, który powodował, że w oknie emulatora można było wyświetlić teleport lub afterimage. poza ekranem podczas wznawiania zrzutu, na którym orientacja urządzenia była inna od domyślnej orientacji AVD.
- Rozwiązaliśmy problemy powodujące awarie podczas zapisywania zrzutów.
- W systemie Linux systemy plików btrfs mogą powodować ekstremalne spowolnienie działania, ponieważ emulator
automatycznie zapisuje zrzuty i używa funkcji kopiuj podczas zapisu na dysku wirtualnym
urządzenia. Zalecamy wyczyszczenie katalogu
~/.android/avd
i uruchomienie polecenia to polecenie w pustym katalogu~/.android/avd
: Spowoduje to utworzenie nowych zrzutów w folderze z wyłączonym kopiowaniem podczas zapisu.chattr +C
HAXM 7.3.2
Jeszcze raz wspomnimy o HAXM 7.3.2, bo instaluje się ją w określonej kolejności. , by najnowsze obrazy systemu działały prawidłowo w emulatorze. HAXM 7.3.2 powinna są już dostępne w wersji stabilnej i można je również zainstalować ręcznie ze strony https://github.com/intel/haxm/releases.
Oto kilka problemów, które rozwiązano w tej wersji HAXM:
- Naprawiono losowe awarie systemów operacyjnych gości korzystających z najnowszego jądra Linuksa (>= 4.6). Na przykład Ubuntu 18.04 (#39, #74).
- Naprawiliśmy błąd emulatora instrukcji x86, który mógł prowadzić do awarii hosta (#93).
Wycofanie 32-bitowych wersji systemu Windows
Ze względu na niskie wykorzystanie i wysokie koszty konserwacji planujemy wycofać 32-bitowa wersja emulatora Androida działającego w systemie Windows. Wdrożymy planu przejścia przed usunięciem i zakończeniem cyklu życia 32-bitowej wersji Emulator Androida. Zachęcamy jednak do przekazywania opinii i wątpliwości tę przyszłą zmianę.
Daj nam znać za pomocą narzędzia do śledzenia problemów jeśli obecnie korzystasz z 32-bitowej wersji emulatora Androida, która działa na Windows i powiedz nam, jak najlepiej współpracować z Tobą w przyszłości.
27.3.10 (sierpień 2018 r.)
Ta aktualizacja zawiera następujące poprawki błędów:
Poprawka konfiguracji rozmiaru pamięci RAM
Niektórzy użytkownicy zgłaszali, że emulator działa wolno. Wykryliśmy 1
prawdopodobna przyczyna zmiany rozmiaru pamięci RAM AVD w pliku config.ini
systemu AVD
nieprawidłowo ustawione.
Aby temu zaradzić, emulator zwiększa minimalny poziom pamięci RAM dla obrazów, które
użyj interfejsu API na poziomie 26 lub wyższym, aby ustawić domyślny poziom w Android Studio, czyli 1536 MB. Jeśli
Twój plik config.ini
AVD nie zawiera nazwy hw.ramSize
w megabajtach,
utwórz zgłoszenie w narzędziu do śledzenia problemów.
Plik config.ini
znajdziesz w tej lokalizacji:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (lipiec 2018 r.)
Aktualizacja zawiera następujące ulepszenia i poprawki błędów:
Ulepszone komunikaty o błędach dotyczące Windows Hypervisor Platform
Niektórzy użytkownicy mieli problemy ze zdiagnozowaniem przyczyny Windows Hypervisor Platform.
(WHPX) nie udało się zainicjować podczas aktywacji emulatora WHPX. Aby Ci pomóc
aby zdiagnozować te problemy, dodaliśmy więcej informacji o komunikatach o błędach. Dostępne opcje
włącz te komunikaty o błędach, uruchamiając emulator z wiersza poleceń
flagę -verbose
.
Poprawki ogólne
- Naprawiliśmy błędy OpenGL, które występowały podczas wczytywania zrzutu w aplikacji aparatu.
27.3.8 (lipiec 2018 r.)
Aktualizacja obejmuje kilka nowych funkcji i usprawnień istniejących funkcji, i poprawki błędów.
Zrzuty danych
Teraz można zapisać wiele zrzutów AVD dla danej konfiguracji urządzenia wybierz, który z zapisanych zrzutów ma być wczytywany po uruchomieniu emulatora.
Począwszy od Android Studio 3.2 Canary 13 każda konfiguracja urządzenia zawiera element sterujący w ustawieniach zaawansowanych w oknie Konfiguracja urządzenia wirtualnego możesz określić, który zrzut AVD ma być wczytywany podczas uruchamiania ŚR.
Aby uwzględnić to rozwinięcie funkcji migawki, dodaliśmy kategorię Zrzuty dysku w oknie Rozszerzone elementy sterujące. Ten nowy panel zawiera elementy sterujące do zapisywania i wczytywania zrzutów AVD, w tym elementy sterujące zapisu i wczytywania zrzutu szybkiego uruchamiania, które wcześniej znajdowały się w Okienko Ustawienia.
Możesz edytować nazwę i opis każdego zapisanego zrzutu.
Więcej informacji znajdziesz w sekcji Zrzuty dysku.
HAXM 7.2.0
Funkcja HAXM 7.2.0 jest teraz dostępna we wszystkich kanałach.
Ta aktualizacja zawiera poprawki błędów i ulepszoną obsługę dużej ilości pamięci RAM. Oprócz tego dzięki aktualizacji HAXM i emulatorowi 27.3 i nowszym zrzutom zrzuty ekranu wczytują do pamięci RAM na żądanie, zamiast wczytywać cały zrzut, gdy urządzenia wirtualnego. Ta zmiana powinna znacznie skrócić czas potrzebny na wczytać zrzut.
Więcej informacji znajdziesz w artykule Konfigurowanie przyspieszenia maszyn wirtualnych.
27.2.9 (maj 2018 r.)
Aktualizacja obejmuje kilka nowych funkcji i usprawnień istniejących funkcji, i poprawki błędów.
Nagrywanie ekranu
Możesz teraz nagrywać obraz i dźwięk przy użyciu emulatora Androida oraz zapisywać do formatu WebM lub animowanego pliku GIF.
Elementy sterujące nagrywaniem ekranu znajdziesz na karcie Nagrywanie ekranu w rozszerzeniu Okno kontroli.
Wskazówka: elementy sterujące nagrywaniem ekranu możesz też otworzyć przez naciskając Control + Shift + R (Command + Shift + R na Macu).
Aby rozpocząć nagrywanie ekranu, kliknij przycisk Rozpocznij nagrywanie w sekcji Ekran record (Rekord). Aby zakończyć nagrywanie, kliknij Zatrzymaj nagrywanie.
Elementy sterujące odtwarzaniem i zapisywaniem nagranych filmów znajdują się na dole Karta Nagrywanie ekranu. Aby zapisać film, wybierz WebM lub GIF w u dołu karty i kliknij Zapisz.
Możesz też nagrać i zapisać nagranie ekranu z emulatora za pomocą następujące polecenie w wierszu poleceń:
adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm
Zrzuty ekranu
Zrzuty ekranu możesz wykonać w wierszu poleceń, używając jednej z tych metod: polecenia:
screenrecord screenshot [destination-directory]
adb emu screenrecord screenshot [destination-directory]
Zrzuty ekranu są zapisywane w formacie PNG.
Kamera do wirtualnej sceny i ARCore
Tworzenie i testowanie aplikacji do rzeczywistości rozszerzonej (AR) za pomocą Usługa ARCore jest teraz jeszcze łatwiejsza dzięki nowa kamera wirtualnej sceny, która pozwala eksperymentować z obsługą AR w środowisku wirtualnym.
Informacje na temat korzystania z kamery scen wirtualnych w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida
Obrazy ze Sklepu Google Play na urządzeniu Pixel
Sklep Google Play obsługuje teraz obrazy urządzeń Pixel i Pixel 2. Ten wskazuje Menedżer AVD w Android Studio. wersji 3.2 i nowszych z logo Google Play w kolumnie Sklep Play. AVD z włączony Sklep Google Play ma w sekcji Rozszerzone elementy sterujące kartę Google Play. z wygodnym przyciskiem aktualizowania Usług Google Play na urządzenia.
Zrzuty danych
Możesz teraz wczytać zrzut szybkiego uruchamiania bez ponownego uruchamiania emulatora. Aby wczytać zrzut, otwórz Rozszerzone elementy sterujące do okna Ustawienia. i kliknij przycisk Wczytaj teraz.
Wprowadziliśmy wiele ulepszeń w ładowaniu i zapisywaniu zrzutów w aby poprawić wydajność wykorzystania zasobów i zminimalizować czas potrzebny na wymaga wykonania pewnych czynności. Jeśli zmiany są nadal zapisywane zbyt długo, zgłoś problem, podanie szczegółowych informacji o procesorze, pamięci RAM i ustawieniach programu antywirusowego/zapory sieciowej; działającego oprogramowania zabezpieczającego.
Renderowanie za pomocą Skia
Gdy używasz obrazów dla interfejsu API w wersji 27 lub nowszej, emulator może renderować interfejs Androida z platformą Skia, która renderuje się płynniej i wydajniej.
Obecnie korzystanie z platformy Skia wymaga jej jawnego włączenia.
Aby włączyć renderowanie w systemie Skia, użyj w powłoce adb tych poleceń:
su setprop debug.hwui.renderer skiagl stop start
Aparat
W systemie Windows emulator Androida używa teraz Media Foundation jako backendu kamery internetowej, który znacznie poprawia wydajność i liczbę klatek podczas nagrywania kamerą internetową (do 720p). 30 kl./s.
Na komputerach Mac można teraz używać kamery webcam0 i webcam1.
Różne
Opcja wiersza poleceń -phone-number-prefix
została zmieniona na
-phone-number [number]
, która umożliwia ustawienie pełnych
numeru telefonu.
Teraz możesz używać alfanumerycznych adresów SMS.
Poprawki
- Wersja emulatora Androida dla systemu Linux została skompilowana w nowoczesnym języku Clang. Łańcuch narzędzi C++. Ta zmiana rozwiązuje problem z brakiem uruchomienia emulatora z powodu błędów libGL i libstdc++.
- Naprawiliśmy kilka przyczyn awarii i zawieszania się.
- Aby uniknąć awarii i zawieszeń spowodowanych brakiem wystarczającej ilości wolnego miejsca, teraz przy uruchamianiu sprawdza, czy na dysku jest wystarczająca ilość wolnego miejsca i nie będzie chyba że są wolne co najmniej 2 GB wolnej pamięci.
- Rozwiązaliśmy problem, który uniemożliwiał renderowanie niektórych gier Unity.
- Rozwiązaliśmy problem z DNS, który powodował, że emulator nie mógł połączyć się z
- Rozwiązaliśmy problem, który powodował zmiany w pamięci wewnętrznej przydzielonej do AVD w oknie konfiguracji urządzenia wirtualnego.
- Rozwiązaliśmy problem z tworzeniem i nieprawidłowym zamykaniem wielu procesów ADB.
- Rozwiązaliśmy problem, który powodował, że przyciski obracania i inne elementy interfejsu nie odpowiada, chyba że zostało otwarte okno rozszerzonych elementów sterujących.
- Rozwiązaliśmy problem, który powodował, że kopiowanie i wklejanie z hosta nie działało, jeśli Okno rozszerzonych elementów sterujących zostało otwarte co najmniej raz.
- Prostokąt zmiany rozmiaru emulatora bez ramek został zaktualizowany, aby lepiej z motywem wizualnym emulatora.
- Telefon i SMS-y są teraz prawidłowo dezaktywowane w trybie samolotowym.
- Rozwiązaliśmy problem, który powodował, że SMS-y i funkcje komórkowe były wyłączone po podczas wczytywania zrzutu.
- Nie będziesz już otrzymywać fałszywych ostrzeżeń
“Unable to open... \pstore.bin. Permission denied.”
- Naprawiono błąd, który uniemożliwiał zmianę położenia urządzenia AVD na niektórych ekranach komputerów Mac.
- Rozwiązano problemy z migotaniem i pustymi ekranami na nowszych komputerach MacBook Pro. w przypadku aplikacji AVD ze skórkami telefonu Pixel 2 XL.
- Naprawiono problemy z pustymi ekranami podczas przełączania w tryb powiększenia, gdy aktywowany był emulator bezramkowy.
- Rozwiązaliśmy problem, który powodował przewinięcie zawartości skóry i emulatora urządzenia synchronizacji po powiększeniu.
Jeśli problem nadal występuje lub występują inne trudności, zgłoś problem.
27.1.12 (marzec 2018 r.)
Ta aktualizacja zawiera poprawki następujących problemów:
- Jakość dźwięku Bluetooth po uruchomieniu emulatora uległa pogorszeniu. (Problem 37095756)
- Lokalizacje wysłane do jednego emulatora zostały wysłane do wszystkich. (Problem 73450633)
- Lokalizacja GPS ustawiona w konsoli została zastąpiona wartościami ustawionymi za pomocą Rozszerzone elementy sterujące > Lokalizacja w graficznym interfejsie użytkownika. (Numer sprawy 73471760)
Jeśli problem nadal występuje lub występują inne trudności, zgłoś problem.
W ramach tej aktualizacji aktualny obraz systemu oraz wersja testowa Androida za pomocą emulatora Androida do uruchamiania aplikacji rzeczywistości rozszerzonej dzięki ARCore. Szczegółowe wymagania i instrukcje znajdziesz w materiałach na temat Uruchamianie aplikacji AR w emulatorze Androida
27.1.10 (luty 2018 r.)
Rozdzielczość zdjęć z aparatu
Teraz za pomocą podłączonej kamery internetowej można rejestrować klatki w rozdzielczości 720p.
Aby pracować z obrazami systemu na Androidzie 8.1 (poziom interfejsu API 27) lub nowszym, podłączona kamera internetowa musi mieć możliwość nagrywania klatek o rozdzielczości 720p.
Poprawki
- Rozwiązaliśmy problem, który powodował, że nagrywanie z kamery internetowej było czasem zniekształcone lub całkowicie zielonym.
- Rozwiązaliśmy problem, który umożliwiał wyświetlanie tego komunikatu nawet wtedy, nie wykryto zawieszania się: „emulator: ERROR: wykrył zawieszający się wątek 'Qt pętla zdarzeń”. Brak odpowiedzi przez 15 000 ms”.
Jeśli problem nadal występuje lub występują inne trudności, zgłoś problem.
27.1.7 (luty 2018 r.)
Okno emulatora bezramkowego:
Domyślnie emulatory z plikami skórki urządzenia są teraz wyświetlane bez wokół ramy okna. Aby wyświetlić otaczającą ramkę okna, włącz Pokaż ramkę okna wokół urządzenia w panelu Ustawienia Okno kontroli.
Ulepszenia funkcji szybkiego uruchamiania przyspieszające pracę ze zrzutami AVD:
- W dowolnym momencie możesz zapisać zrzut AVD za pomocą przycisku Zapisz teraz w w panelu Ustawienia w sekcji Ustawienia rozszerzone. .
- Emulator skraca czas, jaki zajmuje zapisanie zrzutu w wielu przypadków, zapisując tylko różnicę między obecnym stanem a stanem zapisany wcześniej zrzut.
Szczegóły znajdziesz w sekcji dotyczącej szybkiego uruchamiania dokumentacji.
Emulator został zaktualizowany, aby używał QEMU 2.9.
Oto niektóre ważne ulepszenia:
- Zoptymalizowane operacje wejścia-wyjścia i bardziej szczegółowe blokowanie wątków wejścia-wyjścia dla większej wydajności.
- Naprawiliśmy błędy od QEMU w wersji 2.8 (26.1.4).
- Nowa implementacja backendu HAXM.
Pełną listę zmian znajdziesz w historii zmian QEMU 2.9.
Implementacja Swiftshader zgodna ze standardem OpenGL ES 3.0:
Mechanizm renderowania Swiftshader emulatora jest teraz w pełni zgodny ze standardem OpenGL ES 3.0. Szczegółowe informacje o mechanizmie renderowania Swiftshader znajdziesz w menu Ustawienia > Zaawansowane Rozszerzone ustawienia.
Poprawki
- Rozwiązaliśmy problem, który powodował, że udostępnianie schowka nie działało przy opcji Włącz opcja udostępniania schowka została wyłączona i włączona.
- Usunięto problem z zawieszaniem się interfejsu renderowania Swiftshader. filmy AVD o niskiej rozdzielczości.
27.0.5 (styczeń 2018 r.)
ANGLE do renderowania w systemie Windows jest teraz domyślnie wyłączona.
Jeśli ANGLE działa lepiej, możesz włączyć ją ponownie za pomocą wiersza poleceń flaga
-gpu angle_indirect
. Możesz też otworzyć okno z rozszerzonymi ustawieniami i przejść wybierz Ustawienia > Advanced i wybierz ANGLE D3D11 dla ustawienie mechanizmu renderowania OpenGL ES.Naprawiono błąd polegający na tym, że klawisze Shift + B nie powodowały wpisywania wielkiego znaku B.
27.0.2 (grudzień 2017 r.)
Nowa funkcja szybkiego uruchamiania zapewnia szybsze czasy uruchamiania emulatora na podstawie instancji AVD.
Szybkie uruchamianie jest domyślnie włączone na wszystkich urządzeniach AVD. Chociaż za pierwszym razem po uruchomieniu AVD, musi wykonać „na zimno” (tak samo jak w przypadku włączania urządzenia), wszystkie kolejne uruchomienia są szybkie, a system jest przywracany do stanu przez zamknięcie emulatora (podobnie do wybudzania urządzenia).
Jeśli chcesz określić, kiedy emulator ma zapisywać zrzut, otwórz Rozszerzone okno ustawień emulatora i kliknij Ustawienia. Możesz tu wybrać jedno z następujących ustawień: dla opcji Zapisuj stan szybkiego uruchamiania przy zamykaniu:
- Tak: po zamknięciu emulatora zawsze zapisuj szybki zrzut rozruchowy. Jest to ustawienie domyślne.
- Nie: nigdy nie zapisuj szybkiego zrzutu rozruchowego. zawsze uruchamiać „na zimno”.
- Zapytaj: pytaj, czy po zamknięciu zapisać szybki zrzut rozruchowy za pomocą emulatora.
Twój wybór dotyczy tylko aktualnie otwartego AVD.
Więcej informacji znajdziesz w dokumentacji szybkiego uruchamiania.
Dodano obsługę OpenGL ES 3 na komputerach Mac (w przypadku obrazów systemu korzystających z poziomu API 24 i interfejsów API Google i interfejsu x86 ABI).
Aby zwiększyć stabilność aplikacji OpenGL ES 2 i nowszych, emulator używa teraz rdzeni OpenGL ES profilu, jeśli jest dostępny.
Nowe opcje renderowania za pomocą Swiftshader / ANGLE:
-gpu swiftshader_indirect
: szybszy, bardziej stabilny wariant Swiftshadera. która działa z szybkim rozruchem.-gpu angle_indirect
(tylko Windows): bardziej stabilna wersja ANGLE D3D która też działa z szybkim rozruchem.
Starsze opcje
-gpu swiftshader
i-gpu angle
zostały wycofane. W oknie rozszerzonych elementów sterujących komponent „SwiftShader” i „ANGLE” opcje dla ustawienia mechanizmu renderowania OpenGL ES w sekcji Ustawienia > Zaawansowane, teraz użyj*_indirect
wariantów.Naprawiono różne inne błędy.
26.1.4 (sierpień 2017 r.)
Jest to wersja drobna, zawierająca poprawki błędów i: – ulepszenia konfiguracji GPU:
- Włącz animację rozruchu w przypadku mechanizmu renderowania ANGLE
- Wyłącz GLES3 w mechanizmie renderowania ANGLE
26.1.3 (sierpień 2017 r.)
Jest to drobna wersja zawierająca poprawki błędów, ulepszenia wydajności zmian funkcji.
- Ta wersja jest obecnie wymagana do korzystania z najnowszych obrazów systemu Android 8.0.
Są zgodne ze standardem Treble,
z osobnymi partycjami
vendor.img
. - Dostępna jest nowa wersja HAXM 6.2.0 (sprawdź w Menedżerze SDK) i zawiera
następujące aktualizacje:
- Mniejsze wykorzystanie pamięci. Szczytowy zestaw roboczy pamięci przypięty przez HAXM to nie jest już równa ilości pamięci RAM urządzenia AVD; zamiast tego pamięć jest zapisywana w argumencie na żądanie. Powinno to zwiększyć niezawodność emulatora na komputerach z i mają mniejszą ilość pamięci RAM.
- Emulator z HAXM 6.2.0 może się teraz uruchamiać szybciej w systemie macOS, pomijając do długiej fazy inicjowania.
- Ulepszenia konfiguracji GPU
- Rozwiązaliśmy problemy z czarnym ekranem przy uruchamianiu podczas wykonywania działania po stronie gościa przez przełączenie się na renderowanie po stronie hosta za pomocą funkcji Swiftshader. Najnowsze wersje obrazów systemu dla poziomów API 19–25 za pomocą Interfejsy API Google powinny mieć działające renderowanie po stronie gościa.
- Rozwiązaliśmy problem, który powodował, że emulator był przełączany na mechanizm renderowania programowego.
ze względu na obecność starszych układów GPU firmy Intel, ale emulator był
na dyskretnym GPU. Które procesory graficzne zostaną przełączone na korzystanie z ANGLE
lub Swiftshader jest określany w ten sposób:
- Starsze procesory Intel iGPU mają problemy ze sterownikami w trybie OpenGL i ANGLE D3D kierowcy. Użytkownicy z grafiką Intel HD Graphics 3xxx i starszymi wersjami Swiftshader.
- Niektórzy użytkownicy zgłaszali niemożność korzystania z obrazów poziomu 25 interfejsu API, ponieważ o błędzie, w którym „Pixel Launcher ciągle się zatrzymuje”. Wygląda na to, w niektórych modelach Intel HD 4xxx. Zostaną więc przeniesione na automatycznie używać ANGLE.
- Aby uzyskać najlepsze rezultaty przy emulacji GPU, zalecamy używanie dyskretny procesor graficzny NVIDIA lub AMD bądź nowszy procesor Intel (Iris, HD 5xxx, HD 5xx/6xx).
- Rozwiązaliśmy problem, który powodował, że nie można było uruchomić emulatora (emulacja OpenGL
nie udało się zainicjować), jeśli narzędzie AVD zostało skonfigurowane za pomocą poleceń
hw.gpu.mode=host
i Emulator został uruchomiony w kliencie na komputerze zdalnym. - Doprecyzowano „Poziom interfejsu OpenGL ES API (wymaga ponownego uruchomienia)” ustawienia; dodał(a) opcja przejścia z trybu OpenGL ES 3 do OpenGL ES 2 w przypadku problemów lub testów na niższych poziomach interfejsu OpenGL ES API.
- Mechanizm renderowania Mesa został wycofany.
hw.gpu.mode=mesa
będzie teraz automatycznie przełączyło się na używanie Swiftshader na hoście.
- Ulepszenia w systemie macOS:
- Emulator jest teraz w pełni zgodny z systemem macOS 10.13 High Sierra za pomocą Hypervisor.Framework lub HAXM 6.2.0.
- Funkcja Hypervisor.framework jest teraz domyślnie włączona w systemie macOS w wersji 32-bitowej x86.
obrazów zwiększających wydajność i zgodność z macOS. Jeśli zauważysz
jeśli występują jakieś problemy, zgłoś błąd i dołącz
HVF = off
do pliku~/.android/advancedFeatures.ini
(utwórz go, jeśli nie istnieje). - Rozwiązano problemy z brakiem połączenia z internetem / brakiem podłączenia debugera podczas używania Hypervisor.framework.
- Aby zapewnić większą zgodność i wydajność nagrywania filmów z kamery internetowej, Nagrywanie z użyciem aparatu w QTKit zostało zastąpione buforowanym na podstawie AVFoundation.
- Dodaliśmy obsługę sieci Wi-Fi w niektórych obrazach systemu (obecnie tylko na poziomie API 25).
punkt dostępu o nazwie „AndroidWifi”. jest dostępny, a Android automatycznie
z nim związane. Obsługę Wi-Fi można wyłączyć, uruchamiając emulator z
parametr wiersza poleceń
-feature -Wifi
. - Niektórzy użytkownicy martwią się, że obrazy systemu o stałym rozmiarze w Sklepie Play miała niewystarczającą ilość miejsca na dane. W związku z tym zwiększyliśmy rozmiar do 2 GB o domyślnie (od 800 MB).
- Dodano skrót klawiszowy (Ctrl + Shift + U), który otwiera stronę interfejsu zgłaszania błędów. bezpośrednio na stronie ustawień.
- Rozwiązaliśmy problem, który powodował, że starszy procesor z procesorem Intel x86 EPT, ale bez UG, był , jeśli skonfigurowano więcej niż 1 rdzeń, emulator nie uruchomi się.
- Rozwiązaliśmy problem, który powodował nieprawidłowe wykrywanie funkcji HyperV, jeśli emulator był działa w hipernadzorcy Xen.
- Rozwiązaliśmy problem, który powodował awarię przy uruchamianiu emulatora w niektórych systemach Linux konfiguracji.
26.1.2 (lipiec 2017 r.)
Ta wersja zawiera nowe funkcje i ulepszenia związane z wydajnością.
Dodaliśmy możliwość zdefiniowania niestandardowej konfiguracji serwera proxy HTTP w rozszerzone elementy sterujące (kliknij Więcej
, potem kliknij Ustawienia, Serwer proxy). Domyślnie emulator używa serwera proxy HTTP Android Studio ustawień, ale ten ekran umożliwia określenie ręcznej konfiguracji serwera proxy.
Dodano obsługę VNC dla GPU w trybie gościa, co umożliwia zdalne wyświetlanie emulatora pod kontrolą. Możesz na przykład uruchomić emulator i pozwolić VNC nasłuchiwać port 5901 w następujący sposób:
- Wykonaj:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
Otwórz przeglądarkę VNC (taką jak w przypadku ścisłego filtrowania), aby połączyć się z portem 5901.
Aby można było korzystać z wbudowanego klienta udostępniania ekranu na Macu, hasło VNC jest wymagane przy uruchamianiu emulatora. Aby ustawić hasło, użyj tego polecenie:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
Następnie wpisz w konsoli
change vnc password
i hasła.
Android O nie jest obecnie obsługiwany w trybie VNC.
- Wykonaj:
Dodaliśmy przycisk Zgłoś błąd na ekranie pomocy rozszerzonych elementów sterujących. (Kliknij Więcej
, a następnie kliknij Pomoc i Pomoc do emulatora). Kliknij Zgłoś błąd. otwiera okno ze szczegółami raportu o błędzie, takimi jak Zrzut ekranu, informacje o konfiguracji AVD i dziennik raportów o błędach. Następnie możesz zapisać raport dla siebie lub zgłoś problemy z emulatorem.
Do emulatora i panelu czujników wirtualnych dodano żyroskop. Wymaga to obraz systemu z obsługą żyroskopu (obecnie na poziomie API 24) i 25).
Do listy DNS Qemu w systemie Windows dodano preferowany przez hosta DNS w przypadku wielu wirtualnych interfejsy sieciowe na hoście wprowadzają wiele adresów DNS, które są nie działa w przypadku emulatora.
Dodano eksperymentalną obsługę macOS Hypervisor.Framework do 32-bitowych obrazów x86 w systemie macOS 10.10 lub nowszym za pomocą flag serwera, które powinny skrócić czas uruchamiania skuteczność reklam.
- Jeśli napotkasz problemy, dodaj wiersz
HVF = off
w~/.android/advancedFeatures.ini
- Jeśli napotkasz problemy, dodaj wiersz
Interfejs OpenGL ES 3.x jest teraz domyślnie włączony dla obrazów systemu i procesorów graficznych hosta, które obsługują standard OpenGL ES 3. Obecnie tylko Android O (poziom interfejsu API 26) Hosty z systemem Windows/Linux obsługują standard OpenGL ES 3.
- Jeśli występują problemy z OpenGL ES 3, dodaj wiersz
GLESDynamicVersion = off
w~/.android/advancedFeatures.ini
.
- Jeśli występują problemy z OpenGL ES 3, dodaj wiersz
Emulator używa teraz elementów FBO poza ekranem do wszystkich renderowania oprócz końcowych publikowanie obrazów w sieci reklamowej, co powinno pomóc w przypadku problemów ze spójnością kolorów z różnych platform.
Po zebraniu danych na temat problemów z nagłym spowolnieniem działania emulatora stwierdziliśmy, że problem może być związany z interakcjami między starszymi procesorami Intel sterowniki OpenGL i aktualizacje systemu Windows. Użytkownicy z procesorami Intel HD 4000, 3000 2000 (i powiązane z nimi GPU) ma teraz domyślnie ustawione renderowanie D3D mechanizmu renderowania (ANGLE) lub Swiftshader (program renderowania).
26.0.0 (marzec 2017 r.)
Ta wersja jest zgodna z interfejsem API poziomu 26. Zawiera też wiele funkcji oraz ulepszeniu działania i usprawnieniu błędów.
Mniejsza wersja 26.0.3 (maj 2017 r.)
- Dodaje flagi funkcji, które można aktualizować online, aby szybko rozwiązywać problemy jest wynikiem problematycznych konfiguracji sprzętowych. Dzięki temu Google może: wdrożyć poprawki i funkcje zależne od konfiguracji użytkownika, aktualizacji flag po stronie serwera. Jeśli zauważysz problemy na konkretnym sprzęcie, zgłoś błąd, abyśmy mogli zbadania problemu.
- Nowa obsługa funkcji rotary dane wejściowe dla systemu Android Wear API na poziomie 25 obrazów. Aby emulować pokrętło na urządzeniu Wear, kliknij Karta Rotary zaczniesz w rozszerzonym oknie.
- Okno Zgłaszanie awarii można teraz zmienić rozmiar i nie jest ono już resetowane Kiedy wysyłać raporty o awariach na Zapytaj bez wprowadzania danych.
- W przypadku 32-bitowego emulatora maksymalny rozmiar pamięci RAM AVD musi być mniejszy maksymalnie 512 MB, aby emulator nie wyczerpał się w wirtualnej przestrzeni adresowej o wielkości 2 GB.
- Dodaje obsługę ścieżek bezwzględnych w obrazach emulatora.
- Dodaje w rozszerzonym oknie nową kartę ze Sklepu Google Play, która wyświetla wersję Usług Google Play i przycisk sprawdzania dostępności aktualizacji Usługi Google Play.
- Dodaje menu pozwalające wybrać mechanizm renderowania OpenGL na stronie Ustawienia emulatora. Jeśli masz problemy ze sterownikiem OpenGL w systemie Windows użyj opcji ANGLE (D3D11) lub ANGLE (D3D9) (wymaga zrestartuj). Jeśli problemy dotyczą sterownika OpenGL na na komputerze innym niż Windows, spróbuj użyć mechanizmu renderowania Swiftshader (wymaga ponowne uruchomienie).
- Naprawia rzadką awarię przy zamykaniu, gdy emulator otrzymuje oba
Polecenia
exit
iminimize
. - Rozwiązaliśmy problem ze skalowaniem podczas zmiany wyświetlaczy na komputerze Mac. (Problem 268296).
- Rozwiązaliśmy problem, który powodował, że emulator pobiera i zatrzymuje 300% CPU po wznowieniu komputera hosta ze stanu uśpienia lub gdy emulator został wyłączony. działa bardzo długo.
- Naprawia błąd występujący podczas wyłączania emulatora.
Aktualizacje z HAXM w wersji 6.1.1 (marzec 2017 r.)
Uwaga: funkcja HAXM w wersji 6.1.1 jest dostępna na komputerach Mac. użytkowników za pomocą pakietu SDK 30 marca. Wkrótce udostępnimy tę funkcję dla użytkowników systemu Windows.
Emulator Androida w wersji 26.0.0 obsługuje funkcję HAXM w wersji 6.1.1, która zawiera następujące aktualizacje:
- Włącza emulację jednostek monitorowania wydajności (PMU). (Numer 223377)
- Naprawia współistnienie z VirtualBox i Dockerem na komputerach Mac. (Numer 197915)
- Poprawia komunikat o błędzie instalacji wyświetlany, gdy instalator nie wykrywa Intel VT-x w systemie Windows. Zwykle dzieje się tak, ponieważ włączona jest funkcja Hyper-V.
- Dodano obsługę przyspieszania emulatora Androida w modelu Hyper-V maszyna wirtualna z systemem Windows. Ta aktualizacja wymaga, aby instancja Hyper-V hosta ( który zarządza maszyną wirtualną/gościem z systemem Windows), korzysta z najnowszej wersji Hyper-V. z włączoną zagnieżdżoną wirtualizacją. Funkcja Hyper-V musi być wyłączona w instancję Hyper-V gościa (maszynę wirtualną z systemem Windows).
Zależności
- Android SDK Platform- Tools w wersji 25.0.4 lub nowszej.
- Narzędzia Android SDK w wersji 26.0.0 lub nowszej.
Nowe funkcje i poprawki błędów
- Zgodny z interfejsem API poziomu 26.
- Pełna zgodność z GLES 2.0. Biorąc pod uwagę procesor graficzny hosta, który ma zgodny komputer stacjonarny
sterowniki OpenGL: emulator przekazuje teraz 100% kodu Android CTS dEQP-GLES2.
mustpass
. Ta funkcja została opublikowana w przypadku obrazów w rozmiarze 24 x 86 przy użyciu interfejsu API (wersja 11). i nowszych), a wkrótce zostanie dodana do wszystkich obrazów systemu. - Lepsze odtwarzanie filmów. Emulator przechowuje teraz wszystkie filmy buforuje kolory w pamięci współdzielonej hosta/gościa i wykonuje niezbędne Konwersja YUV na RGB w GPU. Rozdzielczość 1080p30 powinna być w zasięgu dla większości systemów. Ta funkcja została udostępniona w przypadku obrazów w formacie API 24 x 86. (wersja 11 i nowsze), a wkrótce zostanie ona dodana do wszystkich obrazów systemu.
- Emulator prawidłowo wyrejestruje się teraz z listy
adb devices
przy wyjściu i zamyka otwarte porty TCP na komputerach z systemem Linux. - połączenia adb są teraz bardziej niezawodne. Wykryto działający emulator który działa szybciej i nie przechodzi już w stan „offline” ani „nieautoryzowany”.
25.3.0 (marzec 2017 r.)
Od tej wersji Emulator Androida będzie dostępny niezależnie od przy użyciu narzędzi SDK. Ta wersja zawiera różne wersje ulepszenia, nowe funkcje i poprawki błędów.
Mniejsza wersja 25.3.1 (marzec 2017 r.)
- Rozwiązaliśmy problem, który powodował awarię występującą w niektórych konfiguracjach GPU przez domyślne wyłączenie GLAsyncznanego.
Ta funkcja została dodana w wersji 25.3.0, aby poprawić czas renderowania klatek i liczbę klatek na sekundę w grach
i wideo, ale powoduje awarię emulatora w niektórych nieznanych konfiguracjach maszyn. Dostępne opcje
ręcznie, otwierając
android_sdk/emulator/lib/advancedFeatures.ini
plik i ustawienieGLAsyncSwap = on
.
Zależności
- Narzędzia platformy Android SDK w wersji 24 lub nowszej.
- Android SDK Tools w wersji 25.3.0
Nowe funkcje i poprawki błędów
- Zaktualizowano silnik emulacji do QEMU 2.7, m.in. poprawki błędów, ulepszona wydajność i nowe funkcje.
- Nowa obsługa protokołu IPv6.
- Emulator używa teraz SwiftShader jako czystego mechanizmu renderowania z serwera Google.
- Ulepszenia wydajności aplikacji Android Pipe: główna aplikacja Android Pipe
kanał komunikacji między emulatorem a systemem operacyjnym Android
rząd wielkości szybciej, ma mniejsze opóźnienie i oferuje lepszy
wydajność wielowątkową. Dzięki temu
ulepszenia emulatora, w tym:
- Zwiększona szybkość wczytywania/wyciągania ADB.
- Lepsza obsługa akceleracji 3D.
- Zwiększona ogólna responsywność emulatora.
- Lepsza wydajność grafiki.
- Emulator używa teraz buforów po stronie GPU (glBindBuffers / glBufferData), gdy gość o to poprosi, zmniejszając obciążenie procesora. w niektórych aplikacjach.
- Ulepszona obsługa dźwięku
- Szybsza operacja wejścia/wyjścia dysku: emulator używa teraz osobnych wątków, aby wysyłanie operacji wejścia-wyjścia dysku, co przekłada się na mniejsze opóźnienia i wyższą przepustowość. (ok. 1,5-krotna szybkość sekwencyjnego wejścia/wyjścia, ok. 5-krotna szybkość wejścia/wyjścia losowego dostępu). To także zmniejsza liczbę opróżnień dysku, co skutkuje znacznie mniejszą i obciążeniem urządzenia fizycznego.
- Emulator używa teraz rozproszonych plików do uruchamiania dysku w systemie Windows maszynach, co przyspieszy zarówno pierwsze uruchomienie, jak i wyczyszczenie danych. buty. Kiedy podczas tworzenia lub resetowania AVD, emulator zapisuje teraz 100–200 MB na dysk zamiast 2 GB lub więcej.
- Różne ulepszenia GUI:
- Emulator używa teraz wersji Qt 5.7.0, która zawiera poprawki błędów poprawy wydajności.
- Inicjowanie interfejsu nie próbuje już wczytać całego emulatora pliki wykonywalne jako wtyczki Qt, dzięki czemu są znacznie krótsze, zwłaszcza na dyskach HDD.
- Interakcje z interfejsem są teraz szybsze i płynniejsze, w tym: obrót, zmiana rozmiaru okien i ładowanie okien rozszerzonych elementów sterujących i zamykając.