Save the date! Android Dev Summit is coming to Sunnyvale, CA on Oct 23-24, 2019.

创建和管理虚拟设备

Android Virtual Device (AVD) 是一个配置,用于定义您想要在 Android Emulator 中模拟的 Android 手机、平板电脑、Wear OS 或 Android TV 设备的特征。 AVD Manager 是一个可以在 Android Studio 中启动的界面,可以帮助您创建和管理 AVD。

要打开 AVD Manager,请执行以下操作之一:

  • 选择 Tools > AVD Manager
  • 点击工具栏中的 AVD Manager AVD Manager 图标

关于 AVD

AVD 包括硬件配置、系统映像、存储区域、皮肤和其他属性。

我们建议您根据清单中的 <uses-sdk> 设置为您的应用可能支持的每个系统映像创建一个 AVD。

硬件配置

硬件配置定义设备出厂时的特征。 AVD Manager 会预加载特定的硬件配置,如 Pixel 设备,您可以根据需要定义或自定义硬件配置。

请注意,只有部分硬件配置显示为包括应用商店。 这表示这些配置完全符合CTS 标准,可以使用包括“应用商店”应用的系统映像。

系统映像

使用 Google API 标记的系统映像包括对 Google Play 服务的访问权。 使用 Play Store 列的 Google Play 徽标标记的系统映像包括 Google Play 商店应用对 Google Play 服务的访问权,其中包括 Extended controls 对话框中的 Google Play 标签,可提供便于在设备上更新 Google Play 服务的按钮。

为确保应用安全并且与物理设备的体验一致,包括 Google Play 商店的系统映像使用发布密钥进行签署,这意味着您无法获得这些映像的高级权限(根权限)。 如果需要高级权限(根权限)以帮助您的应用排查问题,您可以使用不包括 Google 应用或服务的 Android 开源项目 (AOSP) 系统映像。

存储区域

AVD 在您的开发计算机上有专门的存储区域, 可以存储设备用户数据,如已安装的应用和设置,以及模拟 SD 卡。 必要时,您可以利用 AVD Manager 擦除用户数据,将设备恢复到新设备的数据水平。

皮肤

模拟器皮肤指定设备的外观。 AVD Manager 提供了一些预定义的皮肤。 您也可以自己定义皮肤,或者使用第三方提供的皮肤。

AVD 和应用功能

确保您的 AVD 定义包括您的应用所依赖的设备功能。 请参阅硬件配置属性AVD 属性,了解您可以在 AVD 中定义的功能列表。

创建 AVD

提示:如果您想在模拟器中启动您的应用,请改为从 Android Studio 运行您的应用,然后在出现的 Select Deployment Target 对话框中,点击 Create New Virtual Device

要创建新的 AVD,请执行下列操作:

  1. 通过点击 Tools > AVD Manager 打开 AVD Manager。
  2. 点击位于 AVD Manager 对话框底部的 Create Virtual Device

    出现 Select Hardware 页面。

    请注意,只有部分硬件配置显示为包括应用商店。 这表示这些配置完全符合CTS 标准,可以使用包括“应用商店”应用的系统映像。

  3. 选择硬件配置,然后点击 Next
  4. 如果您没有看到想要的硬件配置,可以创建导入硬件配置。

    出现 System Image 页面。

  5. 选择针对特定 API 级别的系统映像,然后点击 Next
  6. Recommended 标签会列出推荐的系统映像。 其他标签包含更完整的列表。 右侧窗格介绍选定的系统映像。 x86 映像在模拟器中运行得最快。

    如果您在系统映像旁看到 Download,需要点击它以下载相应的系统映像。 您必须连接到互联网才能下载。

    目标设备的 API 级别非常重要,因为您的应用将无法在 API 级别低于应用所需级别(在应用 manifest 文件的 minSdkVersion 属性中定义)的系统映像上运行。 如需了解有关系统 API 级别与 minSdkVersion 之间关系的详细信息,请参阅管理应用版本

    如果您的应用在 manifest 文件中声明了 <uses-library> 元素,应用会要求存在外部库的系统映像。 如果您想要在模拟器上运行应用,请创建包含所需库的 AVD。 为此,您需要使用适用于 AVD 平台的插件组件;例如包含 Google 地图库的 Google API 插件。

    出现 Verify Configuration 页面。

  7. 根据需要更改 AVD 属性,然后点击 Finish

    点击 Show Advanced Settings 显示更多设置,如皮肤。

  8. 新 AVD 出现在 Your Virtual Devices 页面或 Select Deployment Target 对话框中。

