扩展控件、设置和帮助

您可以使用 Android 模拟器上的扩展控件发送数据、更改设备属性、控制应用等等。如需打开 Extended controls 窗口,请点击模拟器面板中的 More 图标 模拟器扩展控件图标。请注意,仅当您于 Android Studio 之外在单独的窗口中运行模拟器时,其中一些扩展控件选项才可用。

您可以使用键盘快捷键执行其中的很多任务。如需查看模拟器中快捷键的完整列表,请按 F1 键(在 macOS 上,按 Command + / 键),打开“Help”窗格。

表 1. 扩展控件详细信息

功能 说明
显示屏

通过模拟器,您可以将应用部署到多个屏幕,这些屏幕支持可自定义的维度,并且可以帮助您测试支持多窗口多屏幕的应用。在虚拟设备运行时,您最多可以添加两个额外的屏幕,如下所示:

  1. 如需添加屏幕,请点击 Add secondary display
  2. Secondary displays 下的菜单中,执行以下任一操作:
    1. 选择一个预设的宽高比。
    2. 选择 custom,然后为自定义屏幕设置高度宽度dpi
  3. (可选)再次点击 Add secondary display 可添加第三个屏幕。
  4. 点击 Apply changes,将指定的屏幕添加到正在运行的虚拟设备。
移动网络

您可以使用模拟器模拟各种网络条件。您可以大致确定不同网络协议的速度,也可以指定一个 Full 值,以便以计算机所支持的最大速度传输数据。指定任何一种网络协议后的传输速度都比 Full 慢。您还可以指定语音和数据网络状态,例如漫游。默认值在 AVD 中设置。

Network type 下选择一种类型:

  • GSM:全球移动通信系统
  • HSCSD:高速电路交换数据
  • GPRS:通用分组无线服务
  • EDGE:GSM 增强数据率演进
  • UMTS:通用移动电信系统
  • HSPDA:高速下行链路分组接入
  • LTE:长期演进
  • Full(默认值):使用计算机提供的网络

选择 Signal strength

  • 较差
  • Moderate(默认值)
  • 良好
  • 好极了

选择 Voice status 和/或 Data status

  • Home(默认值)
  • 漫游
  • 搜索
  • 被拒(仅限紧急呼叫)
  • 未注册(停用)
电池

您可以模拟设备的电池属性,了解应用在不同条件下的运行情况。如需选择 Charge level,请使用滑块控件。

选择一个 Charger connection 值:

  • None
  • AC charger

选择一个 Battery health 值:

  • Good(默认值)
  • 失败
  • 终止
  • 过压
  • 过热
  • 未知

选择一个 Battery status 值:

  • 未知
  • Charging(默认值)
  • 清理
  • 未在充电
  • Full
相机 打开模拟器相机时,您可以将图片加载到模拟的场景中。如需了解详情,请参阅 ARCore 文档中的向场景添加增强图像
位置

您可以使用模拟器来模拟“我的位置”信息:模拟的设备所在的位置。例如,如果您在 Google 地图中点击“My Location”图标 “My Location”图标,然后发送一个位置,地图将显示该位置。

设备的位置信息控件会组织到两个标签页下:Single pointsRoutes

Single points

Single points 标签页中,您可以使用 Google 地图 WebView 搜索地图注点,就像在手机或浏览器中使用 Google 地图时一样。当您在地图上搜索(或点击)某个地点时,可以通过选择地图底部附近的 Save point 来保存该地点。您保存的所有地点都会列在 Extended controls 窗口的右侧。

如需将模拟器的位置设置为您在地图上选择的位置,请点击 Extended controls 窗口右下角附近的 Set location 按钮。

Routes

Single points 标签页类似,Routes 标签页提供的 Google 地图 WebView 可用于在两个或多个地点之间创建路线。如需创建并保存路线,请执行以下操作:

  1. 在地图视图中,使用文本字段搜索路线中的第一个目的地。
  2. 从搜索结果中选择地点。
  3. 选择 Navigate 按钮。
  4. 从地图中选择路线的出发地。
  5. (可选)点击 Add destination,为路线添加更多站点。
  6. 点击地图视图中的 Save route 以保存路线。
  7. 指定路线的名称,然后点击 Save

如需让模拟器按照您保存的路线模拟导航,请从 Saved routes 中选择路线,然后点击 Extended controls 窗口右下角附近的 Play route。如需停止模拟,请点击 Stop route

