创建和管理虚拟设备

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

要打开 AVD Manager,请执行以下某项操作:

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

关于 AVD

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

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

硬件配置文件

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

请注意,只有部分指定的硬件配置文件包括 Play 商店。这表明这些配置文件完全符合 CTS 规范,并且可以使用包含 Play 商店应用的系统映像。

系统映像

标有 Google API 的系统映像具有对 Google Play 服务的访问权限。Play Store 列中带有 Google Play 徽标的系统映像包含 Google Play 商店应用并且具有对 Google Play 服务的访问权限,Extended controls 对话框中会显示 Google Play 标签,其中提供了一个方便的按钮,用于在设备上更新 Google Play 服务。

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

存储区域

AVD 在开发计算机上具有专用的存储区域。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 页面。

    请注意,只有部分指定的硬件配置文件包括 Play 商店。这表明这些配置文件完全符合 CTS 规范,并且可以使用包含 Play 商店应用的系统映像。

  3. 选择硬件配置文件,然后点击 Next
  4. 如果您未看到自己所需的硬件配置文件,则可以创建导入一个硬件配置文件。

    系统会显示 System Image 页面。

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

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

    目标设备的 API 级别非常重要,因为您的应用将无法在 API 级别低于应用所需级别(根据应用清单文件的 minSdkVersion 属性中所规定)的系统映像上运行。要详细了解系统 API 级别与 minSdkVersion 之间的关系,请参阅对您的应用进行版本控制

    如果您的应用在清单文件中声明了 <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 附带的预定义硬件配置文件无法修改。不过,您可以复制它们并修改副本。

硬件配置文件属性 说明
设备名称 硬件配置文件的名称。名称可以包含大小写字母、从 0 至 9 的数字、英文句点 (.)、下划线 (_)、半角括号 ( () ) 和空格。存储硬件配置文件的文件的名称来自硬件配置文件名称。
设备类型 选择下列其中一项:
  • 手机/平板电脑
  • Wear OS
  • Android TV
  • Chrome 操作系统设备
  • Android Automotive
屏幕尺寸 屏幕的实际尺寸(以英寸为单位),按照对角线测量。如果尺寸大于您的计算机屏幕,启动时尺寸会缩小。
屏幕分辨率 输入宽度和高度(以像素为单位)以指定模拟屏幕上的总像素数。
圆形 如果设备(如 Wear OS 设备)采用圆形屏幕,请选择此选项。
内存:RAM 输入设备的 RAM 大小,然后选择以下单位之一:B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。
输入:具有硬件按钮(返回/主屏幕/菜单) 如果您的设备具有硬件导航按钮,请选择此选项。如果这些按钮仅在软件中实现,请取消选择此选项。如果您选择此选项,屏幕上将不会显示按钮。无论是哪种情况,您都可以使用模拟器侧面板“按”这些按钮。
输入:具有硬件键盘 如果您的设备具有硬件硬盘,请选择此选项。如果没有,请取消选择此选项。如果您选择此选项,屏幕上将不会显示键盘。无论是哪种情况,您都可以使用计算机键盘向模拟器发送按键。
导航样式

选择下列其中一项:

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

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

支持的设备状态

选择一个或两个选项:

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

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

相机

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

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

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

传感器:加速度计 如果设备具有可以帮助确定其方向的硬件,请选择此选项。
传感器:陀螺仪 如果设备具有可以检测旋转或扭动的硬件,请选择此选项。与加速度计结合使用时,陀螺仪可以更顺畅地检测方向和支持六轴方向系统。
传感器:GPS 如果设备具有支持全球定位系统 (GPS) 卫星导航系统的硬件,请选择此选项。
传感器:近程传感器 如果设备具有可以检测通话过程中设备靠近您的脸部时停用从屏幕输入的硬件,请选择此选项。
默认皮肤 选择一款可以控制设备在模拟器中显示样式的皮肤。请记住,指定相对于分辨率而言尺寸过大的屏幕意味着屏幕画面会被切断,您将无法看到完整的屏幕。要了解详情,请参阅创建模拟器皮肤

