Informacje o wersji emulatora

Emulator Androida jest częścią Android Studio.

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

Aby mieć pewność, że masz najnowszą wersję, sprawdź, czy w Menedżerze pakietu SDK są dostępne aktualizacje.

Aby pobrać poprzednie wersje emulatora Androida, zapoznaj się z archiwum pobrań emulatora.

Informacje o wersjach emulatora starszych niż 25.3.0 znajdziesz w informacjach o wersji pakietu Android SDK Tools.

Informacje o znanych problemach i ich rozwiązywaniu znajdziesz w artykule Rozwiązywanie problemów z emulatorem.

35.2.10 (1 października 2024 r.)

  • Dodano nowe urządzenia AVD Pixel, w tym Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL i Pixel 9 Pro Fold
  • Dodano nowy obraz systemu tabletu dla aplikacji Vanilla Ice Cream (API 35)

35.1.20 (29 sierpnia 2024 r.)

  • Dodano AVD dla Pixela 8a
  • Poprawki błędów dotyczących składanych urządzeń.
  • Aktualizacja Qt i poprawki dotyczące awarii i zawieszeń związanych z Qt
  • [Bug Fix] Fix to crashes and freeze on Windows with applications using Vulkan

34.2.16 (9 lipca 2024 r.)

  • [Bug Fix] UI freezes that occur on Pixel Fold during fold/unfold
  • [Poprawka] Nieprawidłowy wyświetlany interfejs API 35 na Macu M1 w wersji Androida Vanilla Ice Cream w wersji zapoznawczej zamiast API 35.
  • [Poprawka błędu] Problem nr 296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE zwraca wartość true w emulatorze tabletu Pixel C

34.2.15 (31 maja 2024 r.)

  • różne poprawki błędów związanych z trybem swangla i czyszczeniem reklamodawców.

34.2.14 (20 maja 2024 r.)

Testowano z Android Studio Jellyfish Stable Patch 1.

  • [Bug Fix] Snapshot sometimes hangs on embedded emulator
  • [Bug Fix] Buttons ‘No’ and ‘Cancel’ are not working properly on snapshot
  • [Bug Fix] Directional pad buttons are not working
  • [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 za pomocą wiersza poleceń z opcją -gpu swangle_indirect może nadal powodować ten błąd w tej wersji. Jeśli nadal chcesz uruchomić emulator za pomocą wiersza poleceń w systemie Windows z renderowaniem grafiki za pomocą oprogramowania, użyj tej wersji: -gpu swiftshader_indirect
  • [Bug Fix] Skrót do lokalizacji na klawiaturze wczytuje nieużyteczną mapę
  • [Bug Fix] While setting location, the "save route" dialog is missing

34.2.13 (30 kwietnia 2024 r.)

Testowano z Android Studio Jellyfish Stable.

  • Aktualizacja do Qt 6.5.3
  • Zgodność z aktualizacjami interfejsu Mapy Google API używanymi w funkcjach lokalizacji w rozszerzonych kontrolkach emulatora, które zostaną wprowadzone pod koniec maja.
  • Poprawki poważnych błędów
  • Różne poprawki na urządzeniach Pixel AVD
  • Zaktualizuj bibliotekę graficzną używaną do renderowania programowego.
  • [Bug Fix]Issue 225541819 Uruchamianie Chrome powoduje awarię emulatora na x86_64
  • [Poprawka błędu]Problem 314614435 – przełącznik -http-proxy jest nieprawidłowo przeanalizowany

34.1.20 (1 kwietnia 2024 r.)

Testowano z Android Studio Iguana Stable.

  • [Bug Fix] Issue #314614435: Fix issue where -http-proxy switch is parsed incorrectly

34.1.19 (7 marca 2024 r.)

Testowano z Android Studio Iguana Stable.

  • [Poprawka błędu] Problem #312677259: rozwiązaliśmy problem z zawieszaniem się ekranu w wbudowanym emulatorze po zmianie rozmiaru okna.

34.1.18 (29 lutego 2024 r.)

Testowano z Android Studio Iguana Stable.

  • Do emulatora dodano urządzenia, w tym:
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • Test integracji gRPC: punkty końcowe gRPC są teraz dostępne dla testów z instrumentacją uruchamianych w emulatorze, co umożliwia testowanie realistycznych scenariuszy. Ta funkcja umożliwia deweloperom bezpieczne nawiązywanie interakcji z punktem końcowym gRPC hostowanym przez emulator Androida z poziomu testów instrumentacji Androida.
  • Poprawki różnych błędów

33.1.24 (28 grudnia 2023 r.)

Testowano w Android Studio Hedgehog Stable i Iguana Beta 1.

  • Rozwiązanie problemu z kamerą internetową w emulatorze, który uniemożliwiał nagrywanie ekranu w formacie mp4.
  • Rozwiązanie problemu z awariami emulatora na urządzeniu Pixel Fold AVD podczas rozłożonego urządzenia podczas nagrywania ekranu.
  • Rozwiązanie problemu polegającego na tym, że Pixel Fold wyświetla inny interfejs z odłączoną klawiaturą i nie można go używać (rozwiązanie dotyczy systemu Windows, Mac Intel i Linux)
  • 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.)

Testowano w Android Studio Giraffe Patch 4 i Hedgehog Stable.

  • Nowa implementacja składanego urządzenia, która lepiej emuluje urządzenie Pixel Fold i działa z najnowszym interfejsem API 34
  • Uaktualnienie backendu grafiki: wprowadziliśmy protokół gfxstream dla backendu grafiki. To ulepszenie zwiększa ogólną wydajność i stabilność grafiki. Oprócz tego wprowadziliśmy obsługę interfejsu Vulkan 1.3, począwszy od obrazu systemu w interfejsie API 34.
  • Prośba o dodanie funkcji: opcja wyłączenia gestu powiększania przez ściśnięcie palców lub przypisania mu skrótu klawiszowego
  • [Bug Fix] Issue #302562962 Poprawka dla kamery internetowej emulatora w systemie MacOS Sonoma
  • [Poprawka błędu] Problem #293503871 Rozwiązanie problemu polegającego na tym, że ustawienie „Mikrofon” nie jest zapisywane po ponownym uruchomieniu emulatora
  • [Poprawka błędu] Problem #270386314 Rozwiązanie problemu z animacją, w którym pasek boczny pozostaje otwarty po zminimalizowaniu ekranu AVD
  • [Poprawka błędu] Problem #154896775 Poprawiono narzędzie do przesyłania błędów

32.1.15 (29 sierpnia 2023 r.)

Przetestowano w Android Studio Giraffe Patch 1 i Hedgehog Canary 16.

  • Wymagania dotyczące sprzętu GAS w przypadku czujników w emulatorze AAE
  • [Poprawka] Problem #266201208 SMS w języku hebrajskim nie jest wysyłany w interfejsie API 33
  • [Bug Fix] Issue #257097404 Emulator doesn't show correct time after the host is waken up on API 29 and 30
  • [Bug Fix] Issue #228201899 Can't see google maps inside Android Emulator Extended Controls

32.1.14 (27 czerwca 2023 r.)

Testy zostały przetestowane w aplikacjach Android Studio Hedgehog Canary 8, Giraffe Beta 5 i Flamingo Stable.

  • Popraw orientację i zniekształcenia kamery emulatora.
  • [Bug Fix] Issue #257097404 "Emulator doesn't show correct time after the host is waken up". Ten błąd można odtworzyć w interfejsach API 29 i API 30.
  • [Bug Fix] Issue #243456582 "Android releases after API 30 might not start correctly in emulator on Mac M1 machines"

32.1.13 (22 maja 2023 r.)

Testy zostały przetestowane w środowiskach Android Studio Hedgehog Canary 2, Giraffe Beta 1 i flamingo Stable.

  • Dodano obsługę AVD dla Pixel Fold i Pixel Tablet.
  • Poprawiono problem z awarią gLinux.
  • [Poprawka błędu] Problem nr 215231636 „Emulator z interfejsem API powyżej 30 nie działa na procesorze Intel 12 generacji”.
  • [Bug Fix] Issue #275397905 Wysoki poziom zawieszania się emulatora Androida M1 podczas wielokrotnego przenoszenia kursora do środka i poza emulator.
  • Znany problem dotyczący wersji AVD: numer 281725854. Więcej informacji znajdziesz w artykule Rozwiązywanie problemów z emulatorem.

32.1.12 (21 marca 2023 r.)

Testowano w Android Studio Giraffe Canary 10, Flamingo RC i Electric Eel Patch 2.

  • [Bug Fix] Issue #267647323 Network doesn't work on Emulator started from Android Studio
  • [Poprawka błędu] Problem nr 268498686 Ekran emulatora migocze.
  • [Poprawka błędu] Problem #270034824: wydajność emulatora pogarsza się po aktualizacji do wersji 33.1.1
  • [Bug Fix] Problem #225541819 Uruchamianie Chrome powoduje awarię emulatora na platformie x86_64
  • [Naprawiono błąd] Problem nr 257097404 Emulator nie pokazuje prawidłowej godziny po wybudzeniu hosta
  • Dodawanie raportów o awariach na urządzeniach Apple M1

32.1.11 (8 lutego 2023 r.)

Testowano w Android Studio Giraffe Canary 2, Flamingo Beta 1 i Electric Eel Patch 1.

  • Optymalizacja szybkości sieci
  • Obsługa myszy w wbudowanym emulatorze
  • Ulepszenia dotyczące Virtio-snd
  • Wyłączanie używania symbolicznych linków podczas rozpakowywania emulatora Androida podczas instalacji
  • Naprawianie awarii w emulator-check

31.3.14 (13 grudnia 2022 r.)

Testowano z Android Studio Dolphin, Electric Eel RC1 i Flamingo Canary 9.

  • [Naprawiono błąd] Naprawiono problemy z awariami AVD występujące podczas logowania się w Sklepie Play.

31.3.13 (27 października 2022 r.)

Testowano z Android Studio Dolphin, Electric Eel Beta 2 i Flamingo Canary 5.

31.3.12 (10 października 2022 r.)

Przetestowano w programie Android Studio Dolphin i Electric Eel Beta 1.

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

  • [Rozwiązanie problemu] Problem nr 247843000: błąd obsługi ścieżki względnej AVD
  • Zwiększenie rozmiaru dysku w przypadku interfejsu API w wersji 24 lub nowszej

31.3.11 (23 września 2022 r.)

Testowano z Android Studio Dolphin i Electric Eel Canary 10.

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

  • [Poprawka błędu] Emulator AVD ulega awarii w oknie rozszerzonych ustawień
  • [Poprawka błędu] Problem #183139207: problemy z dźwiękiem związane z aktywowaniem mikrofonu przez emulator
  • [Poprawka błędu] Problem #229764024: błąd przylegającego dotyku w AVD, który powoduje problemy z zachowaniem interfejsu
  • [Bug Fix] Błąd podczas uruchamiania AVD API 33 na Macu M1
  • [Bug Fix] Problem 243053479: po aktualizacji emulatora prędkość sieci jest niska
  • [Bug Fix] Problem #244617627: niedziałająca lokalizacja Map w systemach Windows i Linux
  • [Poprawka] Problem 232971796: niedziałający przycisk „Zadzwoń na urządzenie” na stronie Rozszerzone sterowanie > Telefon
  • Aktualizacja emulatora Androida do wersji minigbm
  • Przenoszenie skryptów kompilacji do Pythona 3

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 przy tej najnowszej stabilnej wersji wystąpią jakiekolwiek problemy lub awarie, zgłoś błąd i rozważ pobranie wcześniej działającej wersji z archiwów pobierania emulatora.

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

  • Lepsza obsługa ścieżek Unicode w systemie Windows
  • Ulepszona obsługa zamykania emulatora, dzięki której można uruchomić ponownie ten sam AVD.
  • Zaktualizowany projekt składanego AVD i ustawienia domyślne
  • Zaktualizowane przyciski emulatora Wear
  • Ulepszenia strumieniowego przesyłania dźwięku gRPC
  • Dodano polecenie konsoli emulatora umożliwiające zmianę rozmiaru
  • Poprawka Chrome dla interfejsu API 31
  • [Bug Fix] Nie udało się uwierzytelnić konta Google w wersji GmsCore 21.42.18

31.2.10 (20 kwietnia 2022 r.)

Testowano w Android Studio Dolphin Canary 8 i Chipmunk RC 1.

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

  • Dodaj narzędzie do wczytywania funkcji Vulkan z użyciem alternatywnych rozwiązań
  • [Bug Fix] Popraw błąd kompilacji gcc8

31.2.9 (23 marca 2022 r.)

Przetestowana w Android Studio Dolphin Canary 7.

Ta aktualizacja zawiera następującą poprawkę:

  • [Bug Fix] Ignorowanie nacisku pamięci podczas zapisywania zrzutu na M1

31.2.8 (7 lutego 2022 r.)

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

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

  • [Bug Fix] Nie można się zalogować w aplikacjach
  • [Naprawianie błędu] Problem nr 215368358: „ponowne uruchomienie adb” na platformie Intel powoduje awarię avd z komunikatem „żądanie wyłączenia vcpu”

31.2.7 (1 lutego 2022 r.)

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

Ta aktualizacja zawiera następującą poprawkę:

  • [Poprawka błędu] Błąd zawieszania się emulatora na komputerach M1.

31.2.6 (20 stycznia 2022 r.)

Testowano w Android Studio Arctic Fox, Bumblebee Beta 4 i Chipmunk Canary 6.

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

  • Dodano przyciski Wear do emulatora Wear OS.
  • Umożliwiono edytowanie wszystkich właściwości pojazdu na karcie VHAL.
  • [Naprawiono błąd] Nie udało się uwierzytelnić konta Google w GmsCore w wersji 21.42.18.
  • [Bug Fix] Netshaper nie działał prawidłowo z VirtioWifi.
  • [Bug Fix] Event mouse console command didn't work.
  • Dodano sprawdzanie KVM w przypadku tworzenia lokalnego AVD.

31.1.3 (18 stycznia 2022 r.)

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

  • Włączone porty konsoli dla Fuchsia.
  • Podczas zmiany rozmiaru okna na wielu wyświetlaczach orientacja jest ignorowana.
  • Wi-Fi: dodano obsługę filtrowania pakietów unicast na podstawie adresu MAC MAT.
  • Wi-Fi: usunięto błąd występujący podczas korzystania z maszyny wirtualnej.

