Arturia – Get Android 11

Versions of the emulator prior to 25.3.0 were distributed as part of the rev-conf.orgSDK Tools.

Đang xem: Arturia

To ensure you have the latest version, check theSDK Manager for updates.

For Emulator versions prior to 25.3.0, see SDK Tools release notes.

For details of bugs fixed in each release, see Studio release updates blog.

30.4.5 (February 23, 2021)

This update includes the following improvements and fixes:

macOS: Fixed issues with audio input distortion.Added support for virtio-vsock in userspace.Future system images will use virtio-console for logcat and kernel messages.Speed up Vulkan rendering.Added support for snapshot debugging on test failure.virtio-gpu: updated definitions to support latest blob resource enums.Added snapshot support for the 'asg' type graphics transports.macOS: Added support for building against macOS SDK 11.1+.KVMclock enabled by default on newer system images.Added support for a heart rate sensor to Wear emulators.Removed libportability Vulkan backend.Added support for more features in modem simulator.

30.0.26 (August 16, 2020)

This update includes several new features, improvements to existing features,and bug fixes.

Foldables support with virtual hinge sensor and 3D view

Added support for hinge sensors for foldable devices. This requires a 11 system image and AVD configuration. 3D foldable view and hingeparameters are now integrated with the existing foldable presets. The followingcan be a used with, for instance, the 7.3 foldable AVD's config.ini file:

hw.sensor.hinge = yeshw.sensor.hinge.count = 1hw.sensor.hinge.type = 1hw.sensor.hinge.ranges = 180-360hw.sensor.hinge.defaults = 180hw.sensor.hinge.areas = 54.7-0hw.sensor.posture_list=4, 3hw.sensor.hinge_angles_posture_definitions=210-360, 180-210hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4Hinge sensor is now enabled by default.

If a foldable device is configured, the emulator now sends hinge angle sensorsupdates and posture changes to the guest. Existing foldable devices will nowupdate hinge sensor angle and posture when the toolbar's fold or unfold buttonsare pressed.


Emulator for ARM64 hosts

Linux emulator source code now supports cross compilation from x86_64 to arm64hosts, enabling running arm64 system images with KVM virtualization. Currently,only -gpu swiftshader_indirect (Swiftshader arm64 host rendering) issupported, but a compatible set of host GPU libEGL/libGLESv2 libraries may alsobe used by replacing lib64/gles_swiftshader with them and then relaunching with-gpu swiftshader_indirect. Snapshots may also not be working (add-no-snapshot to the command line). Instructions:

mkdir emucd emurepo init -u -b emu-master-dev –depth=1repo sync -qcj 12cd external/qemupip install absl-pypip install urlfetchsudo apt-get install crossbuild-essential-arm64python –noqtwebengine –noshowprefixforinfo –target linux_aarch64Support for Apple Silicon is in progress.

virtio-gpu support

Added support on the host side for upcoming virtio-gpu host coherent blobresources.Due to how emulator rendering works, we now process virtio-gpu virtqueue inthe vcpu thread (because rendering is offloaded to other threads anyway).virtio-gpu rendering will be enabled in a future system image and emulatorversion.In a future system image the emulator will be able to run all graphics with avirtio-gpu based stack.

Other new features and enhancements

USB passthrough is now available on Windows using -qemu -usb -deviceusb-host,vendorid=,productid=. (This should alsohave been workng on Linux and macOS already)Updated WebRTC libraries to M83.The emulator now supports audio streaming in containers over WebRTC.darwinn pipe endpoint has been removed.CUDA VPx decode for video is now available, if CUDA VPx decode is available inhardware, via the environment variable rev-conf.org_EMU_MEDIA_DECODER_CUDA_VPX=1.On macOS, SSE 4.1 and 4.2 are now available from inside the guest.On macOS, INVTSC is now enabled by default. This can improve accuracy of timemeasurements from the guest.We now track which extended control pane was selected by the user in metrics.Linux emulator now uses KVM paravirtualized clock when the guest kernelversion is >= 5.4 (R system images or later).Emulator now uses LZ4 to decompress guest kernels, making it compatible withthe modern kernel pipeline.