要从副本开始创建 AVD,请执行以下操作:

  1. 从 AVD Manager 的 Your Virtual Devices 页面中,右键点击 AVD,然后选择 Duplicate
  2. 或点击 Menu 并选择 Duplicate

    出现 Verify Configuration 页面。

  3. 如果您需要在 System ImageSelect Hardware 页面上进行更改,请点击 ChangePrevious
  4. 进行更改,然后点击 Finish
  5. AVD 出现在 Your Virtual Devices 页面中。

创建硬件配置

AVD Manager 会为常见设备提供预定义的硬件配置,这样您就可以轻松地将它们添加至您的 AVD 定义中。 如果您需要定义不同的设备,则可以创建新的硬件配置。 您可以从头定义新的硬件配置,也可以复制硬件配置作为基础。 预加载的硬件配置无法编辑。

要从头创建新的硬件配置,请执行以下操作:

  1. Select Hardware 页面中,点击 New Hardware Profile
  2. Configure Hardware Profile 页面中,根据需要更改硬件配置属性
  3. 点击 Finish
  4. 您的新硬件配置出现在 Select Hardware 页面中。 您也可以选择性地点击 Next,使用该硬件配置创建 AVD 。 或者,点击 Cancel 返回至 Your Virtual Devices 页面或 Select Deployment Target 对话框。

要从副本开始创建硬件配置,请执行以下操作:

  1. Select Hardware 页面中,选择硬件配置,然后点击 Clone Device
  2. 或者,右键点击硬件配置,然后选择 Clone

  3. Configure Hardware Profile 页面中,根据需要更改硬件配置属性
  4. 点击 Finish
  5. 您的新硬件配置出现在 Select Hardware 页面中。 您也可以选择性地点击 Next,使用该硬件配置创建 AVD 。 或者,点击 Cancel 返回至 Your Virtual Devices 页面或 Select Deployment Target 对话框。

修改现有 AVD

Your Virtual Devices 页面,您可以对现有的 AVD 执行以下操作:

  • 要修改 AVD,请点击 Edit this AVD ,然后进行修改
  • 要删除 AVD,请右键点击 AVD,然后选择 Delete。 或点击 Menu 并选择 Delete
  • 要在磁盘上显示关联的 AVD .ini.img 文件,请右键点击 AVD,然后选择 Show on Disk。 或点击 Menu 并选择 Show on Disk
  • 要查看 AVD 配置详细信息(您可以将其包含在提交给 Android Studio 团队的任何错误报告中),请右键点击 AVD,然后选择 View Details。 或点击 Menu 并选择 View Details

修改现有的硬件配置

Select Hardware 页面,您可以对现有的硬件配置执行以下操作:

  • 要修改硬件配置,请选择相应配置,然后点击 Edit Device。 或者,右键点击硬件配置,然后选择 Edit。 接下来,进行修改
  • 要删除硬件配置,请右键点击相应配置,然后选择 Delete

您无法修改或删除预定义的硬件配置。

运行和停止模拟器以及清除数据

Your Virtual Devices 页面,您可以对模拟器执行以下操作:

  • 要运行使用 AVD 的模拟器,请双击 AVD。 或者点击 Launch
  • 要停止运行中的模拟器,请右键点击 AVD,然后选择 Stop。 或点击 Menu 并选择 Stop
  • 要为模拟器清除数据,并返回到首次定义时的状态,请右键点击 AVD,然后选择 Wipe Data。 或点击 Menu 并选择 Wipe Data

导入和导出硬件配置

Select Hardware 页面,您可以导入和导出硬件配置:

  • 要导入硬件配置,请点击 Import Hardware Profiles,然后选择您的计算机上包含定义的 XML 文件。
  • 要导出硬件配置,请右键点击相应配置,然后选择 Export。 指定您想要存储包含定义的 XML 文件的位置。

硬件配置属性

您可以在 Configure Hardware Profile 页面中指定硬件配置的下列属性。 AVD 配置属性可以替换硬件配置属性,而您在模拟器运行时设置的模拟器属性可以替换前两者。

AVD Manager 包含的预定义硬件配置属性无法修改。 不过,您可以复制它们并修改副本。

硬件配置属性 描述
Device Name 硬件配置的名称。 名称可以包含大小写字母、从 0 至 9 的数字、句点 (.)、下划线 (_)、括号 ( () ) 以及空格。 存储硬件配置的文件的名称来自硬件配置名称。
Device Type 选择下列其中一项:
  • Phone/Tablet
  • Wear OS
  • Android TV