30.9.5 (15 grudnia 2021 r.)

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

  • Dodano możliwość łatwego dostosowania rozmiaru okna do rozmiaru okna na komputerze lub tablecie.
  • Dodano obsługę wielodotyku na zgodnych urządzeniach hosta.
  • VirtioWifi: dodano obsługę sieci 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ł standardowe czujniki Androida.
  • Podłącz emulator do urządzeń peryferyjnych i urządzeń za pomocą USB z przekazaniem przez USB.

30.4.5 (23 lutego 2021 r.)

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

  • macOS: rozwiązano problemy z zniekształceniem sygnału wejściowego.
  • Dodano obsługę virtio-vsock w przestrzeni użytkownika.
  • Przyszłe obrazy systemów będą używać virtio-console do logowania i komunikacji z jądrem.
  • przyspieszyć renderowanie Vulkana;
  • Dodano obsługę debugowania zrzutów w przypadku niepowodzenia testu.
  • virtio-gpu: zaktualizowane definicje, aby obsługiwać najnowsze wyliczenia zasobów blob.
  • Dodaliśmy obsługę zrzutów dla przesyłania typu grafiki „asg”.
  • macOS: dodano obsługę kompilowania z użyciem pakietu SDK macOS w wersji 11.1 lub nowszej.
  • KVMclock jest domyślnie włączony w nowszych obrazach systemu.
  • Dodano obsługę czujnika tętna w emulatorach Wear.
  • Usunięto backend Vulkan dotyczący dostępności.
  • Dodaliśmy obsługę większej liczby funkcji w symulatorze modemu.

30.0.26 (16 sierpnia 2020 r.)

Ta aktualizacja obejmuje kilka nowych funkcji i usprawnień istniejących funkcji oraz poprawki błędów.

obsługa składanych urządzeń z wirtualnym czujnikiem zawiasów i widokiem 3D,

  • Dodano obsługę czujników zawiasów w przypadku urządzeń składanych. Wymaga to przyszłego obrazu systemu Android 11 i konfiguracji AVD. Parametry zawiasu i widoku składanego 3D są teraz zintegrowane z istniejącymi składanymi gotowymi ustawieniami. Poniżej znajdziesz plik config.ini, który możesz użyć na przykład w przypadku składanego AVD w wersji 7.3:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • Urządzenia składane mają teraz także parametr podtypu. Właściwość hw.sensor.hinge.sub_type = hinge/fold jest już dostępna.config.ini Więcej informacji znajdziesz w poście na blogu Tworzenie aplikacji na Androida 11 za pomocą emulatora Androida.

  • Czujnik zawiasów jest teraz domyślnie włączony.

  • Jeśli urządzenie składane jest skonfigurowane, emulator wysyła teraz do użytkownika gościa aktualizacje czujników kąta zawiasów i zmiany postawy. Istniejące składane urządzenia będą teraz aktualizować kąt i pozycję czujnika zawiasu po naciśnięciu przycisków składania lub rozkładania na pasku narzędzi.

Emulator hostów ARM64

  • Kod źródłowy emulatora Linuxa obsługuje teraz kompilację krzyżową z systemu x86_64 na system arm64, co umożliwia uruchamianie obrazów systemów arm64 za pomocą wirtualizacji KVM. Obecnie obsługiwana jest tylko biblioteka -gpu swiftshader_indirect (renderowanie hosta Swiftshader arm64), ale można też użyć zgodnego zestawu bibliotek hosta GPU libEGL/libGLESv2, zastępując nimi bibliotekę lib64/gles_swiftshader i ponownie uruchamiając aplikację z użyciem biblioteki -gpu swiftshader_indirect. Mogą też nie działać migawki (do linii poleceń dodaj -no-snapshot). 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ących zasobów spójnych blobów hosta virtio-gpu.
  • Ze względu na sposób działania renderowania za pomocą emulatora teraz przetwarzamy virtio-gpu virtqueue w wątku vcpu (bo renderowanie i tak jest odrzucane w innych wątkach). Renderowanie virtio-gpu zostanie włączone w przyszłej wersji obrazu systemu i emulatora.
  • W przyszłym obrazie systemu emulator będzie mógł obsługiwać wszystkie elementy graficzne za pomocą pakietu sterownika graficznego virtio.

Inne nowe funkcje i ulepszenia

  • Przekazywanie USB jest teraz dostępne w systemie Windows przy użyciu -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>. (powinno to działać również w Linuxie i macOS)
  • Zaktualizowaliśmy biblioteki WebRTC do wersji M83.
  • Emulator obsługuje teraz strumieniowe przesyłanie dźwięku w kontenerach przez WebRTC.
  • Punkt końcowy darwinn pipe został usunięty.
  • Jeśli dekodowanie CUDA VPx jest dostępne w przypadku wideo, dostępne jest teraz dekodowanie CUDA VPx dla wideo 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 INVTSC jest teraz domyślnie włączony. Może to poprawić dokładność pomiarów czasu dokonywanych przez gościa.
  • W danych śledzimy teraz, który rozszerzony panel sterowania został wybrany przez użytkownika.
  • Emulator Linuksa używa teraz parawirtualizowanego zegara KVM, gdy jądro gościa jest w wersji 5.4 (obrazy systemu R lub nowsze).
  • Emulator używa teraz LZ4 do dekompresji jądra gości, dzięki czemu jest zgodny z nowoczesnym potokiem jądra.
  • Dodano polecenia konsoli umożliwiające uzyskanie katalogu AVD w emulatorze, ścieżki pliku wyszukiwania w przypadku osadzonego Studia oraz ścieżki do migawek:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • Aby ułatwić oszczędzanie miejsca w pionie na ekranie, w sekcji Rozszerzone elementy sterujące > Ustawienia dodaliśmy opcję ukrycia ramki urządzenia w bieżącym AVD. Aby ukryć ramki urządzeń dla wszystkich AVD, udostępniliśmy flagę funkcji NoDeviceFrame, którą można aktywować, uruchamiając emulator z poziomu wiersza poleceń z ramką -feature NoDevice lub zablokować, dodając NoDeviceFrame = on do ~/.android/advancedFeatures.ini (jeśli plik nie istnieje, utwórz go).

  • Dodano element menu na stronie komórkowej, aby włączyć i wyłączyć obsługę pomiarowości. Jest to opcja nieaktywna w przypadku starszych obrazów systemowych, które nie obsługują przełącznika pomiarowości 5G.

    • Dodaliśmy też polecenie konsoli służące do tego samego celu: gsm meter on|off
  • Uaktualniona platforma narzędziowa / kompilacja do C++17.

Poprawki: wbudowany emulator

  • Skopiowany tekst powinien się teraz wyświetlać.
  • Rozwiązaliśmy problem polegający na tym, że w emulatorze znaki wielkie były traktowane jako małe.
  • Rozwiązano problem z wczytywaniem tokena konsoli z ścieżki Unicode w systemie Windows.
  • Naprawiono komunikat o błędzie SO_REUSEPORT w Linuksie.
  • Rozwiązaliśmy problem z uszkodzonymi migawkami podczas wysyłania poleceń dotyczących migawek przez gRPC, a także podczas naciśnięcia przycisku zapisywania migawki w wbudowanym emulatorze Android Studio.
  • Podczas korzystania z wbudowanego w Studio emulatora Linuxa zauważyliśmy, że jeśli jest on używany w Pulpicie zdalnym Chrome, występuje błąd, który powoduje, że parametr XDG_RUNTIME_DIR nie jest ustawiony. Może to spowodować, że wbudowany emulator nie będzie się wyświetlać, ponieważ pliki wykrywania emulatora są umieszczane w folderze XDG_RUNTIME_DIR. Stan odpowiedniego problemu możesz sprawdzić w śledzeniu problemów z Chrome.

    Aby to obejść, emulator teraz używa plików wykrywania w możliwie innym katalogu na podstawie identyfikatora użytkownika: /run/user/&lt;uid>.

  • Wbudowany emulator: urządzenia z zaokrąglonymi narożnikami lub wycięciami w ekranie teraz prawidłowo zmieniają układ, aby zrobić miejsce na narożniki i wycięcia. Wymaga to uruchomienia „na zimno” tych emulatorów.

  • Punkt końcowy gRPC obsługuje teraz wysyłanie SMS-ów na urządzenie.

Ogólne poprawki

  • Zauważyliśmy problemy ze zgodnością podczas uruchamiania emulatora Windowsa z aktywnym Riot Vanguard. Emulator Windowsa wykrywa teraz system antycheatowy Vanguard i wyświetla komunikat ostrzegawczy, jeśli go wykryje.
  • Naprawiono błąd FD_SETSIZE w systemie Windows. Do nawiązywania niezablokowanych połączeń z serwerami pętli zwrotnej używamy teraz protokołu WSAEventSelect() zamiast select().
  • Dodano obsługę funkcji F16C CPUID do emulatora Linuxa z poprawkami dotyczącymi uruchamiania niektórych aplikacji ARM64 za pomocą tłumaczenia NDK. Pracujemy nad wersjami na macOS i Windows.
  • Poprawiono odtwarzanie trasy w pliku gpx/kml, aby odpowiadało sygnaturom czasowym.
  • Naprawiono ikonę odbijającą się podczas uruchamiania na komputerach Mac.
  • Jeśli hw.audioInput=no i hw.audioOutput=no w pliku config.ini są teraz prawidłowo wyłączone, dźwięk w emulatorze jest prawidłowo wyłączony.
  • Rozwiązaliśmy problem polegający na tym, że jeśli okno emulatora było zminimalizowane, a okno rozszerzonych elementów sterujących było otwarte, ale nieaktywne, to przy zmianie rozmiaru okna emulatora okno rozszerzonych elementów sterujących nadal było widoczne. W przyszłej aktualizacji całkowicie usuniemy to zachowanie (przypadek z aktywnym rozszerzonym oknem kontroli).
  • Naprawiono błąd, który powodował niestabilne połączenie z siecią Wi-Fi przy uruchamianiu emulatora.
  • Rozwiązanie problemu z zawieszaniem się emulatora podczas zamykania, gdy wysyła on polecenia powłoki z długim lub nieokreślonym czasem oczekiwania.
  • Zaktualizowaliśmy bios komputera PC, dodając poprawki, aby lepiej obsługiwać duże obrazy przekazywane do -initrd. Poprzedni BIOS używał bardzo mało wydajnej metody.
  • Rozwiązano problem z awarią podczas zakończenia, gdy używana jest opcja -wifi-server-port.
  • Emulator wyświetla teraz ostrzeżenie, jeśli do -prop zostaną przekazane nieobsługiwane opcje (obsługiwane są tylko rekwizyty qemu.*).
  • Podczas kompilowania emulatora w Windowsie powinno być mniejsze prawdopodobieństwo wystąpienia niestabilnych błędów zapisu do plików. Więcej informacji znajdziesz w instrukcjach kompilowania systemu Windows.
  • Wyłączenie przycisku Zoom w przypadku składanych urządzeń AVD, który powodował problemy.
  • Emulator poprawnie podaje czas uruchamiania po ponownym uruchomieniu urządzenia.
  • Linux: w przypadku niewystarczających uprawnień KVM emulator teraz szybciej wyświetla instrukcje debugowania.
  • Rozwiązanie problemu polegającego na tym, że bez przyspieszenia emulator nie mógł uruchomić ostatnich obrazów systemu.
  • Naprawiono problem z uszkodzeniem pamięci lub awarią podczas uruchamiania z wykrywania ukończonego rozruchu.
  • Naprawiono wyciek pamięci podczas długich sesji nagrywania ekranu.
  • Ikony emulatora zostały zaktualizowane, aby odzwierciedlały elementy marki Studio 4.1.
  • Dodano lepszą obsługę wykrywania sesji zdalnych w systemie Windows.

Poprawki: dekodowanie grafiki i wideo

  • Rozwiązaliśmy problem, który powodował, że najnowsza wersja gry Asphalt 9 renderowała się na czarnym ekranie.
  • Usunięto spam dotyczący czyszczenia mapowanego bufora z NULL.
  • Rozwiązaliśmy problem z konkurencją podczas usuwania stanu Vulkana po zamknięciu aplikacji gościa Vulkana.
  • Shadery emulacji Vulkan ASTC/ETC2 są teraz wbudowane w bibliotekę libOpenglRender. Jest to bardziej niezawodne niż odczyt z systemu plików.
  • Rozwiązaliśmy problem w Vulkanie, który powodował, że w przypadku uruchomienia instancji Vulkan 1.0 na hoście funkcja vkGetImageMemoryRequirements2KHR nieprawidłowo czyściła zwracane pole pNext struktury VkMemoryRequirements2.
  • Naprawiliśmy wyciek pamięci w wyświetlaczu Vulkan.
  • Naprawiliśmy ostatnią regresję, w wyniku której nie można było skompilować mechanizmów cieniowania GLSL ES 1.00 o nazwach zmiennych, np. isampler2D.
  • Zaktualizowano translator shaderów ANGLE, wprowadzając różne poprawki, które rozwiązują problemy z kompilacją shaderów w systemie Linux.
  • Aby śledzić to zjawisko, powoduje on teraz awarię emulatora, jeśli nie uda się skompilować podstawowego shadera blitowania framebuffera.
  • Zaktualizowano tłumaczacza shaderów ANGLE, aby był zgodny z uaktualnieniami ANGLE. W tym wydaniu naprawiono problem polegający na uszkodzeniu pamięci podczas tłumaczenia i zwijania stałych shaderów OpenGL ES, które używały niekwadratowych macierzy. Tłumacz shaderów jest teraz oddzielną biblioteką współużytkowaną (libshadertranslator.dll).
  • Rozwiązaliśmy problem z inicjalizacją Vulkana w przypadku niektórych sterowników GPU, w których nie można było znaleźć niektórych funkcji urządzenia w wersji 1.1.
  • Vulkan: Ponownie wróciliśmy do używania gotowego programu wczytującego. Natomiast w niektórych konfiguracjach system Vulkan powodował problemy, ale wymyślimy lepsze rozwiązanie.
  • Rozwiązaliśmy problem z użyciem pamięci zewnętrznej Vulkan, w której mogły zostać zaimportowane niepasujące indeksy typu pamięci na hoście.
  • Rozwiązaliśmy problem z emulacją GL_ALIASED_POINT_SIZE_RANGE, w którym typ enumeracji nie był obsługiwany na hoście.
  • Rozwiązanie problemu, który powodował, że na niektórych kartach graficznych hosta nie można było skompilować shaderów Skia z powodu błędów związanych z GL_EXT_shader_framebuffer_fetch.
  • Nasz kod renderera D3D9 ANGLE został usunięty kilka wersji temu, dlatego teraz automatycznie przełączamy użytkowników, którzy korzystali z tego renderera, na renderer d3d11 ANGLE, jeśli został on wybrany w ustawieniach interfejsu.
  • Do inicjalizacji WGL w Windows dodano więcej informacji debugujących, aby umożliwić śledzenie błędów.
  • Gdy hw.gltransport=virtio-gpu-pipe, wydajność jest lepsza, ponieważ host nie musi się przełączać podczas przenoszenia z hosta na gościa.
  • Dodano więcej logowania debugowania na wypadek, gdy nie uda się zainicjować emulacji OpenGLES.
  • Rozwiązaliśmy problem, który powodował, że filmy w YouTube migoały lub nie wyświetlały się podczas wczytywania migawki.
  • Wróciliśmy do oprogramowania do dekodowania libvpx, ponieważ wystąpiły problemy ze sprzętowym dekodowaniem libvpx przez CUDA. Jeśli po stronie hosta masz obsługiwaną implementację dekodowania sprzętowego CUDA, dekodowanie sprzętowe libvpx można ponownie włączyć za pomocą zmiennej środowiskowej ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (30 kwietnia 2020 r.)