AVD 属性

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

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

AVD 属性 说明
AVD 名称 AVD 的名称。名称可以包含大小写字母、从 0 至 9 的数字、英文句点 (.)、下划线 (_)、半角括号 ( () )、短划线 (-) 和空格。存储 AVD 配置的文件的名称来自 AVD 名称。
AVD ID(高级) AVD 文件名来自 ID,您可以使用该 ID 从命令行引用 AVD。
硬件配置文件 点击 Change 可以在 Select Hardware 页面中选择其他硬件配置文件。
系统映像 点击 Change 可以在 System Image 页面中选择其他系统映像。需要有效的互联网连接才能下载新映像。
启动方向

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

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

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

相机(高级)

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

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

Emulated 设置可生成软件生成的图片,而 Webcam 设置会使用开发计算机网络摄像头拍摄照片。

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

网络:速度(高级)

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

  • GSM - Global System for Mobile Communications
  • HSCSD - High-Speed Circuit-Switched Data
  • GPRS - Generic Packet Radio Service
  • EDGE - Enhanced Data rates for GSM Evolution
  • UMTS - Universal Mobile Telecommunications System
  • HSDPA - High-Speed Downlink Packet Access
  • LTE - Long-Term Evolution
  • Full (default) - 以计算机允许的最大速度传输数据。
网络:延迟(高级) 选择网络协议以设置协议将数据包从一点传输至另一点所需的时间(延迟)。
模拟性能:图形

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

  • Hardware - 使用计算机显卡更快地渲染。
  • Software - 在软件中模拟图形,这种方式在显卡中的渲染遇到问题时非常有用。
  • Automatic - 由模拟器根据显卡决定最佳选项。
模拟性能:启动选项(高级)
  • Cold boot - 每次从设备关闭状态开机时启动设备。
  • Quick boot - 从保存的快照中加载设备状态来启动设备。要了解详情,请参阅使用 Quick Boot 运行模拟器
模拟性能:多核 CPU(高级) 选择计算机上您要用于模拟器的处理器内核数量。使用更多的处理器内核可加快模拟器的运行速度。
内存和存储:RAM 设备上的 RAM 量。此值由硬件制造商设置,不过如果需要(比如为了实现更快的模拟器操作),您可以将其替换。增加 RAM 大小会占用计算机更多的资源。输入 RAM 大小,然后选择以下单位之一:B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。
内存和存储:虚拟机堆 虚拟机堆大小。此值由硬件制造商设置,不过如果需要,您可以将其替换。输入堆大小,然后选择以下单位之一:B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。要详细了解 Android 虚拟机,请参阅不同虚拟机的内存管理
内存和存储:内部存储 设备上可用的不可移动内存空间的大小。此值由硬件制造商设置,不过如果需要,您可以将其替换。输入大小,然后选择以下单位之一:B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。
内存和存储:SD 卡 设备上可用于存储数据的可移动内存空间的大小。要使用由 Android Studio 管理的虚拟 SD 卡,请选择 Studio-managed,输入大小,然后选择以下单位之一:B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)或者 TB(太字节)。如果使用相机,建议最小内存为 100 MB。要管理文件中的空间,请选择 External file,然后点击 ... 指定文件和位置。要了解详情,请参阅 mksdcardAVD 数据目录
设备框架:启用设备框架 选择此选项可以在模拟真实设备外观的模拟器窗口周围启用框架。
自定义皮肤定义(高级) 选择一款可以控制设备在模拟器中显示样式的皮肤。请记住,指定相对于分辨率而言过大的屏幕意味着屏幕画面会被切断,您将无法看到完整的屏幕。要了解详情,请参阅创建模拟器皮肤
键盘:启用键盘输入(高级) 如果要使用硬件键盘与模拟器进行交互,请选择此选项。此选项对 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 模拟器皮肤文件规范