Android 模拟器工具介绍

前面的小节我们学习了 Android SDK 平台工具。本小节我们学习 Android 模拟器工具。

1. 概述

Android 模拟器工具位于以下位置:android_sdk/emulator/

主要的命令行工具有如下这些:

  • emulator
    一种基于 QEMU 的设备模拟工具,可用于在实际的 Android 运行时环境中调试和测试应用。

  • mksdcard
    可帮助我们创建可与模拟器一起使用的磁盘映像,以模拟存在外部存储卡(例如 SD 卡)的情形。

2. emulator

2.1 语法

  • 查看 AVD 名称列表
emulator -list-avds
  • 启动模拟器
emulator -avd avd_name [ {-option [value]} … ]
  • 列出所有模拟器选项
emulator -help
  • 获取有关特定选项的详细帮助
emulator -help-option

例如:

emulator -help-netspeed
  • 列出模拟器环境变量
emulator -help-environment
  • 列出调试标记
emulator -help-debug-tags

2.2 命令选项

  • 常用选项
命令选项 说明
-no-snapshot-load 执行冷启动,并在退出时保存模拟器状态。
-no-snapshot-save 执行快速启动,但在退出时不保存模拟器状态。
-no-snapshot 彻底停用快速启动功能。
-camera-back
-camera-front
设置后置或前置相机的模拟模式。
emulated:模拟器在软件中模拟相机。
webcamn:模拟器使用连接到开发计算机的摄像头,由数字指定,例如 webcam0。
none:在虚拟设备中停用相机。
-webcam-list 列出开发计算机上可用于模拟的摄像头。
-memory 指定物理 RAM 大小,范围为从 128 MB 到 4096 MB。
-sdcard 指定 SD 卡分区映像文件的文件名和路径。
-wipe-data 删除用户数据并从初始数据文件中复制数据。
-debug 启用或停用一个或多个标记的调试消息显示。
-logcat 启用一个或多个标记的 logcat 消息显示,并将其写入终端窗口。
-show-kernel 在终端窗口中显示内核调试消息。
-verbose 将模拟器初始化消息输出到终端窗口。
-dns-server 使用指定的 DNS 服务器。
-http-proxy 通过指定的 HTTP/HTTPS 代理进行所有 TCP 连接。
-netdelay 模拟设置网络延迟
-netfast 停用网络节流功能。
-netspeed 设置网络速度模拟。
-port 设置用于控制台和 adb 的 TCP 端口号。
-tcpdump 捕获网络数据包并将其存储在文件中。
-accel 配置模拟器虚拟机加速。
-accel-check 检查是否已安装模拟器虚拟机加速所需的管理程序(HAXM 或 KVM)。
-engine 指定模拟器引擎:
auto:自动选择引擎(默认值)。
classic:使用较旧的 QEMU 1 引擎。
qemu2:使用较新的 QEMU 2 引擎。
-gpu 选择 GPU 模拟模式。
-version 显示模拟器版本号。
-no-boot-anim 在模拟器启动期间停用启动动画以加快启动速度。
-screen 设置模拟触摸屏模式。
touch:模拟触摸屏(默认值)。
multi-touch:模拟多点触控屏幕。
no-touch:停用触摸屏和多点触控屏幕模拟。
  • 高级选项
命令选项 说明
-bootchart 启用 bootchart,设有超时(以秒为单位)。
-cache 指定缓存分区映像文件。
-cache-size 设置缓存分区大小(以 MB 为单位)。
-data 设置用户数据分区映像文件。
-datadir 使用绝对路径指定数据目录。
-force-32bit 在 64 位平台上使用 32 位模拟器。
-help-disk-images 获取有关磁盘映像的帮助。
-help-char-devices 获取有关字符 device 规范的帮助。
-help-sdk-images 获取与应用开发者相关的磁盘映像的帮助。
-help-build-images 获取与平台开发者相关的磁盘映像的帮助。
-initdata 指定数据分区的初始版本。
-kernel 使用特定的模拟内核。
-noaudio 停用对此虚拟设备的音频支持。
-nocache 启动没有缓存分区的模拟器。
-no-snapshot 禁止自动加载和保存操作。
-no-snapshot-load 阻止模拟器从快照存储加载 AVD 状态。
-no-snapshot-save 阻止模拟器在退出时将 AVD 状态保存到快照。
-no-window 停用模拟器上的图形窗口显示。
-partition-size 指定系统数据分区大小(以 MB 为单位)。
-prop 在启动时在模拟器中设置 Android 系统属性。
-ramdisk 指定 ramdisk 启动映像。
-shell 在当前终端上创建根 shell 控制台。
-sysdir 使用绝对路径指定系统目录。
-system 指定初始系统文件。
-writable-system 使用此选项在模拟会话期间创建可写系统映像。

3. mksdcard

我们可以使用 mksdcard 工具创建 FAT32 磁盘映像,然后将该映像加载到运行不同 Android 虚拟设备 (AVD) 的模拟器中,以模拟多个设备中存在相同 SD 卡的情形。

3.1 语法

mksdcard -l label size file

以下示例创建 mySdCardFile.img 磁盘映像:

mksdcard -l mySdCard 1024M mySdCardFile.img

启动两个运行不同 AVD 的模拟器。使用 -sdcard 标记来指定我们创建的磁盘映像的名称和路径:

emulator -avd Pixel_API_25 -sdcard mySdCardFile.img
emulator -avd NEXUS_6_API_25 -sdcard mySdCardFile.img

3.2 命令选项

命令选项 说明
-l 指定要创建的磁盘映像的卷标。
size 一个整数,用于指定要创建的磁盘映像的大小。
file 指定要创建的磁盘映像的路径/文件名。此路径相对于当前的工作目录指定。

4. 小结

本节课程我们主要学习了 Android 模拟器工具。本节课程的重点如下:

  • 掌握如何使用 Android 模拟器工具。