Ta aktualizacja zawiera obsługę uruchamiania emulatora bezpośrednio w Android Studio oraz urządzeń wirtualnych z domyślnie włączonym trybem okna dowolnego kształtu.

Uruchamianie emulatora w Android Studio

Emulator Androida można teraz uruchamiać bezpośrednio w Android Studio. Używaj tej funkcji, aby oszczędzać miejsce na ekranie, szybko przełączać się między emulatorem a oknem edytora za pomocą skrótów klawiszowych oraz organizować przepływ pracy w IDE i emulatorze w jednym oknie aplikacji.

Tryb dowolnego okna

Możesz teraz utworzyć urządzenie AVD z włączonym trybem okna Freeform.Aby to zrobić, podczas tworzenia urządzenia wirtualnego w Android Studio wybierz profil sprzętowy tabletu Freeform o przekątnej 13,5 cala. Ten profil sprzętowy wymaga obrazu systemu z Androidem 11 w wersji deweloperskiej 3 lub nowszej.

Znane problemy

Zmiana rozmiaru dowolnych okien działa obecnie z powodu problemów z przenoszeniem fokusu do menedżera okien. Ten problem zostanie rozwiązany w przyszłej wersji obrazu systemu Android 11.

30.0.0 (19 lutego 2020 r.)

Ta aktualizacja zawiera obrazy systemu Android 11 (poziom interfejsu API 30) i ulepszoną wydajność podczas uruchamiania binarnych plików ARM.

Obrazy systemowe Androida 11

Teraz możesz utworzyć AVD z Androidem 11, wybierając jedną z dostępnych wersji obrazu systemu na poziomie interfejsu API 30:

  • x86: obejmuje interfejsy ABI x86 i ARMv7.
  • x86_64: obejmuje interfejsy ABI x86, x86_64, ARMv7 i ARM64.

Obsługa plików binarnych ARM w obrazach systemu Android 9 i 11

Jeśli wcześniej nie mogłeś korzystać z dwu emulatorów Androida, ponieważ Twoja aplikacja była zależna od binarnych plików binarnych ARM, możesz teraz użyć obrazu systemu Android 9 x86 lub dowolnego obrazu systemu Android 11, aby uruchomić aplikację. Nie musisz już pobierać konkretnego obrazu systemu, aby uruchomić binarne pliki binarne ARM. Te obrazy systemu dla Androida 9 i 11 domyślnie obsługują architekturę ARM i zapewniają znacznie lepszą wydajność 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 x86 i x86_64. Jeśli kierujesz aplikację na Androida 11, rozważ jej kompilację na ARM64.