Screen Size 界面的实际尺寸(单位:英寸),按照对角线测量。 如果尺寸大于您的计算机界面,启动时尺寸会缩小。
Screen Resolution 键入宽度和高度(单位:像素)以指定模拟界面上的总像素数。
Round 如果设备(如某些 Wear OS 设备)具有圆形界面,请选择此选项。
Memory:RAM 键入设备的 RAM 大小,然后选择单位,选项包括 B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。
Input:Has Hardware Buttons (Back/Home/Menu) 如果您的设备具有硬件导航按钮,请选择此选项。 如果这些按钮仅集成在软件中,请取消选择此选项。 如果您选择此选项,按钮将不会出现在界面上。 任何情况下,您都可以使用模拟器侧面板“按”这些按钮。
Input:Has Hardware Keyboard 如果您的设备具有硬键盘,请选择此选项。 如果没有,请取消选择此选项。 如果您选择此选项,界面上将不会显示键盘。 任何情况下,您都可以使用计算机键盘向模拟器发送按键。
导航样式

选择下列其中一项:

  • None - 无硬件控件。 通过软件导航。
  • D-pad - 方向键支持。
  • Trackball
  • Wheel

这些选项针对设备本身的实际硬件控件。 不过,由外部控制器发送至设备的事件也是如此。

Supported Device States

选择一个或两个选项:

  • Portrait - 纵向跨度大于宽度。
  • Landscape - 横向跨度大于高度。

如果您同时选择两个选项,则在模拟器中可以在两个屏幕方向之间切换。 您至少必须选择一个选项才能继续。

Cameras

要启用相机,请选择一个或两个选项:

  • Back-Facing Camera - 镜头背对用户。
  • Front-Facing Camera - 镜头朝向用户。

稍后,您可以使用模拟器提供的网络摄像头或照片模拟使用相机拍照。

Sensors:Accelerometer 如果设备具有可以帮助确定其屏幕方向的硬件,请选择此选项。
Sensors:Gyroscope 如果设备具有检可以测旋转或扭曲的硬件,请选择此选项。 与加速度计一起使用时,陀螺仪可以更方便地检测屏幕方向和支持六轴屏幕方向系统。
Sensors:GPS 如果设备具有支持全球定位系统 (GPS) 卫星导航系统的硬件,请选择此选项。
Sensors:Proximity Sensor 如果设备具有可以检测通话过程中设备是否靠近您的脸部以停用从界面输入的硬件,请选择此选项。
Default Skin 选择一款可以控制设备在模拟器中显示样式的皮肤。 请记住,指定相对于分辨率而言过大的界面意味着界面会被截断,您将无法看到完整的界面。 如需了解详细信息,请参阅创建模拟器皮肤

AVD 属性

您可以在 Verify Configuration 页面中为 AVD 配置指定下列属性。 AVD 配置指定了开发计算机与模拟器之间的交互,以及您想要在硬件配置中替换的属性。

AVD 配置属性可以替换硬件配置属性。 您在模拟器运行时设置的模拟器属性可以替换前两者。

AVD 属性 描述
AVD Name AVD 的名称。 名称可以包含大小写字母、从 0 至 9 的数字、句点 (.)、下划线 (_)、括号 ( () )、短划线 (-) 以及空格。 存储 AVD 配置的文件的名称来自 AVD 名称。
AVD ID (Advanced) AVD 文件名来自 ID,您可以使用 ID 从命令行引用 AVD。
Hardware Profile 点击 Change 可以在 Select Hardware 页面中选择不同的硬件配置。
System Image 点击 Change 可以在 System Image 页面中选择不同的系统映像。 需要活动互联网连接才能下载新映像。
Startup Orientation

为初始模拟器屏幕方向选择一个选项:

  • Portrait - 纵向跨度大于宽度。
  • Landscape - 横向跨度大于高度。

选项仅在硬件配置文件中选定时启用。 在模拟器中运行 AVD 时,如果硬件配置中同时支持纵向和横向,那么您可以更改屏幕方向。

Camera (Advanced)

要启用相机,请选择一个或两个选项:

  • Front - 镜头背对用户。
  • Back - 镜头朝向用户。

Emulated 设置产生软件生成的图像,而 Webcam 设置则是利用开发计算机的网络摄像头拍摄图片。

此选项仅在硬件配置中选定时可用;不适用于 Wear OS 和 Android TV。

Network:Speed (Advanced)