如需继续让模拟器模拟指定的路线,请打开 Repeat playback 旁边的开关。如需更改模拟器模拟指定路线的速度,请从 Playback speed 菜单中选择一个选项。

导入 GPX 和 KML 数据

如需使用 GPS 交换格式 (GPX) 的文件或 Keyhole 标记语言 (KML) 文件中的地理数据,请执行以下操作:

  1. 点击 Load GPX/KML
  2. 在文件对话框中,选择计算机上的一个文件,然后点击 Open
  3. (可选)选择一个 Speed
  4. 速度默认采用 Delay 值 (Speed 1X)。您可以将速度设为两倍 (Speed 2X)、三倍 (Speed 3X),等等。

  5. 点击 Run 按钮 “Run”图标
电话

您可以使用模拟器模拟来电和短信。

如需呼叫模拟器,请执行以下操作:

  1. From 字段中选择或输入电话号码。
  2. 点击 Call Device
  3. (可选)点击 Hold Call,保持通话。
  4. 如要结束通话,请点击 End Call

如需向模拟器发送短信,请执行以下操作:

  1. From 字段中选择或输入电话号码。
  2. SMS message 字段中输入消息。
  3. 点击 Send Message
Directional Pad

如果 AVD 在硬件配置文件中已启用方向键,您可以将方向键控件与模拟器搭配使用。不过,并非所有设备都支持方向键;例如,Android 手表就不行。 这些按钮可以模拟以下操作:

方向键控件
麦克风 Virtual microphone uses host audio input 开启时,模拟器从主机麦克风接收音频输入;否则,模拟器将不会接收任何音频输入。Virtual headset plug insertedVirtual headset has microphoneVoice Assist 选项目前尚未实现。
指纹

该控件可以模拟 10 种不同的指纹扫描。您可以使用它测试应用中的指纹集成情况。Android 5.1(API 级别 22)及更低版本以及 Wear OS 不支持此功能。

如需在虚拟设备上模拟指纹扫描,请执行以下操作:

  1. 准备一款应用来接收指纹。
  2. 选择 Fingerprint 值。
  3. 点击触摸传感器
Virtual sensors > Device Pose

您可以使用该控件针对设备位置和/或屏幕方向的变化对应用进行测试。例如,您可以模拟倾斜和旋转等手势。加速度计不会跟踪设备的绝对位置,只会检测何时发生变化。该控件可以模拟加速度计和磁力计传感器在您移动或旋转真实的设备时会如何响应。

您必须在 AVD 中启用加速度计传感器,才能使用该控件。

该控件通过 x 轴、y 轴和 z 轴的值报告 TYPE_ACCELEROMETER 事件。这些值包含了重力加速度值。例如,如果设备悬浮在外太空,则加速度为零(x 轴、y 轴和 z 轴的值均为 0)。如果将设备放在地球上的某张桌子上面,屏幕朝上,由于存在重力,其加速度为 (0, 0, 9.8)。

该控件还报告 TYPE_MAGNETIC_FIELD 事件,测量的是 x 轴、y 轴和 z 轴的环境磁场(以微特斯拉 μT 为单位)。

如需围绕 x 轴、y 轴和 z 轴旋转设备,请选择 Rotate 并执行以下其中一项操作:

  • 调整 YawPitchRoll 滑块,并观察在上面窗格中的位置。
  • 移动上面窗格中的设备表示,并观察 YawPitchRoll 以及得出的加速度值如何变化。

如需详细了解 yaw、pitch 和 roll 值的计算方式,请参阅计算设备的屏幕方向

如果要水平 (x) 或垂直 (y) 移动设备,请选择 Move 并执行以下其中一项操作:

  • 调整 XY 滑块,并观察在上面窗格中的位置。
  • 移动上面窗格中的设备表示,并观察 XY 滑块值以及得出的加速度计值如何变化。

如需以 0 度、90 度、180 度或 270 度夹角放置设备,请执行以下操作:

  • Device rotation 区域,选择一个按钮以更改旋转方式。

当您对设备进行调整时,Resulting values 字段也会相应地发生变化。这些是应用可以访问的值。

如需详细了解这些传感器,请参阅传感器概览移动传感器位置传感器

Virtual sensors > Additional sensors