Added console commands to obtain the emulator AVD directory, discovery filepath in the Studio-embedded use case, and path to snapshots:

adb emu avd path # Obtains path to AVD directoryadb emu avd discoverypath # Obtains path to discovery fileadb emu avd snapshotspath # Obtains path to snapshots folderadb emu avd snapshotpath # Obtains path to the folder that stores the snapshot for the snapshot with name To make it easier to save vertical screen space, we've added an option to hidethe device frame for the current AVD in Extended Controls > Settings. Toglobally hide device frames for all AVDs, we've made available theNoDeviceFrame feature flag, which can be activated via launching the emulatorfrom the command line with -feature NoDevice frame, or to lock it in, addingNoDeviceFrame = on to ~/ (Create this file ifit doesn't exist already).

Added a drop down item in cellular page to turn on and turn off meterdnesssupport, this is a no-op for older system images that do not support the 5Gmeterdness toggle.

Also added console command for the same purpose: gsm meter on|off

Upgraded toolchain / build to C++17.

Fixes: embedded emulator

Clipboard should now work.Fixed issue where uppercase characters were delivered as lower case charactersin the emulator.Fixed loading console token from a unicode path in windows.Fixed SO_REUSEPORT error message on linux.Fixed a snapshot corruption issue when sending snapshot commands through gRPC,as well as when pressing the snapshot save button in Studio embeddedemulator.

Embedded emulator: Devices with rounded corners/notches now properly changetheir layout to make room for the corners and notch. This requires a cold bootof those emulators.

gRPC endpoint now supports sending SMS to the device.

General fixes

We've seen compatibility issues running the Windows emulator with RiotVanguard active. The Windows emulator now detects Vanguard anti-cheat and popsup a warning message if Vanguard is detected.Fixed FD_SETSIZE error on Windows. We now use WSAEventSelect() instead ofselect() for establishing non-blocking connections to loopback servers.Added F16C CPUID feature support to Linux emulator with fixes issues runningsome ARM64 applications through NDK translation; macOS/Windows in progress.Fixed gpx/kml route playback to follow timestamps.Fixed bouncing icon on launch for MacOs.If hw.audioInput=no and hw.audioOutput=no in config.ini, emulator audiois now properly disabled.Fixed an issue where if the emulator window was minimized while the extendedcontrols window was open but not active, the extended controls window would keepshowing up when resizing the emulator window. We will completely remove thebehavior (the case with active extended controls window) in a future update.Fixed a flaky bug with Wi-Fi not connected when the emulator starts.Fixed hang-on-exit when emulator issues shell commands with long or indefinitetimeouts.Updated pc-bios with fixes to better support large images passed to -initrd;previous BIOS used a very inefficient method.Fixed crash during termination when -wifi-server-port option is used.The emulator now prints a warning if unsupported options are passed to -prop(Only qemu.* props are supported).Disabled Zoom button for foldable AVDs, which was causing issues.Emulator now correctly reports boot time coming from a device reboot.Linux: In the case where there are insufficient KVM permissions, the emulatornow prints debugging instructions more promptly.Fixed issue where the emulator could not boot recent system images with noacceleration.Fixed memory corruption or crash on start from a boot-completed detector.Fixed memory leak during long screen recording sessions.Emulator icons updated to reflect Studio 4.1 branding.Added better support for detecting remote sessions on Windows.

Fixes: graphics and video decode