选择网络协议以确定数据传输的速度:

  • GSM - 全球移动通信系统
  • HSCSD - 高速电路交换数据
  • GPRS - 通用分组无线业务
  • EDGE - GSM 演进增强数据传输率
  • UMTS - 通用移动电信系统
  • HSDPA - 高速下行链路分组接入
  • LTE - 长期演进
  • Full (default) - 以计算机允许的最大速度传输数据。
Network:Latency (Advanced) 选择网络协议以设置协议将数据包从一点传输至另一点所需的时间(延迟)。
Emulated Performance:Graphics

选择图形在模拟器中的渲染方式:

  • Hardware - 使用计算机显卡更快地渲染。
  • Software - 在软件中模拟图形,当显卡中的渲染遇到问题时这种方式非常有用。
  • Auto - 由模拟器根据显卡决定最佳选项。
Emulated Performance:Boot option (Advanced)
  • Cold boot - 每次都通过在设备关机状态开机来启动设备。
  • Quick boot - 通过从保存的快照加载设备状态来启动设备。 详情请参阅 通过快速启动运行模拟器
Emulated Performance:Multi-Core CPU (Advanced) 选择计算机上您要用于模拟器的处理器核心数量。 使用更多的处理器核心可以加快模拟器的运行速度。
Memory and Storage:RAM 设备上的 RAM 大小。 此值由硬件制造商设置,不过如果需要(比如为了实现更快的模拟器操作),您可以将其替换。 增加 RAM 大小会占用计算机更多的资源。 键入 RAM 大小,然后选择单位,选项包括 B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。
Memory and Storage:VM Heap VM 堆大小。 此值由硬件制造商设置,不过如果需要,您可以将其替换。 键入堆大小,然后选择单位,选项包括 B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。 如需了解有关 Android VM 的详细信息,请参阅不同虚拟机的内存管理
Memory and Storage:Internal Storage 设备上可用的不可移动内存空间的大小。 此值由硬件制造商设置,不过如果需要,您可以将其替换。 键入大小,然后选择单位,选项包括 B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。
Memory and Storage:SD Card 设备上可用于存储数据的可移动内存空间的大小。 要使用由 Android Studio 管理的虚拟 SD 卡,请选择 Studio-managed,键入大小,然后选择单位,选项包括 B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。 如果使用相机,建议最小内存为 100 MB。 要管理文件中的空间,请选择 External File,然后点击 ... 以指定文件和位置。 如需了解详细信息,请参阅 mksdcardAVD 数据目录
Device Frame:Enable Device Frame 选择此选项可以在模拟真实设备外观的模拟器窗口周围启用框架。
Custom Skin Definition (Advanced) 选择一款可以控制设备在模拟器中显示样式的皮肤。 请记住,指定相对于皮肤而言过大的界面尺寸意味着界面会被截断,您将无法看到完整的界面。 如需了解详细信息,请参阅创建模拟器皮肤
Keyboard:Enable Keyboard Input (Advanced) 如果您想要使用硬键盘与模拟器交互,请选择此选项。 此选项对 Wear OS 和 Android TV 停用。

创建模拟器皮肤

Android 模拟器皮肤是定义模拟器显示画面的视觉和控制元素的一系列文件。 如果 AVD 设置中可用的皮肤定义无法满足您的要求,您可以创建自己的自定义皮肤定义,然后将其应用到 AVD。

每个模拟器皮肤均包含:

  • 一个 hardware.ini 文件
  • 用于支持的屏幕方向(横向、纵向)和物理配置的布局文件
  • 用于显示元素(如背景、键和按钮)的图片文件

要创建和使用自定义皮肤,请执行以下操作:

  1. 创建一个用于保存皮肤配置文件的新目录。
  2. 在一个名为 layout 的文本文件中定义皮肤的视觉外观。 此文件可以定义皮肤的多个特征,如大小和特定按钮的图像资源。 例如:
    parts {
        device {
            display {
                width   320
                height  480
                x       0
                y       0
            }
        }
    
        portrait {
            background {
                image background_port.png
            }
    
            buttons {
                power {
                    image  button_vertical.png
                    x 1229
                    y 616
                }
            }
        }
        ...
    }
    
  3. 在相同的目录下添加设备映像的位图文件。
  4. 在代表设备设置的 hardware.ini 文件中指定其他硬件特有设备配置, 例如 hw.keyboardhw.lcd.density
  5. 将皮肤文件夹中的文件归档,然后选择归档文件作为自定义皮肤。

如需了解有关创建模拟器皮肤的更多详细信息,请参阅工具源代码中的 Android Emulator 皮肤文件规范