模拟器可以模拟各种位置传感器和环境传感器。 您可以通过模拟器调整下列传感器,以便使用应用对它们进行测试:

  • 环境温度传感器:此环境传感器用于测量环境的气温。
  • 磁场传感器:此位置传感器用于分别测量 X 轴、Y 轴和 Z 轴的环境磁场。测得的值以微特斯拉 (μT) 为单位。
  • 近程传感器:此位置传感器用于测量设备与某个对象的距离,例如,它可以通知手机脸部在接近以拨打电话。 必须在 AVD 中启用近程传感器,才能使用该控件。
  • 光传感器:此环境传感器用于测量光照。测得的值以勒克斯为单位。
  • 压力传感器:此环境传感器用于测量环境气压。 测得的值以毫巴 (hPa) 为单位。
  • 相对湿度传感器:此环境传感器用于测量环境的相对湿度。

如需详细了解这些传感器,请参阅传感器概览位置传感器环境传感器

错误报告 如果您在使用模拟器时遇到问题,可以准备并发送 bug 报告。模拟器会自动收集屏幕截图、日志和其他数据供用户生成 bug 报告。
录制和播放 请参阅屏幕录制
Google Play 如果 AVD 是包含 Play 商店应用的系统映像,则会显示 Google Play 服务版本信息。
Settings > General
  • Emulator window theme:选择 LightDark
  • Send keyboard shortcuts to:默认情况下,某些按键组合会触发模拟器控件快捷键。如果您开发的应用(例如面向带有蓝牙键盘的设备的应用)包含键盘快捷键,则可以更改此设置,将所有键盘输入发送到虚拟设备,包括在模拟器中属于快捷键的输入。
  • Screenshot save location:点击文件夹图标,指定一个位置来保存模拟器的屏幕截图。
  • Use detected ADB location:如果您是从 Android Studio 运行模拟器,请选择此设置(默认设置)。 如果您是从 Android Studio 之外运行模拟器,并且想让它使用特定的 adb 可执行文件,请取消选中此选项并指定 SDK 工具的位置。如果此设置不正确,则截取屏幕截图和拖放应用安装等功能将无法使用。
  • When to send crash reports:选择 AlwaysNeverAsk
  • Show window frame around device:默认情况下,带有设备皮肤文件的模拟器不显示周围的窗口框架。
Settings > Proxy

默认情况下,模拟器使用 Android Studio HTTP 代理设置。 您可以在此屏幕中为模拟器手动定义 HTTP 代理配置。要了解详情,请参阅结合使用模拟器和代理

Settings > Advanced
  • OpenGL ES renderer:选择图形加速类型 (此选项等同于 -gpu 命令行选项)。
    • Autodetect based on host:让模拟器根据计算机设置选择硬件或软件图形加速。它会检查 GPU 驱动程序是否与出现问题的已知 GPU 驱动程序匹配;如果匹配,模拟器会停用图形硬件模拟并改为使用 CPU。
    • ANGLE:(仅适用于 Windows)。使用 ANGLE Direct3D 在软件中渲染图形。
    • SwiftShader:使用 SwiftShader 在软件中渲染图形。
    • Desktop native OpenGL:在主机上使用 GPU。此选项通常速度最快。不过,某些驱动程序在渲染 OpenGL 图形时会出现问题,因此该选项可能不够可靠。
  • OpenGL ES API level:选择要在模拟器中使用的 OpenGL ES 最高版本。
    • Autoselect:让模拟器根据主机和客户机支持选择 OpenGL ES 版本。
    • Renderer maximum (up to OpenGL ES 3.1):尝试使用 OpenGL ES 的最高版本。
    • Compatibility (OpenGL ES 1.1/2.0):使用与大多数环境都兼容的 OpenGL ES 版本。
Help > Keyboard Shortcuts

此窗格提供了模拟器键盘快捷键的完整列表。要在使用模拟器时打开此窗格,请按 F1键(在 macOS 上,按 Command+ /)。

要使快捷键能使用,必须将 General 设置窗格中的 Send keyboard shortcuts 选项设置为 Emulator controls (default)

Help > Emulator Help

如需转到模拟器的在线文档,请点击 Documentation

如需提交有关模拟器的错误,请点击 Send feedback。 如需了解详情,请参阅如何报告模拟器错误

Help > About

查看模拟器使用的是哪个 adb 端口,以及 Android 和模拟器版本号。将最新可用的模拟器版本与您的版本进行比较,确定您是否安装了最新的软件。

模拟器序列号为 emulator-adb_port,您可以将其指定为 adb 命令行选项(举例而言)。