Fixed an issue where latest Asphalt 9 game rendered with a black screen.Removed spam about flushing mapped buffer with NULL.Fixed a race condition when tearing down Vulkan state when a guest Vulkan appexited.Vulkan ASTC/ETC2 emulation shaders are now baked into the libOpenglRenderlibrary. This will be more reliable versus reading from the filesystem.Fixed an issue in Vulkan where if running with a Vulkan 1.0 instance on thehost, vkGetImageMemoryRequirements2KHR would incorrectly clear the returnedVkMemoryRequirements2 struct's pNext field.Fixed a memory leak in Vulkan renderer.Fixed a recent regression where GLSL ES 1.00 shaders with variable names likeisampler2D failed to compile.Updated ANGLE shader translator with various fixes that address possiblefailure to compile shaders on Linux.We now crash the emulator if the basic framebuffer blit shader fails tocompile, in order to keep track of the phenomenon.Updated ANGLE shader translator to keep up with upstream ANGLE. This fixed anissue around memory corruption when translating and constant-folding OpenGL ESshaders that used non-square matrices. The shader translator is now a separateshared library, libshadertranslator.dll.Fixed an issue on Vulkan initialization on some GPU drivers, where certain 1.1device functions were not found.Vulkan: We've reverted back to using the prebuilt loader as favoring thesystem Vulkan loader caused issues in some setups; will figure out a bettersolution.Fixed issue when using Vulkan external memory where it could have beenimported mismatching memory type indices on the host.Fixed issue in emulation of GL_ALIASED_POINT_SIZE_RANGE where the enum wasnot supported on the host.Fixed issue where on some host GPUs, Skia shaders could not compile due toerrors related to GL_EXT_shader_framebuffer_fetch.Since our copy of the D3D9 ANGLE renderer was removed a few versions ago, wenow also auto switch users who were on that renderer to d3d11 ANGLE if it wasselected in the UI preferences.More debug info has been added to WGL initialization on Windows in order totrace failures.When hw.gltransport=virtio-gpu-pipe, performance is improved by not spinningon the host in transfers from host to guest.Added more debug logging for when OpenGLES emulation fails to initialize.Fixed an issue with Youtube videos flickering or not showing up on snapshotload.Switched back to software decode for libvpx for now as we've seen issues withCUDA hardware decode of libvpx. If you have a supported CUDA hardware decodeimplementation on the host side, hardware decode of libvpx can be re-enabled viathe environment variable rev-conf.org_EMU_MEDIA_DECODER_CUDA_VPX=1.

30.0.10 (April 30, 2020)

This update includes support for running the emulator directly in Studioand virtual devices with Freeform Window Mode activated by default.

Run the Emulator in Studio

The Emulator can now be run directly in rev-conf.orgStudio.Use this feature to conserve screen real estate, to navigate quickly betweenthe emulator and the editor window using hotkeys, and to organize your IDEand emulator workflow in a single application window.

Freeform Window Mode

You can now create an AVD that has Freeform Window Mode enabled by selectingthe 13.5” Freeform tablet hardware profile when creating a virtual device Studio. This hardware profile requires a system image with Preview 3 or higher.

Known issues

Resizing freeform windows is currently broken due to issues transferringfocus to the Window Manager. This will be addressed in a future 11system image release.

30.0.0 (February 19, 2020)

This update includes 11 (API level 30) system images and improvedperformance when running ARM binaries. 11 system images

You can now create an AVD that runs 11 by selecting either of theavailable API level 30 system images:

x86: Includes both x86 and ARMv7 ABIs.x86_64: Includes x86, x86_64, ARMv7 and ARM64 ABIs.

Support for ARM binaries on 9 and 11 system images

If you were previously unable to use the Emulator because your appdepended on ARM binaries, you can now use the 9 x86 system image or 11 system image to run your app – it is no longer necessary todownload a specific system image to run ARM binaries. These 9 11 system images support ARM by default and provide dramaticallyimproved performance when compared to those with full ARM emulation.

Known issues

Some ARMv7 binaries fail to run on 11 x86 and x86_64 system images. Consider building for ARM64 when targeting 11.

29.0.11 (May 29, 2019)

This update includes the following improvements and fixes:

Windows: The emulator now relies on the libgcc DLL that we ship instead ofbeing compiled with libgcc statically.The emulator now includes a headless build for 32-bit x86 guests(qemu-system-i386). This feature enables x86 32-bit images for API levels 26and lower to run with the headless build. Note that for 32-bit x86 guests withAPI 27 and later, the emulator uses the 64-bit engine (qemu-system-x86_64)because in these system images, while the userspace is 32-bit, the kernel is64-bit. Studio uses the kernel to select emulation engines.You can now specify custom Qt library paths using the rev-conf.org_QT_LIB_PATHenvironment variable.You can now run the emulator with previous binaries that use QEMU1 if theQEMU1 executables (emulator<64>–) are placed in the emulatordirectory.Windows: Fixed an issue that could sometimes cause the emulator to fail tostart with a “vCPU shutdown request” message.Fixed an issue with an unnecessary pipeline barrier in emulated compressedtextures in Vulkan.

29.0.9 (May 7, 2019)

This update includes the following fix:

Windows: Fixed an issue where the virtual scene camera and webcam would notwork on the emulator.

29.0.8 (May 6, 2019)

This update includes the following improvements and fixes:

Added support for multiple virtual hardware displays when there's a guestservice to enumerate and set each display. Multiple virtual hardware displayswill be included in a future emulator system image update.Added a new command line option: -delay-adb. This option suppressesprocessing of ADB packets until the guest has completed booting (off a coldboot). This option helps resolve issues that could occur if you use theemulator in a CI environment that reboots the emulator and uses DDMS at the sametime.Fixed an error that occurred when snapshots are loaded where glIsRenderbufferwould return the incorrect value.Fixed some issues with stale state when the guest reboots.Windows: Fixed issues that prevented the emulator from starting when theWindows username had non-ASCII characters or spaces.

Known issues

The Snapshots UI is disabled for Automotive system images because snapshotsaren't currently supported for these system images.

29.0.6 (May 1, 2019)

This update includes several new features, improvements to existing features,and bug fixes.

Removal of QEMU1 and 32-bit Windows support

To better maintain the emulator, we no longer ship QEMU1 and 32-bit Windowsbinaries. If you are using Windows 32-bit, you cannot upgrade to version 29.0.6.

Requirements for Q system images

If you want to run an AVD that uses an Q system image, you must now useversion 29.0.6 (this release version) or higher.

Xem thêm: Câu Chuyện Về Đế Chế Ngân Hàng C.Hoare, Ngân Hàng C

Project Marble Improvements

This update continues our work on the Project Marbleinitiative that was announced at the Summitin November 2018. For more information about other Project Marble improvementsin previous releases, see Emulator: Project Marble Improvements.

For this update, most of our Project Marble efforts were dedicated to reducingemulator resource usage, such as reducing the emulator’s CPU usage while idle.We've also included changes that make it easier to work with the emulator in awider variety of environments, and we’ve addressed general quality issues.

The following sections describe the Project Marble improvements that areincluded with this update:

Improvements for host audio behavior

Starting with version 28.0.3, the emulator blocks audio inputfrom the host by default.

If you want to use the host audio data, you can enable that option by going toExtended Controls > Microphone and enabling Virtual microphone uses hostaudio input. This option is automatically disabled whenever the emulator isrestarted.

If you are using the command line, you can also enable host audio using the-allow-host-audio option, and you can use the following ADB commands to turnhost audio data on or off, respectively:

adb emu avd hostmiconadb emu avd hostmicoffImprovements for headless emulator builds

Starting with version 28.0.25, the emulator includes a headless build optionthat can run without the UI. You can use headless builds to help you set up theemulator for Docker and continuous integration (CI) workflows.

Note: Although the emulator binary with the -no-window flag is stillavailable, the headless build is meant to supersede -no-window.

With this update, we’ve made further improvements to allow the emulator to runwith a minimum number of dependencies. On Linux, headless builds no longerinclude the pulseaudio or libX11 libraries. The system-dependent sharedlibraries that are not packaged with the emulator has been reduced to thefollowing list: Qt UI libraries to 5.12 LTS

This update includes the following improvements from the Qt 5.12 LTS release:

To avoid crashes in Qt's libpng decoding when starting certain systemimages, the emulator now uses its own copy of libpng to decode PNG images.To address issues with some Linux installs containing incompatible versionsof some Qt dependent libraries, we now package libfreetype, libsoftokn,libsqlite3, and libxkbcommon with the emulator.The emulator now uses the platform’s native windowing libraries to getmonitor dimensions, instead of using the Qt libraries that returned unreliableresults.Automatic CPU optimizations after cold boot

To address CPU usage, the emulator now runs the following ADB commands on a coldboot after it receives a boot complete signal:

adb shell settings put screen_off_timeout 214783647This command increases the screen off timeout so the emulator can be used inbattery mode without charging. In battery mode, background CPU usage is greatlyreduced.In AC charging mode, GMSCore background operations such as app updates can takeover all the device’s CPU cores—and by extension, the user's machine—with nowarning.adb shell pm revoke command revokes microphone permissions for the Google search app, whichgreatly reduces background CPU usage on the home screen and in the launcher whenthe Google search app is active.This command is run in addition to the emulator’s default behavior ofdisabling host audio for the host. Furthermore, thisautomatically provides the CPU usage mitigation described forhotword detection from the 28.0.23 release.Note: The emulator does not run these ADB commands when using system images withAPI level 25 and lower because those system images cannot communicate a reliableboot complete signal back to the host.New environment variables for performance monitoring

You can now use two new environment variables to enable detailed monitoring ofthe emulator’s performance and resource usage.

SHOW_PERF_STATS=1This environment variable enables tracking of both CPU and RAM usage. Trackingfor RAM usage distinguishes between graphics usage and total resident memory.rev-conf.org_EMU_TRACING=1This environment variable enables printing every time an input or graphicsoperation takes a long time (longer than 1 ms).We’re also using this environment variable to help diagnose issues thatWindows users have experienced with more jank (dropped frames) than usersexperience on macOS or Linux.General Project Marble improvements

This update also includes the following general improvements that are part of the Project Marble initiative:

You can now immediately pause all vCPUs on the emulator via the following console commands:adb emu avd pauseadb emu avd resumeGreatly reduced overhead of OpenGL drawing. This improvement reduces CPU usagewhile the emulator is playing animations.Restored support for mainline QEMU's e1000 virtual network device. You can usethis device to set up the emulator in a bridged network environment. In abridged network environment, the emulator is shown on the host network and thehost network is shown on the emulator.QEMU 2.12-appropriate BIOS binaries are now used to start up the emulator.Upgraded ffmpeg version to 3.4.5 for video encoding and decoding.Greatly reduced overhead of QEMU main loop I/O on macOS by replacing the mainloop that was based on select() with a main loop that is based on kqueue.Logcat buffer size increased to 2 MB to address issues with flaky unexpectedEOF when running logcat with the emulator.The emulator now exports the LC_ALL=C environment variable by default. Thischange addresses crashes and incompatibility issues associated with running theemulator in different locales.You can now track the CPU and RAM usage of the emulator using performancestats that you can access at Extended Controls > Settings > Advanced >Performance Stats. Use these stats to quickly diagnose issues if the emulatorseems to be using too much CPU or RAM.glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE now uses the host GPU'sresult instead of an emulated one. This change helps fix issues where imagesand assets do not display because of improper format for readback.Added support for the OpenGL ES extensions GL_EXT_texture_format_BGRA8888and GL_APPLE_texture_format_BGRA8888 if these extensions are supported by thehost.Added more diagnostic info to the Bugreport UI. In addition, you can accessbug reports from the console using the following commands:telnet localhost 5554avd bugreportOn Q system images, the emulator increases its minimum RAM size to 2GB.Added more logging and printing whenever OpenGL or the hypervisor fails toinitialize.If the emulator cannot start a concurrent -read-only instance of an AVD, theemulator now attempts to relaunch the -read-only AVD 3 more times over 3seconds. This change increases the likelihood that the emulator will be able tolaunch concurrent -read-only instances an AVD if other writable instances ofthat AVD are not done cleaning up stale files.For upcoming system images, the emulator now supports Hardware Composer 2.0.This change should lower the driver overhead when running most animations.The emulator build is now based on CMake/Ninja.In the emulator extended controls UI, divider lines in the keyboard shortcutstable have been restored.Users can now opt-in to provide our team with CPU and RAM usage metrics in a10 second interval. We use these metrics to enrich our data about emulatorresource usage with different use cases from our users, which allows us tomake the emulator more efficient and responsive.General Project Marble fixes