29.0.11 (29 maja 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Windows: emulator korzysta teraz z biblioteki DLL libgcc, która jest dostarczana z programem, zamiast być kompilowana ze sterownikami libgcc.
  • Linux: dodano obsługę logcat do interfejsu gRPC API. Więcej informacji o gRPC znajdziesz w artykule gRPC Streaming Emulator (Linux).
  • Emulator zawiera teraz wersję bez obrazu dla 32-bitowych gości x86 (qemu-system-i386). Umożliwia to uruchamianie obrazów 32-bitowych x86 dla poziomów interfejsu API 26 i niższych w wersji bez obrazu. Pamiętaj, że w przypadku gości 32-bitowych x86 z interfejsem API w wersji 27 lub nowszej emulator używa silnika 64-bitowego (qemu-system-x86_64), ponieważ w tych obrazach systemowych 32-bitowa przestrzeń użytkownika to jądro 64-bitowe. Android Studio używa jądra do wybierania silników emulacji.
  • Teraz możesz określać niestandardowe ścieżki biblioteki Qt za pomocą zmiennej środowiskowej ANDROID_QT_LIB_PATH.
  • Możesz teraz uruchomić emulator z poprzednimi plikami binarnymi korzystającymi z QEMU1, jeśli pliki wykonywalne QEMU1 (emulator[64]-[x86|arm|etc]) znajdują się w katalogu emulatora.
  • Windows: rozwiązaliśmy problem, który czasami uniemożliwiał uruchomienie emulatora z komunikatem „vCPU shutdown request” (żądanie wyłączenia procesora vCPU).
  • Rozwiązaliśmy problem z niepotrzebną barierą potoku w emulowanych skompresowanych teksturach w interfejsie Vulkan.
  • Usunięto błąd występujący w przypadku żądań proxy http podczas używania kodowania transferu w częściach. Więcej informacji znajdziesz w szczegółach zobowiązania.

29.0.9 (7 maja 2019 r.)

Ta aktualizacja zawiera te poprawki:

  • Windows: rozwiązaliśmy problem, który powodował, że kamera wirtualnej sceny i kamera internetowa nie działały na emulatorze.

29.0.8 (6 maja 2019 r.)

Ta aktualizacja zawiera te ulepszenia i poprawki:

  • Dodano obsługę wielu wirtualnych wyświetlaczy sprzętowych, gdy istnieje usługa gościnna do zliczania i ustawienia każdego wyświetlacza. W przyszłej aktualizacji obrazu systemu emulatora zostaną uwzględnione dodatkowe wirtualne wyświetlacze sprzętowe.
  • Dodano nową opcję wiersza poleceń: -delay-adb. Ta opcja powstrzymuje przetwarzanie pakietów ADB do momentu zakończenia uruchamiania przez gościa (z „zimnego rozruchu”). Ta opcja pomaga rozwiązać problemy, które mogą wystąpić, jeśli używasz emulatora w środowisku CI, które uruchamia ponownie emulator i jednocześnie używa DDMS.
  • Naprawiono błąd, który występował podczas wczytywania zrzutów, gdy glIsRenderbuffer zwracał nieprawidłową wartość.
  • Naprawiono kilka problemów ze stanem nieaktualnym podczas ponownego uruchamiania gościa na Androidzie.
  • Windows: rozwiązaliśmy problemy, które uniemożliwiały uruchomienie emulatora, gdy nazwa użytkownika Windows zawierała znaki spoza zestawu ASCII lub spacje.

Znane problemy

  • Interfejs Zrzuty jest wyłączony w przypadku obrazów systemu Automotive, ponieważ zrzuty nie są obecnie obsługiwane w przypadku tych obrazów systemu.

29.0.6 (1 maja 2019 r.)

Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji oraz poprawki błędów.

Usunięcie QEMU1 i obsługi 32-bitowej wersji systemu Windows

Aby ułatwić obsługę emulatora, nie dostarczamy już pakietów binarnych QEMU1 ani 32-bitowych wersji systemu Windows. Jeśli używasz 32-bitowej wersji systemu Windows, nie możesz uaktualnić do wersji 29.0.6.

Wymagania dotyczące obrazów systemu Android Q

Jeśli chcesz uruchomić maszynę wirtualną AVD, która korzysta z obrazu systemu Android Q, musisz teraz użyć wersji 29.0.6 (ta wersja) lub nowszej.

Ulepszenia w ramach projektu Marble

To uaktualnienie jest kontynuacją naszej pracy nad inicjatywą Project Marble, która została ogłoszona podczas Android Developer Summit w listopadzie 2018 r. Więcej informacji o innych ulepszeniach w ramach projektu Marble w poprzednich wersjach znajdziesz w artykule Android Emulator: ulepszenia w ramach projektu Marble.

W ramach tej aktualizacji większość naszych działań w ramach projektu Marble była poświęcona zmniejszeniu wykorzystania zasobów przez emulator, na przykład poprzez ograniczenie wykorzystania procesora przez emulator w stanie bezczynności. Wprowadziliśmy też zmiany, które ułatwiają pracę z emulatorem w szerszym zakresie środowisk, oraz rozwiązaliśmy ogólne problemy z jakością.

W tych sekcjach opisujemy ulepszenia wprowadzone w projekcie Marble w ramach tej aktualizacji:

Ulepszenia zachowania dźwięku gospodarza

Począwszy od wersji 28.0.3 emulator domyślnie blokuje wejście audio od hosta.

Jeśli chcesz używać danych audio gospodarza, możesz włączyć tę opcję, wybierając Rozszerzone ustawienia > Mikrofon i włączając Wirtualny mikrofon używa danych audio gospodarza. Ta opcja jest automatycznie wyłączana po ponownym uruchomieniu emulatora.

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

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Ulepszenia kompilacji emulatorów bez interfejsu graficznego

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

W ramach tej aktualizacji wprowadziliśmy dalsze ulepszenia, aby umożliwić emulacji działanie z minimalną liczbą zależności. Kompilacje bez interfejsu graficznego z Linuksem nie zawierają już bibliotek pulseaudio ani libX11. Lista bibliotek współdzielonych zależnych od systemu, które nie są pakowane z emulatorem, została skrócona do następujących pozycji:

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

Uaktualniono biblioteki Qt UI do wersji 5.12 LTS

Ta aktualizacja zawiera następujące ulepszenia z wersji Qt 5.12 LTS:

  • Aby uniknąć awarii podczas dekodowania libpng w Qt podczas uruchamiania niektórych obrazów systemu, emulator używa teraz własnej kopii libpng do dekodowania obrazów PNG.
  • Aby rozwiązać problemy z niektórymi instalacjami Linuksa zawierającymi niezgodne wersje niektórych bibliotek zależnych od Qt, dodaliśmy do emulatora pakiety libfreetype, libsoftokn, libsqlite3libxkbcommon.
  • Emulator używa teraz natywnych bibliotek okien platformy do uzyskiwania wymiarów monitora zamiast bibliotek Qt, które zwracały niewiarygodne wyniki.

Automatyczne optymalizacje procesora po zimnym uruchomieniu

Aby rozwiązać problem wykorzystania procesora, emulator uruchamia teraz te polecenia ADB podczas „zimnego rozruchu” 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 oszczędzania baterii wykorzystanie procesora w tle jest znacznie ograniczone.
W trybie ładowania AC operacje w tle GMSCore, takie jak aktualizacje aplikacji, mogą bez ostrzeżenia przejąć wszystkie rdzenie procesora urządzenia (a zatem całą maszynę użytkownika).
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
To polecenie odwołuje uprawnienia mikrofonu dla aplikacji wyszukiwania Google, co znacznie zmniejsza wykorzystanie procesora w tle na ekranie głównym i w menedżerze aplikacji, gdy aplikacja wyszukiwania Google jest aktywna.
To polecenie jest wykonywane dodatkowo do domyślnego zachowania emulatora, które wyłącza dźwięk hosta. Ponadto automatycznie zapewnia ograniczenie wykorzystania procesora w przypadku wykrywania słów kluczowych w wersji 28.0.23.

Nowe zmienne środowiskowe do monitorowania wydajności

Teraz możesz używać 2 nowych zmiennych środowiskowych, aby umożliwić szczegółowe monitorowanie wydajności i wykorzystania zasobów emulatora.

SHOW_PERF_STATS=1
Ta zmienna środowiskowa umożliwia śledzenie wykorzystania procesora i pamięci RAM. Śledzenie wykorzystania pamięci RAM rozróżnia wykorzystanie przez kartę graficzną i łączną pamięć rezydentną.
ANDROID_EMU_TRACING=1
Ta zmienna środowiskowa umożliwia drukowanie za każdym razem, gdy operacja przetwarzania danych wejściowych lub graficznych zajmuje dużo czasu (ponad 1 ms).
Używamy tej zmiennej środowiskowej również do diagnozowania problemów, które występują u użytkowników systemu Windows, którzy doświadczają więcej zakłóceń (utraconych klatek) niż użytkownicy systemu macOS lub Linux.

Ogólne ulepszenia Project Marble

Ta aktualizacja obejmuje też następujące ogólne ulepszenia wprowadzone w ramach inicjatywy Project Marble:

  • Teraz możesz natychmiast wstrzymać wszystkie procesory wirtualne w emulatorze za pomocą tych poleceń konsoli:
    • adb emu avd pause
    • adb emu avd resume
  • Znacznie zmniejszono obciążenie związane z rysowaniem OpenGL. Ta poprawka zmniejsza wykorzystanie procesora podczas odtwarzania animacji przez emulator.
  • Przywróciliśmy obsługę głównego urządzenia sieciowego QEMU e1000. Możesz użyć tego urządzenia, aby skonfigurować emulator w środowisku sieci mostkowej. W środowisku z mostkiem sieciowym emulator jest widoczny w sieci hosta, a sieć hosta jest widoczna w emulatorze.
  • Do uruchamiania emulatora używane są teraz pliki binarne BIOS-u odpowiednie dla QEMU 2.12.
  • Uaktualniono ffmpeg do wersji 3.4.5 w celu kodowania i dekodowania wideo.
  • Znacznie zmniejszono obciążenie związane z wejściami/wyjściami głównego pętli QEMU na macOS, zastępując główną pętlę opartą na select() główną pętlą opartą na kqueue.
  • Rozmiar bufora logcat został zwiększony do 2 MB, aby rozwiązać problemy z nieoczekiwanym EOF podczas uruchamiania logcat za pomocą emulatora.
  • Emulator teraz domyślnie eksportuje zmienną środowiskową LC_ALL=C. Ta zmiana rozwiązuje problemy z awariami i niezgodnością związane z uruchamianiem emulatora w różnych regionach.
  • Możesz teraz śledzić wykorzystanie procesora i pamięci RAM przez emulator, korzystając ze statystyk wydajności, które są dostępne po wybraniu Rozszerzone ustawienia > Ustawienia > Zaawansowane > Statystyki wydajności. Użyj tych statystyk, aby szybko zdiagnozować problemy, jeśli emulator wykorzystuje za dużo procesora lub pamięci RAM.
  • Funkcja glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE używa teraz wyniku GPU hosta zamiast emulowanego. Ta zmiana pomaga rozwiązać problemy z nieprawidłowym wyświetlaniem obrazów i komponentów z powodu nieprawidłowego formatu odczytu.
  • Dodano obsługę rozszerzeń OpenGL ES GL_EXT_texture_format_BGRA8888 i GL_APPLE_texture_format_BGRA8888, jeśli są one obsługiwane przez hosta.
  • Dodaliśmy więcej informacji diagnostycznych do interfejsu Bugreport. Dodatkowo możesz przeglądać raporty o błędach z konsoli 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.
  • Dodano więcej logowania i drukowania, gdy nie udaje się zainicjować OpenGL lub hipernadzorcy.
  • Jeśli emulator nie może uruchomić równoczesnego -read-onlyinstancji AVD, emulator próbuje teraz uruchomić go ponownie -read-only jeszcze 3 razy w ciągu 3 sekund. Ta zmiana zwiększa prawdopodobieństwo, że emulator będzie w stanie uruchomić równoczesne instancje -read-only AVD, jeśli inne możliwe do zapisu wystąpienia AVD nie zostaną oczyszczone z 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 sterownika podczas uruchamiania większości animacji.
  • Kompilacja emulatora jest teraz oparta na CMake/Ninja.
  • W interfejsie rozszerzonych elementów sterujących emulatora linie separatora w tabeli skrótów klawiszowych zostały przywrócone.
  • Użytkownicy mogą teraz wyrazić zgodę na udostępnianie naszemu zespołowi danych o wykorzystaniu procesora i pamięci RAM w interwałach 10-sekundowych. Korzystamy z tych danych, aby wzbogacać informacje o użyciu zasobów przez emulator o różne przypadki użycia przez użytkowników, co pozwala nam uczynić emulator bardziej wydajnym i szybko reagującym.

Ogólne poprawki w Project Marble

Ta aktualizacja zawiera też te ogólne poprawki, które są częścią projektu Marble:

  • Rozwiązaliśmy problemy z mruganiem i nieprawidłowymi klatkami wyświetlanymi na systemach z kartami graficznymi Intel podczas korzystania z obrazu systemu Android Q.
  • Rozwiązano problemy z czarnym ekranem podczas korzystania z Androida Q w przypadku obrazów z obudowami Pixel 2 XL (lub dowolną obudową z wycięciem lub zaokrąglonymi rogami).
  • Rozwiązaliśmy problem polegający na tym, że opcja wiersza polecenia -partition-size nie ustawiała rozmiaru partycji danych.
  • Rozwiązaliśmy problem, który powodował, że pulseaudio na emulatorze Linx w niektórych sytuacjach zajmował całe rdzenie procesora.
  • Rozwiązanie problemów z dostępem do pamięci spoza zakresu podczas przetwarzania skompresowanych tekstur.
  • Usunięto błędy GL występujące na hoście w glTexSubImage2D podczas aktualizowania niektórych buforów gralloc (o formatach RGB 565, RGB10A2, RGB(A)16F).
  • Rozwiązaliśmy problem z wyświetlaniem obrazów systemu Android Q ze zrzutami ekranu, w których geometria panelu powiadomień została wyrenderowana z nieprawidłowym ustawieniem dzielnika instancji.
  • Naprawiono kilka trudnych do odtworzenia problemów z zawieszaniem się i zawieszaniem podczas uruchamiania, które były spowodowane utratą sygnałów przez Qt lub niestabilnym, niespójnym stanem podczas uruchamiania.
  • Naprawiono wiele problemów z równoczesnością. Teraz możemy tworzyć emulatora Linuxa za pomocą ThreadSanitizer (TSAN), który może łatwo wykrywać błędy, które w innym przypadku są trudne do odtworzenia.
  • Użytkownicy Linuksa: odkryliśmy, że w przypadku niektórych jąder hosta jądro Androida gościa może zakończyć się niepowodzeniem i zamknąć w KVM w wyniku ogólnego błędu sprzętowego. Aby ułatwić debugowanie, emululator będzie teraz abort() (wcześniej emululator po prostu się zawieszał).
  • Użytkownicy systemu Linux: dla wygody użytkowników konfiguracji CI możesz używać nowej opcji wiersza poleceń -stdouterr-file <file-name>, aby przekierowywać zarówno stdout, jak i stderr do pliku.
  • Rozwiązaliśmy problem, który powodował nieprawidłowe korzystanie z pola SO_REUSEADDR. Więcej informacji znajdziesz w szczegółach commita.
  • Rozwiązaliśmy długotrwały problem z emulatorem Windows, w którym procesy podrzędne, takie jak polecenia ADB, nie mogły się uruchomić, jeśli nazwa użytkownika zawierała spacje.
  • Naprawiono problem braku inicjowania RCU w wątkach procesora wirtualnego HAXM. Ta poprawka może rozwiązać niektóre problemy z wypadkami i warunkami wyścigów.
  • Rozwiązano problem z awarią, która występowała przy określonych wzorach zapisywania i wczytywania zrzutów ekranu z interfejsu zrzutów ekranu przy użyciu najnowszych obrazów systemowych Androida Q.
  • Rozwiązaliśmy problem, który powodował, że kamera sceny wirtualnej była pusta, gdy emulator był inicjowany ze zrzutu, jeśli podczas zapisywania zrzutu było odtwarzane makro AR.
  • Rozwiązaliśmy problem, który powodował, że niektórzy użytkownicy korzystający z konfiguracji pulpitu zdalnego widzieli czarny ekran podczas uruchamiania emulatora w systemie Linux. Aby tego uniknąć, emulator teraz jawnie konfiguruje MESA_RGB_VISUAL. Więcej informacji znajdziesz w szczegółach zatwierdzania.
  • Rozwiązaliśmy problem polegający na tym, że przyciski obracania pojawiały się w AVD na telewizorach.
  • Rozwiązaliśmy problem, który polegał na tym, że gdy emulator był zawsze na górze, przy każdym obracaniu emulatora pojawiało się rozszerzone okno sterowania.

Profile sprzętu dla urządzeń składanych

Emulator zawiera teraz profile sprzętowe dla urządzeń składanych. Aby korzystać z tych nowych profili sprzętowych, musisz mieć zainstalowaną wersję Android Studio 3.5 Canary 10 lub nowszą.

Do tworzenia aplikacji na urządzenia składane dostępne są 2 profile sprzętowe:

  • 7,3" składany: 1536 x 2152 w rozłożonym stanie, 4,6" 840 x 1960 w złożonym stanie
  • 8" składany: 2200 x 2480 w rozłożonym stanie, 6,6" 1480 x 2480 w złożonym stanie

Gdy uruchomisz emulator przy użyciu jednego z tych profili sprzętowych, możesz składać i otwierać urządzenie, korzystając z działań składania i rozwijania na pasku narzędzi emulatora, poleceń konsoli lub tych skrótów klawiszowych:

  • Złożenie: Ctrl + F (Command + F w systemie macOS)
  • Rozwiń: Ctrl + U (Command + U w systemie macOS)

Makra AR

Emulator zawiera teraz makra AR, które ułatwiają testowanie typowych działań AR. Możesz na przykład użyć makra, aby zresetować wszystkie czujniki urządzenia do stanu domyślnego.

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

Obsługa Vulkana (Windows, Linux)

Użytkownicy systemu Windows i Linux mogą teraz testować aplikacje Vulkan za pomocą emulatora Androida do wersji Vulkan 1.1, jeśli używają zgodnego obrazu systemu (Android Q Beta 3 lub nowszej w przypadku Vulkan 1.1, Android Q Beta 2 w przypadku Vulkan 1.0) i zgodny procesor graficzny hosta (w tym większość procesorów graficznych Intel, NVIDIA i AMD z 2014 roku lub nowszych).

Aby włączyć obsługę interfejsu Vulkan, musisz dodać do pliku ~/.android/advancedFeatures.ini te flagi funkcji (jeśli nie istnieje, utwórz plik):

  • Vulkan = on
  • GLDirectMem = on

Wstępna pomoc dla deweloperów ROM-ów

Deweloperzy ROM, którzy tworzą cele sdk_phone_x86 lub sdk_phone_x86_64 (warianty userdebug, eng) w gałęzi AOSP master, mogą teraz uruchamiać emulator z obsługą Vulkana.

Ta obsługa jest nadal eksperymentalna i przeznaczona głównie dla deweloperów, którzy pracują nad obrazami systemowymi, sterownikami i silnikami gier. Nadal brakuje wielu rozszerzeń. Pamięć HOST_COHERENT jest jednak obsługiwana, a teraz możesz uruchomić przykłady samouczka interfejsu Vulkan API.

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

Karty graficzne NVIDIA i AMD, które obsługują Vulkan, obsługują też interoperacyjność bez kopiowania z OpenGL za pomocą rozszerzenia GL_EXT_memory_objects. Korzysta on z tej funkcji, aby zapewnić kompletny sposób renderowania interfejsu użytkownika Androida za pomocą interfejsów Vulkan API Skia.

Jeśli masz kartę graficzną NVIDIA lub AMD obsługującą Vulkan, wykonaj te polecenia, aby przetestować renderowanie Skia za pomocą zgodnego obrazu systemu (Android Q w wersji beta 3 lub nowszej):

adb shell
su
setprop debug.hwui.renderer skiavk
stop
start

Obsługa interfejsu Vulkan w systemie macOS

Obsługa macOS jest nadal eksperymentalna, ale emulator zawiera już interfejsy API Swiftshader, MoltenVK i libportability (gfx-rs). Możesz eksperymentować z tymi interfejsami API, ustawiając te zmienne środowiska:

  • Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • libportability: ANDROID_EMU_VK_ICD=portability

Znane problemy

HAXM może czasami nie być w stanie przypisać pamięci spójnej Vulkan do gościa i zatrzymuje działanie emulatora. Ten problem postaramy się rozwiązać w przyszłej aktualizacji HAXM.

Emulator strumieniowego przesyłania danych gRPC (Linux)

Zawsze staramy się, aby emulator był jak najbardziej wszechstronny, umożliwiając hostowanie renderowania GPU i interaktywności w najszerszym zakresie kontekstów. Użytkownicy CI i pulpitu zdalnego mają te długotrwałe problemy:

  • Programowe wysyłanie poleceń do emulacji wymaga albo uruchomienia poleceń adb shell, które mogą powodować wysokie obciążenie, albo korzystania z konsoli telnet, która jest szybsza, ale może nie działać w przypadku niektórych konfiguracji sieci.
  • Użytkownicy CI często uruchamiają emulatory bez wyświetlacza, co może utrudniać zauważenie problemów wymagających widocznego ekranu lub interakcji z ekranem.
  • Użytkownicy pulpitu zdalnego często nie mogą korzystać z emulatora podczas korzystania z hosta do renderowania GPU, ponieważ renderowanie GPU jest często powiązane z wyświetlaczami hosta, które nie są wirtualne.

Aby rozwiązać ten problem, emulator działający na komputerze z Linuksem udostępnia teraz usługę gRPC. gRPC to ogólny interfejs RPC działający przez HTTP.

Domyślnie usługa gRPC emulatora jest wyłączona, ale możesz ją aktywować za pomocą tej opcji wiersza poleceń, gdzie <port>to port, z którego emulator powinien obsługiwać żądania gRPC (zwykle 5556):

-grpc <port>

Po uruchomieniu usługi klienci mogą wydawać polecenia gRPC. Obecny zestaw poleceń umożliwia zarówno wysyłanie zdarzeń wprowadzania danych, jak i odbieranie zrzutów ekranu. Te polecenia pomagają rozwiązać te problemy:

  • Polecenia wejściowe można wysyłać do emulatora z małym nadmiarem przez HTTP. HTTP umożliwia też wysyłanie poleceń w dodatkowych konfiguracjach sieci.
  • Polecenia dotyczące zrzutów ekranu mogą być wysyłane, aby zapytać o obecny ekran, nawet jeśli emulator działa w trybie bez okna. W celu zapewnienia interakcji zdarzenia wejścia mogą też być wysyłane z powrotem do emulatora.
  • Użytkownicy komputerów zdalnych mogą uruchamiać emulator bez interfejsu graficznego na głównym wyświetlaczu z renderowaniem z akceleracją przez GPU, a za pomocą gRPC do pobierania zrzutów ekranu i wysyłania zdarzeń wejściowych w celu interakcji z emulatorem.

Pełną listę dostępnych poleceń znajdziesz w tym pliku protobuf.

Aby ułatwić Ci rozpoczęcie pracy z gRPC, przygotowaliśmy przykładowe klienty, do których możesz się odnieść.

Obecnie obejmuje to te próbki:

  • Usługa oparta na Go, która może służyć do wysyłania zapytań o stany emulatora.
  • Aplikacja React, która demonstruje zdalną interaktywność za pomocą zrzutów ekranu i wejściowych wywołań RPC. Ten przykład wymaga protokołu protobuf w wersji 3.7.0 lub nowszej.
  • Przykładowy kod Pythona, który wysyła zapytanie o konfigurację maszyny wirtualnej emulatora, a następnie wysyła serię poleceń.

28.0.25 (29 marca 2019 r.)

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

Wersja emulatora bez interfejsu

Ustawienie emulatora było trudne w przypadku Dockera i innych procesów ciągłej integracji (CI), ponieważ system miał implicitnie obsługiwać Qt wraz z zależnościami bibliotek współdzielonych (między innymi z tych powodów).

W pierwszym kroku wprowadziliśmy wariant emulatora z uruchomikiem QEMU, który nie zależy od Qt. W Linuksie nadal jest link do libX11, ale mamy nadzieję, że uda nam się go wkrótce usunąć.

Aby użyć emulatora bez okna, uruchom go z poziomu wiersza poleceń jak zwykle, ale zastąp wywołanie binarnego emulatora parametrem emulator-headless. Więcej informacji znajdziesz w aktualizacji wersji 28.1.8 Canary.

  • Naprawiono problemy z mruganiem i nieprawidłowym wyświetlaniem klatek na kartach graficznych Intel podczas uruchamiania obrazów systemu Android Q.
  • Rozwiązaliśmy problemy z wyświetlaniem czarnego ekranu podczas używania obrazów systemu Android Q z motywami Pixel 2 XL.
  • Do uruchamiania emulatora używane są teraz najnowsze binarne pliki BIOS-u. Ta zmiana może pomóc w zmniejszeniu liczby błędów „vCPU shutdown request”, które czasami występują podczas uruchamiania emulatora w Windows.
  • Wprowadziliśmy poprawkę dla problemu polegającego na nieprawidłowym wyświetlaniu obrazów systemu Androida Q po wznowieniu z migawki.
  • Użytkownicy mieli problemy z „nieautoryzowanymi” emulatorami z powodu niezgodnych zmian w ADB w wersji platform-tools 28.0.2. Możesz teraz bezpiecznie używać ADB z narzędzi platformowych w wersji 28.0.2 za pomocą emulatora. Jeśli masz problemy z nieautoryzowanymi emulatorami, wykonaj te czynności:
    1. Zamknij wszystkie emulatory.
    2. Usuń pliki ~/.android/adbkey i ~/.android/adbkey.pub.
    3. Uruchom to polecenie: adb kill-server
    4. Uruchom to polecenie: adb devices
    5. Wyczyść dane AVD.
    6. Ponownie uruchom emulator.

28.0.23 (29 stycznia 2019 r.)

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

Domyślnie wejście audio hosta jest wyłączone

Niedawny post na Reddicie szczegółowo opisał, jak system operacyjny Android gościa zawsze będzie używać mikrofonu hosta, co pozwoli „Ok Google” działać nieoczekiwanie. Przepraszamy za niedogodności. Wspólnie z zespołem ds. Androida zadbamy o to, aby wykrywanie słów kluczowych było wyłączone również w obrazie systemu.

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

  • Dane dźwiękowe gospodarza są teraz domyślnie wyciszane. Gdy gość używa mikrofonu, zamiast dźwięku gospodarza jest przekazywana cisza.
  • Jeśli chcesz używać danych audio gospodarza, możesz włączyć tę opcję, klikając Rozszerzone sterowanie > Mikrofon i włączając Wirtualny mikrofon używa danych audio gospodarza. Ta opcja jest automatycznie wyłączana po każdym ponownym uruchomieniu emulatora.

Aktualizacje dotyczące prowadzonych przez nas śledztw dotyczących wykorzystania procesora

Podczas prowadzonych przez nas badań w ramach projektu Marble zauważyliśmy, że wysokie wykorzystanie procesora w emulatorze można ogólnie podzielić na 3 kategorie:

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

Ustaliliśmy, że wszystkie zainstalowane aplikacje są aktualizowane w losowych odstępach czasu, nawet jeśli użytkownik nie jest zalogowany. Podczas tego procesu wykorzystanie procesora jest określane przez liczbę rdzeni × 100% (zwykle około 400%), w GMSCore i dex2oat. Aby rozwiązać ten problem, wyłącz automatyczne aktualizacje aplikacji w aplikacji Sklep Play.

W przypadku bezczynności: wykrywanie słowa-klucza

Na ekranie głównym bez żadnej aplikacji na pierwszym planie procesor może być mocno obciążony (około 25% z wzlotami do 50%). Przyczyną jest wykrywanie słów-kluczy, które stale wysyła żądania ping do hosta. Nie możesz rozwiązać tego problemu, wyłączając dane wejściowe gospodarza dotyczące dźwięku, ponieważ koszt procesora wynika głównie z czasu potrzebnego na przesłanie danych od gospodarza do gościa. Możesz jednak rozwiązać ten problem, cofając uprawnienia do mikrofonu w aplikacji Google.

Podczas aktywnego korzystania, czasami w trybie bezczynności: animacje.

Trzecim źródłem wysokiego obciążenia procesora są animacje. Zauważyliśmy, że dzięki optymalizacji stosu sterownika graficznego możemy też zmniejszyć wykorzystanie procesora nawet wtedy, gdy emulator nie jest nieczynny. W ramach projektu Marble będziemy stopniowo wdrażać optymalizacje sterowników karty graficznej.

28.0.22 (21 grudnia 2018 r.)

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

  • Rozwiązaliśmy od dawna problem polegający na tym, że w niektórych ustawieniach emulator Maca powodował ponowne uruchamianie lub panikowanie jądra przy zapisywaniu przez Quickboot. (Numer 120951634)
  • Gdy używany jest mapowany plik jako migawka pamięci RAM, emulator odwzorowuje mapowanie pliku wyraźnie po zakończeniu działania.

28.0.20 (11 grudnia 2018 r.)

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

  • Rozwiązaliśmy problem w systemie Windows, który powodował, że w przypadku niektórych modeli GPU firmy Intel emulator zawieszał się podczas wczytywania zrzutów dysku.
  • Rozwiązaliśmy problem, który powodował stan urządzenia ADB unauthorized podczas korzystania z niestandardowej lokalizacji ANDROID_SDK_HOME.
  • Rozwiązaliśmy problem w systemie Windows, który powodował awarię emulatora podczas uruchamiania obrazów systemów z wyłączonym przyspieszeniem procesora.
  • Rozwiązano problem z pikselowym ekranem emulatora. Opcja Downpróbkowanie powinna już działać.
  • Rozwiązaliśmy problem występujący w systemie macOS 10.14 i nowszych, w którym kontrola sterowania kamerą w wirtualnej scenie mogła stać się zbyt czuła z powodu interakcji z nowymi ustawieniami zabezpieczeń ułatwień dostępu.
  • Rozwiązaliśmy błąd w obliczeniach strefy czasowej, który mógł powodować sporadyczne zmiany zegara emulatora.
  • Naprawiono błędy związane z renderowaniem w różnych aplikacjach cocos2d i Unreal Engine.
  • Dodano w emulatorze obsługę Wi-Fi peer-to-peer. Dwa emulatory mogą teraz komunikować się ze sobą bezpośrednio przez Wi-Fi, jeśli używasz najnowszego obrazu Sklepu Play w wersji Pie. Aby korzystać z Wi-Fi peer-to-peer, uruchom 2 AVD z tymi samymi argumentami -wifi-server-port-wifi-client-port:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Dodaliśmy obsługę większej liczby kamer internetowych w systemie Windows, uwzględniając wszystkie niezgodne rozmiary ramek i dynamicznie dostosowując je do ustawień kamery w urządzeniu gościa z Androidem.

28.0.16 (listopad 2018 r.)

Ta aktualizacja obejmuje kilka nowych funkcji i usprawnień istniejących funkcji oraz poprawki błędów.

Użycie zasobów

Emulator używa teraz mniej pamięci RAM, zwłaszcza w przypadku obrazów systemowych z poziomem interfejsu API 28 lub nowszym. Te obrazy systemowe obejmują ulepszony sposób wykorzystania pamięci przez sterowniki graficzne po stronie gościa.

Zwiększyliśmy też wykorzystanie zasobów w następujących obszarach:

  • Zmniejszone wykorzystanie pamięci przez emulator podczas długotrwałych testów. Jeśli nadal masz problemy z wykorzystywaniem pamięci podczas długich testów, utwórz zgłoszenie opisujące Twój przypadek użycia w narzędziu do śledzenia problemów.
  • Zmniejszone wykorzystanie procesora podczas uruchamiania aplikacji z animacjami.
  • Rozwiązaliśmy problem polegający na tym, że w systemie Windows mogło dojść do wycieku kontekstu QEMU AIO.

Uruchamianie wielu instancji pojedynczego AVD jednocześnie

Możesz teraz uruchomić wiele instancji tego samego AVD i uruchamiać je jednocześnie. Instancje uruchamiane po pierwszej instancji są tylko do odczytu, a zmiany wprowadzone na dysku wirtualnym gościa są odrzucane przy zamykaniu.

Aby uruchomić kilka instancji tego samego AVD jednocześnie, uruchom wszystkie instancje po pierwszej, używając flagi -read-only.

Ta funkcja jest możliwa dzięki kopiowaniu plików QCOW2 powiązanych z możliwością zapisu części obrazu Androida. Aby ułatwić Ci zarządzanie miejscem na dysku, dodaliśmy również narzędzie wiersza poleceń qemu-img, które umożliwia wstępne zatwierdzanie plików QCOW2 przed uruchomieniem wielu instancji.

Dodatkowo w połączeniu z funkcją uparowanych przez pliki zrzutów pamięci RAM gościa wiele instancji AVD współużytkuje podstawowy zrzut AVD Quickboot jako wspólne źródło pamięci RAM gościa kopiowania podczas zapisu. Ta właściwość oznacza, że instancje mają wspólną pamięć RAM. Używaj tej funkcji, aby przeprowadzać testy, które wymagają równoległego działania na wielu urządzeniach.

Będziemy wdzięczni za opinie na temat możliwych przypadków użycia, które są częścią normalnego procesu interakcji lub CI. Utwórz problemy lub zagłosuj na nie w IssueTracker.

Zrzuty pamięci RAM gościa oparte na plikach

Dzięki wstępnemu przydziałowi i zmapowaniu pamięci RAM gościa jako pliku emulator może teraz zapisywać migawki Szybkiego uruchamiania w czasie działania zamiast wykonywać całą pracę po zakończeniu. Jeśli podczas zamykania emulatorów występują długie czasy zapisywania, włącz tę funkcję, aby poprawić wydajność Szybkiego uruchamiania. Domyślnie migawka Szybkiego uruchamiania jest zapisywana po wyjściu i ładowana za każdym razem, tak jak w przypadku zawieszania i wybudzania rzeczywistego urządzenia.

Pamięć RAM gościa Androida jest teraz domyślnie zapisywana automatycznie, więc jeśli chcesz zdefiniować stan urządzenia i następnie wielokrotnie go wczytywać, musisz powiedzieć emulatorowi, aby po każdej sesji odrzucał zmiany. Możesz to zrobić na kilka sposobów:

  • Podczas uruchamiania emulatora z wiersza poleceń użyj flagi -no-snapshot-save lub -read-only.
  • Otwórz Rozszerzone elementy sterujące > Zrzuty dysku > Ustawienia i przełącz opcję Automatycznie zapisywać bieżący stan na Quickboot? na Nie.
  • Po wybraniu tej opcji musisz ponownie uruchomić emulator. Jeśli emulator ma ustawione automatyczne zapisywanie, możesz uruchomić to polecenie, aby ustawić punkt kontrolny:
    adb emu avd snapshot remap 0
    
    Po uruchomieniu tego polecenia migawka Quickboot emulatora pozostanie w tym punkcie kontrolnym. Uruchom to samo polecenie ponownie, aby załadować emulator z kontrolnej pozycji.

Zrzuty, które są wykonywane i wczytywane przy użyciu funkcji interfejsu Zrzuty – tak jak wcześniej, bez mapowania plików.

Ponieważ jest to duża zmiana w działaniu Szybkiego rozruchu, chcielibyśmy poznać Twoją opinię na temat tego, czy poprawiła się wydajność tej funkcji i z jakimi problemami się spotykasz podczas jej używania. Jeśli wystąpią problemy, możesz wyłączyć tę funkcję, dodając ten wiersz do pliku ~/.android/advancedFeatures.ini:

QuickbootFileBacked = off

Po uruchomieniu emulatora ze zrzutu (za pomocą opcji wiersza poleceń -snapshot lub z poziomu zrzutu w menedżerze AVD) emulator wyłącza zarówno automatyczne zapisywanie zrzutów Quickboot, jak i zapisywanie zrzutów Quickboot przy zamykaniu. Zmniejsza to szanse na przypadkowe zastąpienie zrzutu Quickboot oraz pozwala uniknąć powolnych ścieżek zastępczych, które nie korzystają z opartych na plikach zrzutów Quickboot.

QEMU 2.12

Zmieniliśmy wersję QEMU z QEMU 2.9 na QEMU 2.12. Ta aktualizacja obejmuje te zmiany QEMU:

Oto kilka istotnych zmian, które mają wpływ na emulator Androida:

  • x86: gdbstub ma teraz dostęp do rejestrów SSE.
  • Obrazy na dysku: blokowanie obrazów jest dodane i włączone domyślnie. Wiele procesów QEMU nie może zapisywać danych w tym samym obrazie, dopóki host obsługuje blokowanie OFD lub POSIX, chyba że opcje zostały określone inaczej.
  • qemu-img: qemu-img resize obsługuje wstępną alokację nowych części obrazu.
  • Zmniejszanie liczby QCOW2 jest teraz obsługiwane w qemu i qemu-img.

Ułatwienia dostępu

  • Rozwiązano problemy z czytnikami ekranu i dodano lepszą obsługę tych narzędzi w interfejsie nagrywania ekranu i zrzutów ekranu.
  • Ikony powiadomień Szybkiego uruchamiania są teraz bardziej dostępne dla użytkowników z zaburzeniami rozpoznawania barw.

Grafika

  • Rozwiązaliśmy problem z dostępem do pamięci spoza zakresu, który mógł wystąpić w przypadku wskaźników tablicy wierzchołków OpenGL ES.
  • Niektóre starsze procesory graficzne nie obsługiwały OpenGL 2.1 lub nowszej wersji (co jest wymagane) albo miały inne problemy z niezawodnością. Te problemy mogą spowodować awarię emulatora przy uruchamianiu lub jego blokowanie albo być niemożliwe do użycia przy domyślnym ustawieniu GPU. Jeśli wykryje, że te GPU są używane, emulator automatycznie przełączy się na procesor graficzny Swiftshader.
  • Rozwiązaliśmy problem, który powodował, że emulator nie publikował prawidłowego framebuffera, jeśli w momencie wywołania funkcji eglSwapBuffers parametr FBO != 0 był powiązany.
  • Rozwiązaliśmy problem polegający na tym, że wirtualny wyświetlacz Androida wyświetlał się tylko w lewym górnym rogu. Uważamy, że było to spowodowane nieprawidłowo skonfigurowanymi zmiennymi środowiskowymi Qt. Emulator zastępuje teraz wszystkie zmienne środowiskowe powiązane ze skalowaniem Qt.
  • Rozwiązaliśmy problem, który powodował awarię emulatora w niektórych sytuacjach podczas wczytywania aplikacji GLES1 ze migawki.
  • Rozwiązano problemy z jednoczesnością w OpenGL i uruchamianiu wątków renderowania, które mogły powodować podwójne zwalnianie pamięci lub uszkodzenie danych.
  • Emulator Androida obsługuje teraz skompresowaną obsługę skompresowanej tekstury ASTC LDR (GL_KHR_texture_compression_astc_ldr) w przypadku obrazów systemowych korzystających z interfejsu API na poziomie 28 lub wyższym.
  • Większość współczesnych procesorów graficznych powinna teraz mieć możliwość domyślnego uruchamiania emulatora z włączonym standardem OpenGL ES 3.x bez użycia flagi funkcji GLESDynamicVersion.
  • -gpu guest (renderowanie programowe w trybie gościa) zostało wycofane. Systemowe obrazy API w poziomie 28 lub wyższym są teraz automatycznie przełączane na Swiftshader (-gpu swiftshader_indirect).
  • Jeśli emulator jest uruchamiany z wiersza poleceń za pomocą flagi -no-window, domyślnym renderowaniem jest teraz Swiftshader.

Lokalizacja

  • Emulator może teraz aktualizować położenie wraz z szerokością i długością geograficzną. Czujnik magnetyczny dostosowuje się dynamicznie do magnetycznego kierunku północnego, wywnioskowując ruch podczas odtwarzania pliku GPX lub KML.
  • Szybkość urządzenia można teraz ustawić na stronie Lokalizacja.
  • W przypadku odtwarzania pliku GPX lub KML szybkość jest ustawiana automatycznie, a po zakończeniu odtwarzania jest ustawiana na 0.
  • Wysokość nie jest już ograniczona do przedziału od -1000 do +10 000 metrów.
  • Rozwiązaliśmy problem, który powodował, że wirtualna lokalizacja GPS nie była aktualizowana okresowo, chyba że okno rozszerzonych ustawień zostało otwarte co najmniej raz.

Aparat

W systemie Windows obsługuje teraz więcej kamer internetowych, ponieważ emulator dynamicznie zmienia rozmiar klatek przesyłanych z kamery internetowej. Ta funkcja zapobiega też temu, aby błędy w dostarczonej klatce powodowały zawieszanie się emulatora.

Sklep Play

Aby rozwiązać problemy z brakiem miejsca na dysku w przypadku obrazów Sklepu Play, emulator automatycznie zmienia rozmiar partycji userdata na 6 GB podczas uruchamiania z nową maszyną wirtualną AVD Sklepu Play.

Ogólne ulepszenia i poprawki dotyczące jakości

  • Niektórzy użytkownicy zgłaszali, że emulator działa wolno. Ustaliliśmy jedną możliwą przyczynę, w której w katalogu tymczasowym emulatora znajduje się za dużo nieaktualnych plików. Jako obejście problemu emulowany system nie przechowuje już plików sprawdzania działania ADB w tym katalogu. Może też pomóc usunięcie zawartości tego folderu. W zależności od systemu operacyjnego folder znajduje się w jednym z tych miejsc:
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS lub Linux: /tmp/android-<username>/*
  • Jeśli emulator nie może się uruchomić z powodu niewystarczającej ilości wolnej pamięci RAM, wyświetli się komunikat o błędzie. Jeśli używasz systemu Windows i zauważysz, że jest wolna pamięć RAM, ale nadal nie możesz uruchomić emulatora, może to oznaczać, że został przekroczony limit zasobów. Więcej informacji o tym problemie znajdziesz na stronie rozwiązywania problemów z emulatorem.
  • Opcja wiersza poleceń -sysdir zastępuje teraz poprawnie wywnioskowany katalog obrazów systemu.
  • Modem wirtualny obsługuje teraz zapytanie +MAI z informacjami o aktywności modelu.
  • Rozwiązano różne problemy z wyciekami i uszkodzeniami pamięci oraz z wykorzystaniem procesora. Jeśli występują awarie, wycieki pamięci lub inne przypadki wysokiego wykorzystania zasobów, utwórz zgłoszenie w Issue Tracker.
  • Rozwiązaliśmy problem, który powrócił w systemie macOS 10.14. Używanie słuchawek Bluetooth z emulatorem powodowało ogólne pogorszenie jakości dźwięku. Aby temu zapobiec, emulator nie używa teraz dźwięku Bluetooth w systemie macOS. (Problem 37070892)
  • Rozwiązaliśmy problem występujący w Windowsie, w ramach którego zegar w emulatorze nie był ustawiony na odpowiedni czas.
  • Rozwiązaliśmy problemy z powolnością i zawieszeniami emulatora w systemach Linux z twardymi dyskami talerzowymi (HDD).
  • Naprawiono niektóre ostrzeżenia podczas kompilacji, które mogły prowadzić do uszkodzenia stosu na komputerach Mac.
  • Rozwiązaliśmy problemy, które mogły powodować mylące raporty o zawieszeniu.
  • Rozwiązaliśmy problem z niszczeniem puli wątków, który mógł powodować awarię, jeśli jeden z wątków nie został utworzony.
  • Rozwiązaliśmy problem z systemem macOS, który powodował niestabilną pracę zegarów, a co za tym idzie zawieszanie się aplikacji i inne dziwne zachowania. Jeśli emulowany system zawiesza się na komputerze Mac, utwórz zgłoszenie w Issue Tracker.
  • Rozwiązaliśmy problem, który powodował, że zamykanie emulatora wyłączało interfejs użytkownika, ale nie zamykano emulatora.
  • Naprawiono problemy związane z sporadycznym zawieszaniem się aplikacji, w tym przerwanie działania z powodu otwarcia zbyt wielu wystąpień /dev/urandom.
  • Rozwiązaliśmy problem, który powodował, że emulator nie uruchamiał się po raz pierwszy w przypadku wymuszania zakończenia ADB.
  • Kompilacja MIPS została usunięta. Jeśli nadal potrzebujesz MIPS, utwórz zgłoszenie w Issue Tracker.
  • Rozwiązaliśmy problem, który powodował uszkodzenie połączeń ADB podczas wczytywania migawki.
  • Rozwiązaliśmy problem polegający na tym, że okno emulatora miało ślad obrazu lub teleportowało się poza ekran podczas wznawiania zrzutu ekranu, gdy orientacja urządzenia różniła się od domyślnej orientacji AVD.
  • Rozwiązaliśmy problemy z awariami podczas zapisywania migawek.
  • W systemie Linux systemy plików btrfs mogą powodować znaczne spowolnienie, ponieważ emulator automatycznie zapisuje migawki i używa kopii na zapis dla swoich dysków wirtualnych. Zalecamy wyczyszczenie katalogu ~/.android/avd i uruchomienie tego polecenia w pustym katalogu ~/.android/avd:
    chattr +C
    
    Spowoduje to utworzenie nowych zrzutów w folderze, w którym kopiowanie podczas zapisu jest wyłączone.

HAXM 7.3.2

Ponownie przypominamy, że musisz zainstalować HAXM 7.3.2, aby najnowsze obrazy systemu działały prawidłowo na emulatorze. HAXM 7.3.2 powinien być już dostępny na kanale stabilnym. Można go też zainstalować ręcznie z witryny https://github.com/intel/haxm/releases.

Oto kilka problemów rozwiązanych w tej wersji HAXM:

  • Naprawiono przypadkowe awarie systemów operacyjnych gościa, które używają najnowszego jądra Linuksa (≥ 4.6). np. Ubuntu 18.04 (#39, #74).
  • Naprawiono błąd w emulatorze instrukcji x86, który mógł prowadzić do awarii hosta (#93).

Wycofanie obsługi 32-bitowych systemów Windows

Ze względu na niskie wykorzystanie i wysokie koszty utrzymania planujemy wycofać 32-bitową wersję emulatora Androida, która działa w systemie Windows. Zanim usuniemy 32-bitową wersję emulatora Androida, a dopiero potem zakończy się jego cykl życia, wdrożymy plan migracji. Chętnie poznamy Twoją opinię na temat tej przyszłej zmiany.

Jeśli korzystasz obecnie z 32-bitowej wersji emulatora Androida, która działa w Windowsie, poinformuj nas o tym w Issue Trackerze i podaj, jak możemy Ci pomóc.

27.3.10 (sierpień 2018 r.)

Ta aktualizacja zawiera następującą poprawkę błędu:

Poprawka konfiguracji rozmiaru pamięci RAM

Niektórzy użytkownicy zgłaszali, że emulacja działa wolno. Zidentyfikowaliśmy jedną możliwą przyczynę, w której rozmiar pamięci RAM AVD w pliku config.ini AVD był ustawiony niepoprawnie.

Aby temu zaradzić, emulator zwiększa minimalny poziom pamięci RAM w przypadku obrazów, które używają poziomu API 26 lub wyższego, do domyślnego poziomu w Android Studio, czyli 1536 MB. Jeśli plik config.ini w Twoim AVD nie zawiera informacji o hw.ramSize w megabajtach, utwórz zgłoszenie w Narzędziu do śledzenia błędów. Plik config.ini znajdziesz w tej lokalizacji:

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

27.3.9 (lipiec 2018 r.)

Ta aktualizacja zawiera następujące ulepszenia i poprawki błędów:

Poprawiono komunikaty o błędach w funkcji Windows Hypervisor Platform.

Niektórzy użytkownicy mieli problemy z diagnozowaniem, dlaczego nie udało się zainicjować platformy Windows Hypervisor (WHPX), gdy aktywowali emulator WHPX. Aby ułatwić diagnozowanie tych problemów, dodaliśmy więcej komunikatów o błędach. Aby włączyć te komunikaty o błędach, uruchom emulator z poziomu wiersza poleceń, używając flagi -verbose.

Ogólne poprawki

  • Naprawiliśmy błędy OpenGL, które występowały podczas wczytywania zrzutu w aplikacji aparatu.

27.3.8 (lipiec 2018 r.)

Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji oraz poprawki błędów.

Zrzuty danych

Teraz możesz zapisać wiele zrzutów AVD dla danej konfiguracji urządzenia i wybrać, które z nich mają zostać wczytane po uruchomieniu emulatora.

Począwszy od Android Studio 3.2 Canary 13, każda konfiguracja urządzenia ma opcję w ustawieniach zaawansowanych w oknie Konfiguracja urządzenia wirtualnego, dzięki której możesz określić, który zrzut AVD ma być wczytywany podczas uruchamiania programu AVD.

Aby uwzględnić rozszerzenie funkcji zrzutów, dodaliśmy kategorię Zrzuty do okna Rozszerzone ustawienia. Ta nowa karta zawiera elementy sterujące do zapisywania i wczytywania migawek AVD, w tym elementy sterujące do zapisywania i wczytywania migawki szybkiego uruchamiania, które wcześniej znajdowały się w karcie Ustawienia.

Możesz edytować nazwę i opis każdego zapisanego zrzutu ekranu.

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żych ilości pamięci RAM. Dodatkowo dzięki tej aktualizacji HAXM i emulatorowi w wersji 27.3 lub nowszej zrzuty na żądanie wczytują zawartość pamięci RAM, zamiast wczytywać cały zrzut po uruchomieniu urządzenia wirtualnego. Ta zmiana powinna znacznie skrócić czas potrzebny do załadowania zrzutu ekranu.

Więcej informacji znajdziesz w artykule Konfigurowanie przyspieszenia maszyn wirtualnych.

27.2.9 (maj 2018 r.)

Ta aktualizacja zawiera kilka nowych funkcji, ulepszenia dotychczasowych funkcji oraz poprawki błędów.

Nagrywanie ekranu

Teraz możesz nagrywać filmy i dźwięk w Emulatorze Androida oraz zapisywać nagrania w pliku WebM lub animowanym GIF-ie.

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

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

Aby rozpocząć nagrywanie ekranu, kliknij przycisk Rozpocznij nagrywanie na karcie Nagrywanie ekranu. Aby zakończyć nagrywanie, kliknij Zatrzymaj nagrywanie.

Elementy sterujące odtwarzaniem i zapisywaniem nagranego filmu znajdują się u dołu karty Nagrywanie ekranu. Aby zapisać film, wybierz WebM lub GIF z menu u dołu karty i kliknij Zapisz.

Możesz też nagrać i zapisać nagranie ekranu z emulatora, używając tego polecenia w wierszu poleceń:

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

Zrzuty ekranu

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

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

Zrzuty ekranu są zapisywane w formacie PNG.

Kamera do wirtualnej sceny i ARCore

Dzięki nowej kamerze do tworzenia wirtualnych scen, która umożliwia eksperymentowanie z rzeczywistością rozszerzoną w wirtualnym środowisku, tworzenie i testowanie aplikacji do rzeczywistości rozszerzonej (AR) za pomocą ARCore jest teraz jeszcze łatwiejsze.

Informacje o korzystaniu z kamery scen wirtualnych w emulatorze znajdziesz w artykule Uruchamianie aplikacji AR w emulatorze Androida.

Sklep Google Play na obrazach urządzenia Pixel

Sklep Google Play jest teraz dostępny na obrazach urządzeń Pixel i Pixel 2. Jest to oznaczone w Menedżerze AVD w Androidzie Studio 3.2 lub nowszej wersji za pomocą logo Google Play w kolumnie Sklep Play. Urządzenia AVD z włączonym Sklepem Google Play mają w oknie Rozszerzone elementy sterujące kartę Google Play, która zapewnia wygodny przycisk aktualizowania Usług Google Play na urządzeniu.

Zrzuty danych

Możesz teraz wczytać zrzut szybkiego uruchamiania bez ponownego uruchamiania emulatora. Aby wczytać zrzut, otwórz okno Extended Controls (Ustawienia rozszerzone) na stronie Settings (Ustawienia) i kliknij przycisk Load Now (Wczytaj teraz).

Wprowadziliśmy wiele ulepszeń w zakresie wczytywania i zapisywania zrzutów, aby zwiększyć wydajność wykorzystania zasobów i zminimalizować czas trwania każdej operacji. Jeśli nadal występują nietypowo długie czasy zapisywania, zgłoś problem, podając szczegóły dotyczące procesora, pamięci RAM i ustawień oprogramowania antywirusowego, zapory sieciowej lub oprogramowania zabezpieczającego, które są uruchomione.

Renderowanie za pomocą Skia

Jeśli używasz obrazów dla interfejsu API 27 lub nowszego, emulator może renderować interfejs użytkownika Androida za pomocą Skia, co może sprawić, że renderowanie będzie płynniejsze i bardziej wydajne.

Obecnie korzystanie z Skia wymaga wyraźnego włączenia tej usługi.

Aby włączyć renderowanie Skia, w powłoce adb użyj tych poleceń:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

Aparat

W systemie Windows emulator Androida korzysta teraz z Media Foundation jako backendu kamery internetowej, co znacznie poprawia wydajność i liczbę klatek na sekundę podczas rejestrowania obrazu z kamery internetowej (do 720p przy 30 FPS).

Na komputerze Mac możesz teraz używać kamery internetowej 0 i 1 jednocześnie.

Różne

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

Możesz teraz używać adresów SMS-owych zawierających znaki alfanumeryczne.

Poprawki

  • Wersję emulatora Androida dla systemu Linux utworzono teraz przy użyciu nowoczesnego łańcucha narzędzi języka C++ w języku Clang. Ta zmiana rozwiązuje problem z brakiem uruchomienia emulatora z powodu błędów libGL i libstdc++.
  • Usunięto kilka przyczyn awarii i zawieszania się aplikacji.
  • Aby uniknąć awarii i zawieszania się emulatora spowodowanego brakiem wystarczającej ilości wolnego miejsca na dysku, emulator sprawdza teraz, czy na początku jest wystarczająco dużo wolnego miejsca na dysku. Nie uruchomi się, jeśli nie ma co najmniej 2 GB wolnego miejsca.
  • Rozwiązaliśmy problem, który uniemożliwiał renderowanie niektórych gier w Unity.
  • Rozwiązaliśmy problem z DNS, który uniemożliwiał emulowanemu urządzeniu nawiązanie połączenia z siecią.
  • Rozwiązaliśmy problem, który powodował, że zmiany w pamięci wewnętrznej przypisanej do AVD nie działały w oknie Konfiguracja urządzenia wirtualnego.
  • Rozwiązaliśmy problem 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 działały, dopóki nie było otwarte okno rozszerzonych elementów sterujących.
  • Rozwiązaliśmy problem, który powodował, że funkcje kopiowania i wklejania z poziomu gospodarza nie działały, chyba że okno Rozszerzone opcje było otwierane co najmniej raz.
  • Prostokąt zmiany rozmiaru emulatora bez ramek został zaktualizowany, aby lepiej pasował do motywu wizualnego emulatora.
  • Telefon i SMS-y są teraz prawidłowo dezaktywowane, gdy włączony jest tryb samolotowy.
  • Rozwiązaliśmy problem, który powodował wyłączenie funkcji SMS-ów i komórek po załadowaniu migawki.
  • Nie będziesz już otrzymywać fałszywych ostrzeżeń, takich jak:“Unable to open... \pstore.bin. Permission denied.”
  • Rozwiązaliśmy problem, który uniemożliwiał przemieszczanie okna AVD na niektórych ekranach Mac.
  • Rozwiązaliśmy problemy z migotaniem i pustymi ekranami na nowszych komputerach MacBook Pro podczas uruchamiania AVD z interfejsem Pixel 2 XL.
  • Rozwiązaliśmy problemy z pustymi ekranami podczas przełączania w tryb powiększony, gdy aktywny był emulator bezramkowy.
  • Rozwiązaliśmy problem, który powodował, że wygląd skóry i emulatora urządzenia nie były zsynchronizowane po powiększeniu.

Jeśli problemy z zawieszaniem się lub inne problemy z niestabilnością nadal występują, zgłoś problem.

27.1.12 (marzec 2018 r.)

Ta aktualizacja zawiera poprawki tych problemów:

  • Po uruchomieniu emulatora jakość dźwięku Bluetooth jest gorsza. (Problem 37095756)
  • Lokalizacje wysłane do jednego emulatora zostały wysłane do wszystkich. (Problem 73450633)
  • Lokalizacja GPS ustawiona w konsoli została zastąpiona wartościami określonymi w menu Rozszerzone elementy sterujące > Lokalizacja w graficznym interfejsie użytkownika. (Problem 73471760)

Jeśli problemy z zawieszaniem się lub inne problemy z niestabilnością nadal występują, zgłoś problem.

Po tej aktualizacji, bieżącym obrazie systemu oraz wersji testowej Androida Studio możesz używać emulatora Androida do uruchamiania aplikacji rzeczywistości rozszerzonej stworzonych przy użyciu ARCore. Szczegółowe wymagania i instrukcje znajdziesz w artykule Uruchamianie aplikacji AR w Emulatorze Androida.

27.1.10 (luty 2018 r.)

  • Rozdzielczość aparatu

    Z podłączonej kamery internetowej można teraz rejestrować klatki w jakości 720p.

    Aby współpracować z obrazami systemowymi Androida 8.1 (poziom interfejsu API 27) lub nowszym, każda podłączona kamera internetowa musi mieć możliwość rejestrowania klatek w rozdzielczości 720p.

  • Poprawki

    • Rozwiązaliśmy problem, który powodował, że nagrywanie z kamery internetowej czasem wyświetlało zniekształcony lub całkowicie zielony obraz.
    • Naprawiono błąd, który umożliwiał wyświetlanie tego komunikatu nawet wtedy, gdy nie było żadnego zawieszenia: „emulator: ERROR: wykrył zawieszający się wątek „Qt event loop”. Brak odpowiedzi przez 15 000 ms”.

Jeśli problemy z zawieszaniem się lub inne problemy z niestabilnością nadal występują, zgłoś problem.

27.1.7 (luty 2018 r.)

  • Okno emulatora bez ramki:

    Domyślnie emulatory z plikami skórki urządzenia są teraz wyświetlane bez obramowania okna. Aby wyświetlić obramowanie okna, w panelu Ustawienia w oknie Rozszerzone ustawienia włącz opcję Pokaż obramowanie okna wokół urządzenia.

  • Ulepszenia funkcji szybkiego uruchamiania przyspieszające pracę ze zrzutami AVD:

    • W dowolnym momencie możesz zapisać migawkę AVD, używając przycisku Zapisz teraz w panelu Ustawienia w oknie Rozszerzone ustawienia.
    • W wielu przypadkach emulator skraca czas potrzebny na zapisanie zrzutu, zapisując tylko różnicę między obecnym stanem a wcześniej zapisanym zrzutem.

    Szczegółowe informacje znajdziesz w dokumentacji dotyczącej szybkiego uruchamiania.

  • Emulator został zaktualizowany do wersji QEMU 2.9.

    Oto niektóre z nich:

    • Optymalizacja operacji wejścia/wyjścia i dokładniejsze blokowanie wątków operacji wejścia/wyjścia w celu zwiększenia wydajności.
    • Naprawione błędy od wersji QEMU 2.8 (26.1.4).
    • Nowa implementacja backendu HAXM.

    Pełną listę zmian znajdziesz w historii zmian QEMU 2.9.

  • Implementacja Swiftshader zgodna ze standardem OpenGL ES 3.0:

    Renderer Swiftshader emulatora jest teraz w pełni zgodny z OpenGL ES 3.0. Szczegółowe informacje o renderowaniu Swiftshader znajdziesz w sekcji Ustawienia > ZaawansowaneRozszerzonych ustawieniach.

  • Poprawki

    • Rozwiązaliśmy problem polegający na tym, że udostępnianie schowka nie działało, chyba że opcja Włącz udostępnianie schowka została wyłączona i ponownie włączona.
    • Rozwiązaliśmy problem z zawieszaniem się podczas używania modułu renderowania Swiftshader w przypadku AVD o niskiej rozdzielczości.

27.0.5 (styczeń 2018 r.)

  • ANGLE do renderowania w Windows jest teraz domyślnie wyłączony.

    Jeśli ANGLE działa lepiej, możesz ponownie włączyć to narzędzie za pomocą parametru -gpu angle_indirect w wierszu poleceń. Możesz też otworzyć okno Rozszerzone ustawienia, przejść do Ustawienia > Zaawansowane i wybrać ANGLE D3D11 jako ustawienie dla renderowania OpenGL ES.

  • Rozwiązaliśmy problem polegający na tym, że kombinacja klawiszy Shift + B nie powodowała wpisania wielkiej litery B.

27.0.2 (grudzień 2017 r.)

  • Nowa funkcja szybkiego uruchamiania zapewnia krótsze czasy uruchamiania emulatora na podstawie zrzutu instancji AVD.

    Szybkie uruchamianie jest domyślnie włączone we wszystkich maszynach AVD. Chociaż przy pierwszym uruchomieniu AVD urządzenie musi wykonać „na zimno” (tak samo jak w przypadku włączania urządzenia), wszystkie kolejne uruchomienia są szybkie, a system jest przywracany do stanu, w którym został zamknięty emulator (podobnie do wybudzania urządzenia).

    Jeśli chcesz kontrolować, kiedy emulator ma zapisywać migawkę, otwórz okno Rozszerzone opcje emulatora i kliknij Ustawienia. Tutaj możesz wybrać jedno z tych ustawień Zapisz stan szybkiego uruchamiania po wyjściu:

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

    Twój wybór dotyczy tylko aktualnie otwartego okna czatu na żywo.

    Więcej informacji znajdziesz w dokumentacji szybkiego uruchamiania.

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

  • W celu zwiększenia stabilności aplikacji OpenGL ES 2 i nowszych emulator korzysta teraz z profilu podstawowego OpenGL, jeśli jest dostępny.

  • Nowe opcje renderowania za pomocą Swiftshadera lub ANGLE:

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

    Starsze opcje -gpu swiftshader i -gpu angle zostały wycofane. W oknie Rozszerzone opcje opcje „SwiftShader” i „ANGLE” w ustawieniu „Renderowanie OpenGL ES” na stronie Ustawienia > Zaawansowane korzystają teraz z wariantów *_indirect.

  • Naprawiono różne inne błędy.

26.1.4 (sierpień 2017 r.)

To drobna aktualizacja z poprawkami błędów i tymi ulepszeniami konfiguracji GPU:

  • Włączanie animacji uruchamiania podczas korzystania z renderowania ANGLE
  • Wyłącz GLES3 podczas działania na silniku renderowania ANGLE

26.1.3 (sierpień 2017 r.)

To jest niewielka aktualizacja z poprawkami błędów, ulepszeniem wydajności i niewielkimi zmianami funkcji.

  • Ta wersja jest teraz wymagana do korzystania z najnowszych obrazów systemu Android 8.0. Są one zgodne z Treble i mają oddzielne partycje vendor.img.
  • Nowa wersja HAXM 6.2.0 jest już dostępna (sprawdź Menedżera pakietu SDK). Obejmuje ona te zmiany:
    • Lepsze wykorzystanie pamięci. Maksymalny zestaw roboczy pamięci przypięty przez HAXM nie jest już równy rozmiarowi pamięci RAM AVD. Zamiast tego pamięć jest przenoszona na żądanie. Dzięki temu emulowany system będzie działał bardziej niezawodnie na maszynach z mniejszymi ilościami pamięci RAM.
    • Emulator z HAXM 6.2.0 może teraz uruchamiać się szybciej w systemie macOS, pomijając czasochłonną fazę inicjalizacji.
  • Ulepszenia w konfiguracji GPU
    • Rozwiązaliśmy problemy z czarnym ekranem podczas uruchamiania, gdy wykonywane jest renderowanie oprogramowania po stronie gościa. Zamiast tego używane jest renderowanie oprogramowania po stronie hosta za pomocą Swiftshader. Najnowsze wersje obrazów systemowych dla poziomów interfejsu API 19–25 z interfejsami Google API powinny mieć działające renderowanie po stronie gościa.
    • Rozwiązaliśmy problem, który powodował, że emulator był przełączany na mechanizm renderowania programowego ze względu na wykrywanie obecności starszych GPU, ale emulator działał na osobnym GPU. Które GPU będą przełączane na renderowanie za pomocą ANGLE lub Swiftshader, jest określane w ten sposób:
      • Starsze iGPU Intela mają problemy ze sterownikami zarówno w przypadku OpenGL, jak i sterowników ANGLE D3D. Użytkownicy z grafiką Intel HD Graphics w wersji 3xxx lub starszej będą używać Swiftshadera.
      • Niektórzy użytkownicy zgłaszali brak możliwości korzystania z obrazów poziomu 25 interfejsu API z powodu błędu, który powodował, że „Pixel Launcher ciągle się zatrzymuje”. Wygląda na to, że jest to problem z sterownikami w przypadku niektórych modeli Intel HD 4xxx. Zostaną one automatycznie przełączone na korzystanie z ANGLE.
    • Aby uzyskać najlepsze wyniki w emulacji karty graficznej, zalecamy użycie osobnej karty graficznej NVIDIA lub AMD albo nowszej karty graficznej Intel (Iris, HD 5xxx, HD 5xx/6xx).
    • Rozwiązaliśmy problem, który powodował, że emulacja OpenGL nie mogła się uruchomić (nie udało się zainicjować emulacji OpenGL), jeśli AVD zostało skonfigurowane za pomocą hw.gpu.mode=host, a emulator był uruchamiany w zdalnym kliencie pulpitu.
    • Uściślone ustawienia „Poziom interfejsu OpenGL ES API (wymaga ponownego uruchomienia)” oraz dodanie opcji obniżenia poziomu interfejsu OpenGL ES 3 do OpenGL ES 2, jeśli występują problemy lub trzeba przeprowadzić testy na niższym poziomie interfejsu OpenGL ES API.
    • Mechanizm renderowania Mesa został wycofany. Komponent hw.gpu.mode=mesa zostanie automatycznie przełączony 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.
    • Hypervisor.framework jest teraz domyślnie włączony w systemie macOS w przypadku 32-bitowych obrazów x86, aby poprawić wydajność i zgodność z systemem macOS. Jeśli napotkasz jakieś problemy, zgłoś błąd i dołącz HVF = off do ~/.android/advancedFeatures.ini (jeśli taki plik nie istnieje, utwórz go).
    • Rozwiązaliśmy problemy, które powodowały brak połączenia z internetem lub problem z podłączeniem debugera podczas korzystania z Hypervisor.framework.
    • Aby zwiększyć zgodność i wydajność przechwytywania z kamery internetowej, zastąpiliśmy przechwytywanie na podstawie biblioteki QTKit za pomocą bufora opartego na bibliotece AVFoundation.
  • Dodano obsługę Wi-Fi w niektórych obrazach systemowych (obecnie tylko na poziomie interfejsu API 25). Dostępny jest punkt dostępu o nazwie „AndroidWifi”, z którym Android łączy się automatycznie. Obsługę Wi-Fi można wyłączyć, uruchamiając emulator z parametrem wiersza poleceń -feature -Wifi.
  • Niektórzy użytkownicy martwili się, że obrazy systemowe o stałym rozmiarze w Sklepie Play nie mają wystarczającej ilości miejsca. Dlatego domyślnie zwiększyliśmy rozmiar do 2 GB (z 800 MB).
  • Dodano skrót klawiszowy (Ctrl + Shift + U) umożliwiający otwieranie strony interfejsu zgłaszania błędów bezpośrednio z strony ustawień.
  • Rozwiązaliśmy problem, który powodował, że w przypadku użycia starszego procesora z technologiami Intel x86 EPT, ale bez UG emulator nie uruchamiał się, gdy skonfigurowano więcej niż 1 rdzeń.
  • Rozwiązaliśmy problem, który powodował nieprawidłowe wykrywanie funkcji HyperV, jeśli emulator sam działał w hipernadzorcy Xen.
  • Rozwiązaliśmy problem, który powodował zawieszanie się emulatora podczas uruchamiania w niektórych konfiguracjach Linuksa.

26.1.2 (lipiec 2017 r.)

Ta wersja zawiera nowe funkcje i ulepszenia działania aplikacji.

  • Dodano możliwość definiowania niestandardowej konfiguracji serwera proxy HTTP w rozszerzonych kontrolkach (kliknij Więcej , a następnie UstawieniaSerwer proxy). Domyślnie emulator korzysta z ustawień serwera proxy HTTP Android Studio, ale na tym ekranie możesz zdefiniować ręczną konfigurację serwera proxy.

  • Dodano obsługę VNC dla karty graficznej w trybie gościa, aby można było wyświetlać i sterować emulatorem zdalnie. Możesz na przykład uruchomić emulator i pozwolić VNC na nasłuchiwać portu 5901 w następujący sposób:

    1. Wykonaj: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Otwórz program do wyświetlania VNC, np. tightvnc viewer, aby połączyć się z portem 5901.

      • Aby użyć wbudowanego klienta udostępniania ekranu na Macu, podczas uruchamiania emulatora wymagane jest hasło VNC. Aby ustawić hasło, użyj tego polecenia:

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        Następnie wpisz change vnc password w konsoli i hasło.

    Android O nie jest obecnie obsługiwany w trybie VNC.

  • Na ekranie pomocy dotyczącym rozszerzonych elementów sterujących dodano przycisk Zgłoś błąd (kliknij Więcej , a następnie kliknij Pomoc i Pomoc do emulatora). Gdy klikniesz Zgłoś błąd, otworzy się okno, w którym możesz zobaczyć szczegóły zgłoszenia błędu, takie jak zrzut ekranu, informacje o konfiguracji AVD i dziennik raportu o błędzie. Następnie możesz zapisać raport samodzielnie lub zgłosić problemy z emulatorem.

  • Dodano czujnik żyroskopu do panelu emulatora i czujników wirtualnych. Wymaga to obrazu systemu z obsługą żyroskopu (obecnie poziom API 24 i 25).

  • Dodano preferowany przez hosta serwer DNS do listy serwerów DNS Qemu w Windows, gdy wiele wirtualnych interfejsów sieciowych na hoście wprowadza wiele adresów DNS, które nie działają w emulatorze.

  • Dodaliśmy eksperymentalną obsługę 32-bitowych obrazów x86 w systemie macOS Hypervisor.Framework w systemach macOS 10.10 i nowszych przy użyciu flag serwera, co powinno poprawić czas uruchamiania i wydajność.

    • Jeśli wystąpią problemy, dodaj wiersz HVF = off w pliku ~/.android/advancedFeatures.ini.
  • OpenGL ES 3.x jest teraz domyślnie włączony w przypadku obrazów systemu i usług hosta GPU, które obsługują OpenGL ES 3. Obecnie OpenGL ES 3 jest obsługiwany tylko na hostach z Androidem O (poziom API 26) oraz systemami Windows i Linux.

    • Jeśli wystąpią problemy z OpenGL ES 3, dodaj wiersz GLESDynamicVersion = off w pliku ~/.android/advancedFeatures.ini.
  • Emulator używa teraz offscreenowych FBOs OpenGL do wszystkich operacji renderowania, z wyjątkiem publikowania obrazów na wyświetlaczu, co powinno pomóc w rozwiązaniu problemów z spójnością kolorów na różnych platformach.

  • Po zebraniu danych o nagłym spowolnieniu działania emulatora stwierdziliśmy, że problem może być związany z niektórymi interakcjami między starszymi sterownikami OpenGL firmy Intel a aktualizacjami systemu Windows. Dlatego użytkownicy kart Intel HD 4000, 3000 i 2000 (oraz powiązanych z nimi procesorów graficznych) mają teraz domyślnie ustawiony renderer D3D (ANGLE) lub Swiftshader (renderer oprogramowania).

26.0.0 (marzec 2017 r.)

Ta wersja jest zgodna z poziomem interfejsu API 26. Zawiera też kilka ulepszeń wydajności i poprawek błędów.

Mała aktualizacja 26.0.3 (maj 2017 r.)

  • Dodaje flagi funkcji, które można aktualizować online, aby szybko rozwiązywać problemy wynikające z problematycznych konfiguracji sprzętowych. Dzięki temu Google może wdrażać poprawki i funkcje zależne od konfiguracji użytkownika poprzez aktualizowanie flag po stronie serwera. Jeśli zauważysz problemy z konkretnym sprzętem, zgłoś błąd, abyśmy mogli zbadać sprawę.
  • Nowa obsługa wejścia obrotowego w przypadku obrazów systemowych na Androida Wear na poziomie API 25. Aby emulować pokrętło na urządzeniu Wear, w rozwiniętym oknie kliknij kartę Pokrętło.
  • Rozmiar okna Raportowanie awarii można teraz zmieniać, a okno to nie resetuje się bez podania odpowiedzi na pytanie Kiedy wysyłać raporty o awariach Zapytaj.
  • Aby zapobiec wyczerpaniu się miejsca w 2-gigabajtowej przestrzeni adresowej wirtualnej, emulowany system 32-bitowy wymaga teraz, aby maksymalny rozmiar pamięci RAM AVD był mniejszy niż 512 MB.
  • Dodaje obsługę ścieżek bezwzględnych w obrazach emulatora.
  • Dodaje nową kartę w rozszerzonym oknie dla obrazów Sklepu Google Play, na której wyświetlana jest wersja Usług Google Play oraz przycisk umożliwiający sprawdzenie, czy są dostępne aktualizacje Usług Google Play.
  • Dodaje menu, w którym można wybrać procesor OpenGL na stronie Ustawienia emulatora. Jeśli masz problemy z sterownikiem OpenGL na komputerze z systemem Windows, spróbuj użyć opcji ANGLE (D3D11) lub ANGLE (D3D9) (wymaga ponownego uruchomienia). Jeśli masz problemy ze sterownikiem OpenGL na komputerze z systemem innym niż Windows, spróbuj użyć procesora graficznego Swiftshader (wymaga ponownego uruchomienia).
  • Naprawia rzadką awarię przy zamykaniu, gdy emulator otrzymuje zarówno polecenia exit, jak i minimize.
  • Rozwiązaliśmy problem ze skalowaniem podczas zmiany wyświetlaczy na komputerze Mac. (numer 268296)
  • Rozwiązano problem, który powodował, że po wznowieniu pracy komputera-hosta z trybu uśpienia lub po długim czasie działania emulatora emulator zajmował 300% procesora i nie zwalniał go.
  • Naprawiono błąd powodujący awarię podczas zamykania emulatora.

Aktualizacje z HAXM w wersji 6.1.1 (marzec 2017 r.)

Uwaga: HAXM w wersji 6.1.1 jest dostępna dla użytkowników Maców w menedżerze pakietu SDK od 30 marca. Wkrótce będzie dostępna także 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 te aktualizacje:

  • Włącza emulację jednostek monitorowania wydajności (PMU). (Numer 223377)
  • Poprawki dotyczące współistnienia z VirtualBox i Dockerem na komputerach Mac. (Problem 197915)
  • Poprawia komunikat o błędzie instalacji wyświetlany, gdy instalator nie może wykryć Intel VT-x w systemie Windows, zwykle z powodu włączenia Hyper-V.
  • Dodano obsługę przyspieszania emulatora Androida w maszynie wirtualnej Windowsa opartej na Hyper-V. Ta aktualizacja wymaga, aby instancja hosta Hyper-V (ta, która zarządza maszyną wirtualną Windows/gościem) korzystała z najnowszej wersji Hyper-V z włączoną wirtualizacją zagnieżdżoną. Hyper-V musi być wyłączony w instancji Hyper-V gościa (maszynie wirtualnej z systemem Windows).

Zależności

  • Android SDK Platform-Tools w wersji 25.0.4 lub nowszej.
  • Android SDK Tools w wersji 26.0.0 lub nowszej.

Nowe funkcje i poprawki błędów

  • Zgodność z poziomem interfejsu API 26.
  • Pełna zgodność z GLES 2.0. Jeśli hostowy procesor GPU ma zgodne sterowniki OpenGL, emulator przechodzi teraz 100% testów z listy dEQP-GLES2 Androida CTSmustpass. Ta funkcja została wydana w przypadku obrazów na poziomie interfejsu API 24 na platformę x86 (wersja 11 lub nowsza) i wkrótce zostanie uwzględniona we wszystkich obrazach systemowych.
  • Poprawiona wydajność odtwarzania filmów. Emulator przechowuje teraz wszystkie bufory kolorów wideo w wspólnej pamięci hosta/gościa i wykonuje na GPU niezbędną końcową konwersję YUV na RGB. Większość systemów powinna bez problemu obsługiwać rozdzielczość 1080p30. Została ona udostępniona w przypadku obrazów w formacie x86 interfejsu API poziomu 24 (wersja 11 i nowsze), a wkrótce zostanie dołączona 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. Uruchomiony emulator jest wykrywany szybciej i nie przechodzi już w stan „offline” ani „unauthorized”.

25.3.0 (marzec 2017 r.)

W tej wersji Emulator Androida zostanie wydany niezależnie od narzędzi SDK. Ta wersja zawiera wiele ulepszeń wydajności, nowe funkcje i poprawki błędów.

Mała aktualizacja 25.3.1 (marzec 2017 r.)

  • Naprawiono problem z awarią występującą w niektórych konfiguracjach GPU. Wyeliminowano go, wyłączając domyślnie GLAsyncSwap. Ta funkcja została dodana w wersji 25.3.0, aby poprawić czas renderowania klatek i liczby klatek na sekundę w grach i filmach, ale powoduje awarię emulatora w przypadku niektórych nieznanych konfiguracji maszyn. Aby włączyć tę funkcję ręcznie, otwórz plik android_sdk/emulator/lib/advancedFeatures.ini i ustaw GLAsyncSwap = on.

Zależności

  • Android SDK Platform-Tools w wersji 24 lub nowszej.
  • Android SDK Tools w wersji 25.3.0.

Nowe funkcje i poprawki błędów

  • Zaktualizowano silnik emulacji do wersji QEMU 2.7. Obejmuje ona wszystkie najnowsze poprawki błędów, ulepszoną wydajność i nowe funkcje.
  • Nowa obsługa IPv6.
  • Emulator używa teraz SwiftShader jako czystego procesora graficznego opartego na oprogramowaniu na hoście.
  • Ulepszenia wydajności Android Pipe: Android Pipe, główny kanał komunikacji między emulatorem a systemem Android, jest teraz szybszy o kilka rzędów wielkości, ma mniejsze opóźnienie i oferuje lepszą wydajność wielowątkową. Poprawia to wydajność emulatora, między innymi:
    • Zwiększona szybkość przesyłania i pobierania danych przez ADB.
    • lepsza obsługa akceleracji 3D;
    • Zwiększona ogólna responsywność emulatora.
    • Poprawiona wydajność grafiki.
  • Emulator używa teraz buforów po stronie GPU (glBindBuffers/glBufferData), gdy o nie prosi gość, co zmniejsza obciążenie procesora w niektórych aplikacjach.
  • Ulepszona obsługa dźwięku
  • Szybsza operacja wejścia/wyjścia dysku: emulator używa teraz oddzielnych wątków do wysyłania operacji wejścia-wyjścia dysku, co skraca czas oczekiwania i zwiększa przepustowość (ok. 1,5 razy większa szybkość sekwencyjnego wejścia/wyjścia, ok. 5-krotnie większa szybkość wejścia/wyjścia dostępu losowego). Dzięki temu zmniejsza się też liczba opróżnień bufora na dysku, co powoduje znacznie mniejsze obciążenie fizyczne urządzenia.
  • Emulator używa teraz rozproszonych plików do uruchamiania dysku na komputerach z systemem Windows, przyspieszając zarówno pierwsze uruchomienie, jak i uruchamianie „wyczyszczenia danych”. Podczas tworzenia lub resetowania AVD emulator zapisuje na dysku 100–200 MB danych zamiast 2 GB lub więcej.
  • Różne ulepszenia interfejsu:
    • Emulator korzysta teraz z wersji 5.7.0, która zawiera poprawki błędów i ulepszenia wydajności.
    • Inicjowanie interfejsu nie próbuje już wczytywać wszystkich plików wykonywalnych emulatora jako wtyczek Qt, dzięki czemu jest znacznie krótsze, zwłaszcza na dyskach twardych.
    • Interakcje z interfejsem są teraz szybsze i płynniejsze, w tym: obracanie, zmiana rozmiaru okna i otwieranie oraz zamykanie rozszerzonego okna