25.3.0 之前的模拟器版本作为 Android SDK 工具的一部分进行分发。
从模拟器中移除了 HAXM 支持。如果您尝试使用 HAXM 创建 AVD,系统会显示一个横幅,报告缺少 Hypervisor,并提供一个用于安装 AEHD 的操作链接。
修复了确保 Intel GPU 使用 OpenGL ES 3.0 以避免驱动程序崩溃的问题
在 Windows 和 Linux 上针对 XR 模拟改进了 AMD 和 Nvidia GPU 支持
XR AVD 可以嵌入到 Android Studio 运行窗口中运行
改进了 Windows 上的崩溃报告详细信息,以启用模拟器的完整转储
添加了额外的 CPU 兼容性检查,并附带错误消息(例如:磁盘空间不足)
在通过终端运行时,正确检查并跳过 Vulkan 快照支持
添加了对 VK_KHR_multiview 扩展和 A1R5G5B5 纹理格式的支持
添加了 Pixel 9a AVD
在扩展控制中添加了一个下拉菜单,用于设置 Guest GLES 驱动程序偏好设置
注意:Android XR 模拟器仅在 Studio 的 Canary 版本中提供
新的 Android XR 模拟器
Android XR 模拟器是一款实验性工具。不过,我们还是决定提前与您分享,以便您尽早进行测试。可能会出现问题,尤其是在某些 Windows GPU 和驱动程序配置上。此外,在对现有 2D 移动应用进行兼容性测试时,也可能会出现问题。您的反馈有助于我们改进功能,并指导我们确定未来功能的优先顺序。
到目前为止,Android XR 模拟器已在以下硬件配置上进行了测试:
已知问题
模拟器 - 稳定性和性能:
模拟器 - 模拟输入和输出:
无法使用鼠标和键盘在 z 方向(屏幕内和屏幕外)移动元素
AVD 麦克风主机音频输入不稳定可能会导致 AVD 重新启动和崩溃。
声音有时有静电或失真。
当摄像头移出虚拟客厅时,会显示渲染错误。
Windows 配置显示比平时更暗的颜色。
在 macOS 上,模拟器处于闲置状态并锁定屏幕后,音频不再正常运行。(重启模拟器即可恢复。)
当宿主机更改 Wi-Fi 时,网络连接中断。
启用大写锁定后,仍会输入小写字母。
在 Mac 上使用触控板滚动时,滚动不顺畅。
某些界面元素上的点击并拖动滚动可能无法按设计正常运行。如果无法使用,请改用鼠标滚轮进行滚动。
模拟器 - 模拟飞机和锚点:
模拟器 - 其他:
Scene Viewer 应用:
使用 Android Studio Jellyfish 稳定版补丁 1 进行了测试。
使用 Android Studio Jellyfish 稳定版进行了测试。
使用 Android Studio Iguana 稳定版进行了测试。
使用 Android Studio Iguana 稳定版进行了测试。
使用 Android Studio Iguana 稳定版进行了测试。
使用 Android Studio Hedgehog Stable 和 Iguana Beta 1 进行了测试。
使用 Android Studio Giraffe 补丁 4 和 Hedgehog 稳定版进行了测试。
通过 Android Studio Giraffe Patch 1 和 Hedgehog Canary 16 进行了测试。
使用 Android Studio Hedgehog Canary 8、Giraffe Beta 5 和 Flamingo 稳定版进行了测试。
使用 Android Studio Hedgehog Canary 2、Giraffe Beta 1 和 Flamingo 稳定版进行了测试。
通过 Android Studio Giraffe Canary 10、Flamingo RC 和 Electric Eel Patch 2 进行了测试。
通过 Android Studio Giraffe Canary 2、Flamingo Beta 版 1 和 Electric Eel Patch 1 进行了测试。
使用 Android Studio Dolphin、Electric Eel RC1 和 Flamingo Canary 9 进行了测试。
使用 Android Studio Dolphin、Electric Eel Beta 版 2 和 Flamingo Canary 5 进行了测试。
使用 Android Studio Dolphin 和 Electric Eel Beta 版 1 进行了测试。
此更新做出了以下改进和修复:
使用 Android Studio Dolphin 和 Electric Eel Canary 10 进行了测试。
此更新做出了以下改进和修复:
使用 Android Studio Dolphin Beta 版 5 和 Electric Eel Canary 9 进行了测试。
此更新做出了以下改进和修复:
使用 Android Studio Dolphin Canary 8 和 Chipmunk RC 1 进行了测试。
此更新做出了以下改进和修复:
使用 Android Studio Dolphin Canary 7 进行了测试。
此更新做出了以下修复:
使用 Android Studio Bumblebee Patch 1 和 Chipmunk Canary 6 进行了测试。
此更新做出了以下改进和修复:
使用 Android Studio Bumblebee Patch 1 和 Chipmunk Canary 6 进行了测试。
此更新做出了以下修复:
使用 Android Studio Arctic Fox、Bumblebee Beta 版 4 和 Chipmunk Canary 6 进行了测试。
此更新做出了以下改进和修复:
此更新做出了以下改进和修复:
此更新做出了以下改进和修复:
此更新做出了以下改进和修复:
此更新加入了几项新功能、对现有功能做出了一些改进并修复了一些 bug。
铰链传感器现在默认处于启用状态。
如果配置了可折叠设备,模拟器现在会向客户机发送铰链角度传感器的最新动态和折叠状态变化信息。现在,按工具栏的折叠或展开按钮时,现有的可折叠设备会更新铰链传感器的角度和折叠状态。
Linux 模拟器源代码现在支持从 x86_64 到 arm64 主机的交叉编译,从而允许通过 KVM 虚拟化运行 arm64 系统映像。目前仅支持 -gpu swiftshader_indirect(Swiftshader arm64 主机渲染),但也可以使用一组兼容的主机 GPU libEGL/libGLESv2 库,只需将 lib64/gles_swiftshader 替换为这些库,然后使用 -gpu swiftshader_indirect 重新启动即可。此外,快照可能也无法正常运行(需要向命令行添加 -no-snapshot)。指令:
正在推动支持 Apple Silicon。
添加了以下控制台命令,用于获取模拟器 AVD 目录、嵌入 Studio 的模拟器中的发现文件路径,以及指向快照的路径:
在移动网络页面添加了一个下拉项,用于启用和停用按流量计费性支持;对于不支持 5G 按流量计费性切换开关的旧版系统映像,这是空操作。
工具链/build 已升级为 C++17。
为了解决这个问题,模拟器现在会回退到使用基于用户 UID (/run/user/<uid>)、可能不同的目录中的发现文件。
嵌入式模拟器:带圆角/缺口的设备现在可以正确更改其布局,为边角和缺口留出空间。这需要对这些模拟器进行冷启动。
gRPC 端点现在支持向设备发送短信。
此更新纳入了以下支持:直接在 Android Studio 中运行模拟器;默认为虚拟设备启用自由窗口模式。
您现在可以创建启用了自由窗口模式的 AVD,只需在 Android Studio 中创建虚拟设备时,选择支持自由窗口的 13.5 英寸平板电脑硬件配置文件即可。此硬件配置文件需要版本为 Android 11 开发者预览版 3 或更高的系统映像。
由于存在会将焦点移到 Window Manager 的问题,目前无法调整自由窗口的大小。此问题将在未来的 Android 11 系统映像版本中得到解决。
此更新包含 Android 11(API 级别 30)系统映像,并提升了运行 ARM 二进制文件时的性能。
您现在可以通过选择以下任一可用的 API 级别 30 系统映像来创建搭载 Android 11 的 AVD:
如果您之前因为应用依赖 ARM 二进制文件而无法使用 Android 模拟器,那么现在您可以使用 Android 9 x86 系统映像或任何 Android 11 系统映像来运行应用,而无需再下载特定的系统映像来运行 ARM 二进制文件。这些 Android 9 和 Android 11 系统映像默认支持 ARM,而且与采用完全 ARM 模拟的系统映像相比,它们提供显著提升的性能。
此更新做出了以下改进和修复:
此更新做出了以下修复:
此更新做出了以下改进和修复:
此更新加入了几项新功能、对现有功能做出了一些改进并修复了一些 bug。
为了更好地维护模拟器,我们不再提供 QEMU1 和 32 位 Windows 二进制文件。如果您使用的是 32 位 Windows 系统,则无法升级到版本 29.0.6。
如果要运行使用 Android Q 系统映像的 AVD,您现在必须使用版本 29.0.6(即本部分介绍的发布版本)或更高版本。
在此更新中,我们对 Project Marble 进行的大部分改进都旨在减少模拟器对资源的消耗,例如降低模拟器在空闲时对 CPU 的消耗。此外,我们还进行了一些更改,让用户能在更多类型的环境中更轻松地使用模拟器;并且还解决了一些常见的质量问题。
下面各部分介绍了在此更新中包含的 Project Marble 改进:
如果您想要使用主机音频数据,只需依次转到 Extended Controls > Microphone,然后启用 Virtual microphone uses host audio input 这个选项即可。每次重启模拟器,此选项都会自动停用。
如果您使用的是命令行,则还可以使用 -allow-host-audio 选项启用主机音频,并且可使用以下 ADB 命令分别打开或关闭主机音频数据:
通过此更新,我们做出了进一步改进,可让模拟器运行最少量的依赖项。在 Linux 上,无头 build 不再包含 pulseaudio 或 libX11 库。未与模拟器打包在一起的系统相关共享库已缩减为下列几个:
此更新在 Qt 5.12 LTS 版本的基础上进行了以下改进:
为了解决 CPU 使用率问题,模拟器现在会在冷启动完成时(也就是收到 boot complete 信号后)运行以下 ADB 命令:
您现在可以使用以下两个新的环境变量详细监视模拟器的性能和资源使用情况。
此更新还包含 Project Marble 计划的以下常规改进:
此更新还包含 Project Marble 计划的以下常规修复:
模拟器现在包含可折叠设备的硬件配置文件。如需使用这些新增的硬件配置文件,您必须使用 Android Studio 3.5 Canary 10 或更高版本。
您可以使用下面这两个可折叠设备硬件配置文件创建 AVD:
模拟器现在包含 AR 宏,可协助您测试常用 AR 操作。例如,您可以使用宏将设备的所有传感器重置为默认状态。
Windows 和 Linux 用户现在可以使用 Android 模拟器测试 Vulkan 应用(最高可到 Vulkan 1.1),不过要使用兼容的系统映像(Vulkan 1.1:Android Q Beta 3 版或更高版本,Vulkan 1.0:Android Q Beta 2 版)和兼容的主机 GPU(包括 2014 及之后的大多数 Intel GPU、NVIDIA GPU 和 AMD GPU)。
在 AOSP master 分支上构建 sdk_phone_x86 或 sdk_phone_x86_64(userdebug、eng 变体)目标的 ROM 开发者,现在可以运行启用了 Vulkan 的模拟器。
如果您使用的是 Linux,可以使用以下命令尝试:
支持 Vulkan 的 NVIDIA GPU 和 AMD GPU 也支持通过 GL_EXT_memory_objects 扩展与 OpenGL 进行零复制互操作。模拟器会利用此功能提供使用 Skia Vulkan API 渲染 Android 界面的完整方法。
如果您的 NVIDIA GPU 或 AMD GPU 支持 Vulkan,请使用以下命令对采用兼容系统映像(Android Q 3 Beta 版及更高版本)的 Skia 渲染进行测试:
HAXM 有时无法先将 Vulkan 相干内存映射到客户机,然后再关闭模拟器。这个问题会在即将推出的 HAXM 更新中得到解决。
我们一直在努力尝试让主机 GPU 从最广泛的运行环境中进行渲染和互动,以便让模拟器尽可能灵活多变。以下是我们的 CI 和远程桌面用户长期遇到的一些问题:
默认情况下,模拟器 gRPC 服务处于停用状态,但您可以使用下面的命令行选项启用该服务,其中 <port> 是模拟器处理 gRPC 请求的端口(通常为 5556):
启动该服务后,您可以从客户端发出 gRPC 命令。当前的这组命令允许发送输入事件和接收屏幕截图。这些命令有助于解决以下问题:
目前包含以下示例:
此更新做出了以下改进和修复:
由于系统可能希望能够支持 Qt 及其共享库依赖项(以及其他问题),因此使用 Docker 和其他持续集成 (CI) 工作流程很难设置模拟器。
作为解决这个问题的第一步,我们推出了一个模拟器启动器变体,它带有 QEMU 可执行文件且不依赖于 Qt。在 Linux 上,仍然存在指向 libX11 的链接,但我们也希望尽快将其移除。
此更新做出了以下改进和修复:
为解决这个问题,我们做出了以下更改:
在 Project Marble 调查期间,我们发现导致模拟器上的高 CPU 使用率通常是因为以下三种原因:
我们发现,即使用户未登录,安装的所有应用也会被随机更新。在更新过程中,CPU 使用率会升至 GMSCore 和 dex2oat 中的核心数量乘以 100%(通常约为 400%)。为了缓解这个问题,您可以在 Play 商店应用中停用应用自动更新功能。
如果处于主屏幕上并且没有任何应用在前台运行,CPU 使用率可能会很高(大约 25%,高峰时可达 50%)。这是由于启动指令检测功能不断 ping 主机所致。您无法通过停用主机音频输入缓解这个问题,因为 CPU 的开销主要是出在从主机传输到客户机所花的时间上。不过,您可以通过撤消 Google 应用的麦克风使用权限缓解这个问题。
导致高 CPU 使用率的第三个原因是动画。我们发现,通过优化图形驱动程序堆栈,即使模拟器不处于空闲状态,我们也可以降低 CPU 使用率。作为 Project Marble 的一部分,我们将逐步优化图形驱动程序。
此更新做出了以下改进和修复:
此更新做出了以下改进和修复:
此更新加入了几项新功能、对现有功能做出了一些改进并修复了一些 bug。
现在,模拟器会在总体上减少对 RAM 的使用,尤其是在使用 API 级别为 28 或更高级别的系统映像时。这些系统映像降低了客户机端图形驱动程序的内存使用率。
此外,我们还在以下方面提升了资源利用率:
您现在可以启动同一个 AVD 的多个实例并同时运行它们。在第一个实例之后启动的实例都会处于只读状态,并且在退出时将舍弃对客户机虚拟磁盘做出的更改。
如需同时运行同一个 AVD 的多个实例,请在启动第一个实例之后使用 -read-only 标志从命令行启动任何其他实例。
您可以通过复制与 Android 映像的可写部分关联的 QCOW2 文件实现此功能。为了帮助您管理磁盘空间,我们还捆绑了 qemu-img 命令行工具,以便您能够在启动多个实例之前预先提交 QCOW2 文件。
通过预先分配客户机 RAM 并将其映射为文件,模拟器现在可以在运行时保存快速启动快照,而不必在退出时执行所有操作。如果您目前在关闭模拟器时需要等很长时间才能保存的话,请启用此功能,提升快速启动性能。默认情况下,快速启动快照每次都会在退出时保存,然后再重新加载,例如暂停和唤醒实际设备。
由于 Android 客户机 RAM 现在默认自动保存,因此,如果您要定义设备状态并从该状态重复加载,则需要告知模拟器在每次会话后舍弃更改。为此,您可以执行以下操作:
快照会像之前一样通过快照界面功能进行截取和加载,而没有文件映射。
如果通过快照启动模拟器(无论是使用 -snapshot 命令行选项,还是通过 AVD 管理器中的快照启动),模拟器会停用快速启动快照的自动保存功能以及在退出时保存快速启动快照的功能。这样可以降低无意中覆盖快速启动快照的可能性,并避免使用那些不使用有文件支持的快速启动快照的慢速回退路径。
我们已将 QEMU 的变体从 QEMU 2.9 衍合到 QEMU 2.12。此更新包含以下 QEMU 更改:
以下是一些会影响 Android 模拟器的重要更改:
现在,可在 Windows 上使用更多的摄像头,因为模拟器会动态调整来自摄像头的相机帧的大小。此外,该功能还可以防止帧传递错误导致模拟器挂起。
为了解决 Play 商店映像耗尽磁盘空间的问题,模拟器现在可在使用新的 Play 商店 AVD 运行时,自动将用户数据分区的大小调整为 6 GB。
以下是此版 HAXM 已解决的几个问题:
由于使用率低和维护成本高,我们打算废弃在 Windows 上运行的 32 位版 Android 模拟器。在移除并终止使用该版本的 Android 模拟器之前,我们会推出相应的过渡计划。不过,我们一直在积极寻求针对这项未来更改的反馈或疑问。
此更新修复了以下问题:
此更新做出了以下改进和 bug 修复:
一些用户在诊断 Windows Hypervisor Platform (WHPX) 为什么在他们启动 WHPX 模拟器后无法初始化时遇到困难。为帮助您诊断这些问题,我们添加了一些信息更丰富的错误消息。您可以使用 -verbose 标志在命令行中运行模拟器以启用这些错误消息。
此更新加入了几项新功能、对现有功能做出了一些改进并修复了一些 bug。
现在,您可以为指定的设备配置保存多个 AVD 快照,并可选择在启动模拟器时加载哪些保存的快照。
从 Android Studio 3.2 Canary 13 开始,每个设备配置都会在“Virtual Device Configuration”对话框的高级设置中包含一个控件,您可以使用该控件指定在启动 AVD 时加载哪个 AVD 快照。
为配合快照功能的这种扩展,我们在 Extended controls 对话框中添加了 Snapshots 类别。这个新窗格会显示用于保存和加载 AVD 快照的一些控件(包括先前位于 Settings 窗格中用于保存和加载快速启动快照的控件)。
您可以修改每个已保存快照的名称和说明。
HAXM 7.2.0 现已在所有渠道中推出。
此更新修复了一些 bug 并改进了针对大量 RAM 的支持。此外,如果结合使用此 HAXM 更新和模拟器 27.3 及更高版本,快照则会根据需要将内容加载到 RAM 中,而不是在虚拟设备启动时加载整个快照。此更改应该会大大缩短加载快照所需的时间。
此更新加入了几项新功能、对现有功能做出了一些改进并修复了一些 bug。
现在您可以在 Android 模拟器中录制视频和音频,并将录制内容保存到 WebM 或动画 GIF 文件中。
提示:您也可以按 Ctrl + Shift + R 键(在 Mac 上,按 Command + Shift + R 键)来打开屏幕录制控件。
如果要开始屏幕录制,请点击 Screen record 标签页中的 Start recording 按钮。如果要停止录制,请点击 Stop recording。
用于播放和保存录制视频的控件位于 Screen record 标签页底部。如果要保存视频,请从该标签页底部的菜单中选择 WebM 或 GIF,然后点击 Save。
您也可以在命令行上使用以下命令,从模拟器中录制并保存屏幕录制内容:
您也可以在命令行上使用以下任一命令截取屏幕截图:
屏幕截图会以 PNG 格式保存。
目前,您必须明确启用 Skia 才能使用它。
如需启用 Skia 渲染,请在 adb shell 中使用以下命令:
在 Windows 上,Android 模拟器现在会将 Media Foundation 用作摄像头后端,这极大地提高了使用摄像头拍摄功能的性能和帧速率(最高可达 720p 30 FPS)。
在 Mac 上,您现在可以一起使用 webcam0 和 webcam1。
-phone-number-prefix 命令行选项已更改为 -phone-number [number],允许设置完整的电话号码。
您现在可以使用由字母数字组成的短信地址。
此更新修复了以下问题:
相机捕获分辨率
现在,可通过连接的摄像头拍摄 720p 的帧。
如需与 Android 8.1(API 级别 27)及更高版本的系统映像配合使用,连接的摄像头必须能够拍摄 720p 的帧。
修复
无框模拟器窗口:
改进了快速启动功能,以提升与 AVD 快照搭配使用的效率:
模拟器已更新为使用 QEMU 2.9。
以下是一些重要改进:
符合 OpenGL ES 3.0 标准的 Swiftshader 实现:
修复
现在会默认停用在 Windows 上用于渲染的 ANGLE。
如果 ANGLE 更适合您,可以在命令行中使用 -gpu angle_indirect 标记来重新启用它。或者,打开“Extended controls”窗口,并依次转到 Settings > Advanced,然后选择用于设置 OpenGL ES 渲染程序的 ANGLE D3D11。
修复了按 Shift + B 不输入大写字符 B 的问题。
默认情况下,系统会为所有 AVD 启用快速启动功能。尽管 AVD 在首次启动时必须执行冷启动(如同设备开机),但是,所有后续启动都会非常快速,系统将会恢复到您关闭模拟器时的状态(类似于唤醒设备)。
您的选择只会应用到当前打开的 AVD。
添加了对 Mac OpenGL ES 3(适用于使用 API 级别 24 及更高级别的系统映像、Google API 和 x86 ABI)的支持。
为了提高 OpenGL ES 2+ 应用的稳定性,模拟器现在会使用 OpenGL 核心配置文件(如果有)。
用于使用 Swiftshader/ANGLE 进行渲染的新选项:
旧的 -gpu swiftshader 和 -gpu angle 选项现已废弃。在“Extended controls”窗口中,Settings > Advanced 下用于设置 OpenGL ES 渲染程序的“SwiftShader”和“ANGLE”选项现在使用的是 *_indirect 变体。
修复了各种其他 bug。
这是一个次要版本,修复了一些 bug 并对 GPU 配置做出了以下改进:
这是一个次要版本,修复了一些 bug、提升了性能并做出了一些小的功能变更。
此版本加入了一些新功能并提升了性能。
添加了对客户机模式 GPU 的 VNC 支持,因此可以远程查看和控制模拟器。例如,您可以启动模拟器,然后让 VNC 监听端口 5901,如下所示:
打开 VNC 查看器(例如 TightVNC 查看器),以连接到端口 5901。
如需使用 Mac 的内置屏幕共享客户端,则在启动模拟器时需要输入 VNC 密码。如需设置密码,请使用以下命令:
emulator -gpu guest -avd avd_name -no-window -qemu-vnc :1,password -monitor stdio
然后,在控制台中输入 change vnc password,并输入密码。
Android O 目前不支持 VNC 模式。
在模拟器和虚拟传感器面板中添加了陀螺仪传感器。该传感器需要使用含有陀螺仪支持的系统映像才能运行(目前为 API 级别 24 和 25)。
针对主机上的多个虚拟网络接口引入多个不适用于模拟器的 DNS 地址这种情况,在 Windows 上为 Qemu DNS 列表添加了主机首选 DNS。
针对支持 OpenGL ES 3 的系统映像和主机 GPU,现在会默认启动 OpenGL ES 3.x。目前,只有 Android O(API 级别 26)和 Windows/Linux 主机支持 OpenGL ES 3。
模拟器现在会对除最终显示图片发布之外的所有渲染使用离屏 OpenGL FBO,这将有助于解决跨平台的颜色一致性问题。
在收集突发模拟器放慢问题的数据后,我们发现该问题可能与旧版 Intel OpenGL 驱动程序和 Windows 更新之间的某些互动有关。因此,如果用户使用的是 Intel HD 4000、Intel HD 3000、Intel HD 2000(及相关 GPU),现在会默认将渲染设置为 D3D 渲染程序 (ANGLE) 或 Swiftshader(软件渲染程序)。
此版本与 API 级别 26 兼容,同时还提升了性能并修复了一些问题。
次要修订版 26.0.3(2017 年 5 月)
HAXM v6.1.1 更新(2017 年 3 月)
Android 模拟器的 26.0.0 版本支持 HAXM v6.1.1,其中包含以下更新:
从此版本开始,Android 模拟器将与 SDK 工具分开发布。此版本包含各种性能改进、新功能和 bug 修复。
次要修订版 25.3.1(2017 年 3 月)
OpenXR™ 和 OpenXR 徽标是 The Khronos Group Inc. 拥有的商标,已在中国、欧盟、日本和英国注册为商标。