This update also includes the following general fixes that are part of theProject Marble initiative:

Fixed issues with twitching and incorrect frames that were displayed onsystems with Intel GPUs when using Q system images.Fixed issues where a black screen was displayed when using Q systemimages with Pixel 2 XL skins (or any skin that has a notch or rounded corners).Fixed an issue where the -partition-size command line option would not setthe data partition size.Fixed an issue where pulseaudio on the Linx emulator would spin and take upan entire CPU core in some situations.Fixed issues with out of bounds memory access when processing compressedtextures.Fixed GL errors that occurred on the host in glTexSubImage2D when updatingcertain gralloc buffers (with format RGB 565, RGB10A2, RGB(A)16F).Fixed a few hard-to-reproduce crash and freeze issues on launch that happeneddue to Qt losing signals or having flaky, inconsistent states on startup.Fixed numerous concurrency issues. We are now able to build the Linux emulatorwith ThreadSanitizer (TSAN), which can easily uncover bugs that are otherwisedifficult to reproduce.For Linux users: we have found that on certain host kernels, the guest rev-conf.orgkernel can error out and exit in KVM with a generic hardware error. The emulatorwill now abort() when this happens in order to increase debuggability(previously, the emulator just hung).For Linux users: for convenience with CI setups, you can use the new-stdouterr-file command line option to redirect both stdout andstderr to a file.Fixed a long-standing issue with the Windows emulator where sub-processes,such as ADB commands, failed to start if the username had spaces in it.Fixed an issue with missing initialization of RCU in HAXM vCPU threads. Thisfix can possibly address some crashes and race conditions.Fixed a crash that happened with certain patterns of saving and loadingsnapshots from the snapshots UI using recent Q system images.Fixed an issue where the virtual scene camera would be blank when the emulatorwas initialized from a snapshot if an AR macro was playing when that snapshotwas saved.

Hardware profiles for foldable devices

The emulator now includes hardware profiles for foldable devices. To use thesenew hardware profiles, you must be using Studio 3.5 Canary 10 or higher.

There are two foldable hardware profiles that you can use to create an AVD:

7.3″ Foldable: 1536×2152 unfolded, 4.6″ 840×1960 folded8″ Foldable: 2200×2480 unfolded, 6.6″ 1480×2480 folded

When you run the emulator using one of these hardware profiles, you can fold andunfold the device using the fold and unfold actionsin the emulator toolbar, console commands,or the following keyboard shortcuts:

Fold: Ctrl + F (Command + F on macOS)Unfold: Ctrl + U (Command + U on macOS)

AR macros

The emulator now includes AR macros that can help you test common AR actions.For example, you can use a macro to reset all the device's sensors to theirdefault state.

For more information, see Test common AR actions with macros.

Vulkan support (Windows, Linux)

Windows and Linux users can now test Vulkan apps with the Emulator up toVulkan 1.1 when using a compatible system image ( Q Beta 3 or higher forVulkan 1.1, Q Beta 2 for Vulkan 1.0) and a compatible host GPU (thisincludes most Intel, NVIDIA, and AMD GPUs from 2014 and later).

To enable Vulkan support, you must add the following feature flags to your~/ file (create the file if it doesn’t exist):

Vulkan = onGLDirectMem = onNote: Snapshots can’t currently be used while Vulkan is enabled. If you enableVulkan support, the current quickboot snapshot is invalidated.Initial support for ROM rev-conf.orgs

ROM rev-conf.orgs who are building the sdk_phone_x86 or sdk_phone_x86_64(userdebug, eng variants) targets on AOSP master branch can now run aVulkan-enabled emulator.

This support is still experimental and is mainly for rev-conf.orgs who work onsystem images, drivers, and game engines. Many extensions are still missing.However, HOST_COHERENT memory is supported, and you should now be able torun the Vulkan API Tutorial Samples.

If you are using linux, you can try this by using the following commands:

mkdir aosp-mastercd aosp-masterrepo init -u -b master –depth=1repo sync -c -j12. build/envsetup.shlunch sdk_phone_x86_64-userdebugmake -j12emulator -no-snapshot -feature Vulkan,GLDirectMemSkia rendering with VulkanNVIDIA and AMD GPUs that support Vulkan also support zero-copy interop withOpenGL via the GL_EXT_memory_objects extension. The emulator leverages thiscapability to provide a complete way to render the UI using the SkiaVulkan APIs.

If you have an NVIDIA or AMD GPU that supports Vulkan, use the followingcommands to test the Skia rendering with a compatible system image ( QBeta 3 and higher):

adb shellsusetprop debug.hwui.renderer skiavkstopstartmacOS support for VulkanmacOS support is still experimental, but the emulator already includes theSwiftshader,MoltenVK, andlibportability (gfx-rs) APIs.You can experiment with these APIs by setting the following environmentvariables:

Swiftshader: rev-conf.org_EMU_VK_ICD=swiftshaderMoltenVK: rev-conf.org_EMU_VK_ICD=moltenvklibportability: rev-conf.org_EMU_VK_ICD=portabilityKnown issues

HAXM can sometimes fail to map Vulkan coherent memory to the guest and shutsdown the emulator. This is addressed in an upcoming HAXM update.

gRPC streaming emulator (Linux)

We’re always trying to make the emulator as versatile as possible by allowinghost GPU rendering and interactivity in the widest range of running contexts.Our CI and remote desktop users have the following long-standing issues:

Programmatically sending input commands to the emulator involves eitherrunning adb shell commands that can experience high overhead, or using thetelnet console, which is faster, but might not work with certain networkconfigurations.CI users often run emulators headless, which can make it difficult to noticeissues that require the screen to be visible or interactive.Remote desktop users often can’t interact with the emulator when using hostGPU rendering because GPU rendering is often tied to the host’s non-virtualdisplays.

To address this, when running on a Linux machine, the emulator now serves agRPC service. gRPC is a general frameworkfor RPC that works over HTTP.

Caution: This feature is still experimental and is meant to be used from thesame machine the emulator is running on. Do not run the service remotely unlessyou understand and accept the security risks.

By default, the emulator gRPC service is disabled, but you can activate theservice using the following command line option, where is the port which the emulator should serve gRPC requests (usually 5556):

-grpc Caution: Do not run the service on a port that is not secured from remote users.Once the service is started, gRPC commands can then be issued from clients. Thecurrent set of commands allows both sending input events and receivingscreenshots. These commands help address the following issues:

Input commands can be sent to the emulator with low overhead over HTTP. HTTPalso enables commands to be sent in additional network configurations.Screenshot commands can be sent to query the current screen, even if theemulator is running headless. For interactivity, input events can also be sentback to the emulator.Remote desktop users can run the emulator headless on the main display withGPU accelerated rendering while using gRPC to get screenshots and send inputevents in order to interact with the emulator.

For a complete list of the commands that are available, seethis protobuf.

To help you get started with gRPC, we’ve provided some sample clientsthat you can refer to.

Currently, this includes the following samples:

A Go-based service that can be used to query emulator states.A React app that demonstrates remote interactivity via screenshot and inputRPCs. This sample requires protobuf version 3.7.0 or higher.A Python sample that queries the emulator’s VM configuration and then sendsa series of commands.

28.0.25 (March 29, 2019)

This update includes the following improvements and fixes:

Headless emulator build

The emulator has been difficult to set up with Docker and other continuousintegration (CI) workflows due to the implicit expectations of the system beingable to support Qt along with its shared library dependencies(among other issues).

As a first step to address this, we've introduced a variant of the emulatorlauncher with QEMU executables that does not depend on Qt. On Linux, there isstill a link to libX11, but we hope to remove that soon as well.

To use the headless emulator, run the emulator from the command line as usual,but replace the emulator binary invocation with emulator-headless. For moreinformation, see the 28.1.8 Canaryrelease update.

Fixed twitching and incorrect frame display on Intel GPUs when running rev-conf.orgQ system images.Fixed issues where black screen would display when using Q systemimages with Pixel 2 XL skins.The latest BIOS binaries are now used to start up the emulator. This changecan help reduce “vCPU shutdown request” errors that happen sometimes whenlaunching the emulator on Windows.Users were experiencing “unauthorized” emulators issues due to an incompatible change in ADB in platform-tools 28.0.2. You cannow safely use ADB from platform-tools 28.0.2 with the emulator. If you areexperiencing problems with “unauthorized” emulators, do the followingtroubleshooting steps:Exit all emulators.Delete both the ~/ and ~/ files.Run the following command: adb kill-serverRun the following command: adb devicesWipe the AVD data.Relaunch the emulator.

28.0.23 (January 29, 2019)

This update includes the following improvements and fixes:

Host audio input disabled by default

A recent post on Reddit detailed how the guest OS would always be using the host microphone'saudio, and thereby allowing “Ok Google” to work unexpectedly. We're sorry aboutthis and will work with the team to make sure hotword detection isdisabled in the system image as well.

To address this, we've made the following changes:

Actual host audio data is now squelched by default. When the guest uses themicrophone, silence is passed over instead of the host's audio.If you want to use the host audio data, you can now enable that option bygoing to Extended Controls > Microphone and enabling Virtual microphoneuses host audio input. This option is automatically disabled whenever theemulator is restarted.

Updates on CPU usage investigations

During our Project Marble investigations, we've noticed that high CPU usage onthe emulator generally falls into the following three categories:

At idle: Automatic app updates in Play Store images

We found that at random intervals, all apps installed get updated, even when theuser is not logged in. During the process, CPU usage is driven to the number ofcores x 100% (typically ~400%) in GMSCore and dex2oat. You can mitigate thisissue by disabling auto app updates in the Play Store app.

At idle: Hotword detection

When on the home screen and without any app foregrounded, there can be a greatdeal of CPU usage (~25% with spikes to 50%). This is caused by hotword detectionthat constantly pings the host. You cannot mitigate this issue by disabling hostaudio input because the CPU cost is primarily caused by the time that it takesto travel to the guest from the host. However, you can mitigate this issue byrevoking microphone permissions from the Google app.

While active, sometimes at idle: Animations

The third source of high CPU usage is animations. We have found that byoptimizing the graphics driver stack we can also reduce CPU usage even when theemulator is not idle. We will be rolling out graphics driver optimizationsincrementally as part of Project Marble.

Xem thêm: Free Fire Hack

28.0.22 (December 21, 2018)

This update includes the following improvements and fixes:

When using a mapped file as the RAM snapshot, the emulator now unmaps thefile mapping explicitly on exit.

28.0.20 (December 11, 2018)

This update includes the following improvements and fixes:

Fixed an issue on Windows that caused the emulator to freeze on snapshotload with certain models of Intel GPUs.Fixed an issue that caused an unauthorized ADB device state when using anon-standard rev-conf.org_SDK_HOME location.Fixed an issue on Windows that caused the emulator to crash whenbooting system images with CPU acceleration disabled.Fixed the pixelatedemulator display issue. Downsampling should now be working.Fixed an issueon macOS 10.14+ where the virtual scene camera mouselook control could becometoo sensitive due to an interaction with new accessibility security settings.Fixed an error in timezone calculation that could cause the emulator clock tosporadically change.Fixed rendering errors in various cocos2d and Unrealengine apps.Added support in the emulator for Wi-Fi peer-to-peer.Two emulators can now talk to each other directly via Wi-Fi if using the latestPie Play Store image. To use Wi-Fi peer-to-peer, start two AVDs with the same-wifi-server-port and -wifi-client-port arguments:emulator

Leave a comment

Your email address will not be published. Required fields are marked *