Android Emulator 可以模拟设备并将其显示在开发计算机上。利用该模拟器,可对 Android 应用进行原型设计、开发和测试,无需使用硬件设备。
Android Virtual Device 配置
模拟器使用 Android Virtual Device (AVD) 配置确定被模拟设备的外观、功能和系统映像。利用 AVD,可以定义被模拟设备特定的硬件方面,也可以创建多个配置来测试不同的 Android 平台和硬件排列。
系统映像
Android Emulator 运行完整的 Android 系统堆栈(一直深入至内核级别),此堆栈包含一套预安装的应用。通过 AVD Manager 获得的 Android 系统映像包含适用于 Android Linux 内核、原生库、VM 和各种 Android 软件包(例如 Android 框架和预安装应用)的代码。
关于 AVD
利用 Android Virtual Device (AVD) 定义,可以定义要在 Android Emulator 中模拟的 Android 电话、平板电脑、Android Wear 或 Android TV 设备的特征。
AVD 包括硬件配置文件、系统映像、存储区域、皮肤和其他属性。
模拟器Crash
发现不论选择32位还是64位的System Image,启动模拟器都是运行qemu-system-i386
,并且都出现crash:
Operating system: Linux
0.0.0 Linux 4.13.16-302.fc27.x86_64 #1 SMP Thu Nov 30 15:33:36 UTC 2017 x86_64
CPU: amd64
family 6 model 70 stepping 1
1 CPU
Crash reason: SIGSEGV
Crash address: 0x0
Process uptime: not available
Thread 14 (crashed)
0 qemu-system-i386 + 0x5d3f71
rax = 0x0000000000000000 rdx = 0x0000000000000000
rcx = 0x0000000000000000 rbx = 0x0000000000f00630
rsi = 0x0000000000f65808 rdi = 0x0000000000000000
rbp = 0x00000000012cd548 rsp = 0x00007fc2177fd530
r8 = 0x0000000000000000 r9 = 0x0000000000000016
r10 = 0x00000000000001a4 r11 = 0x0000000000000000
r12 = 0x00007fc1d94d4250 r13 = 0x0000000000000000
r14 = 0x00007fc1d8079c00 r15 = 0x0000000000000001
rip = 0x00000000009d3f71
Found by: given as instruction pointer in context
Stack contents:
00007fc2177fd530 30 06 f0 00 00 00 00 00 0.......
Possible instruction pointers:
1 qemu-system-i386 + 0xb00630
rsp = 0x00007fc2177fd538 rip = 0x0000000000f00630
Found by: stack scanning
Stack contents:
00007fc2177fd538 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (...............
00007fc2177fd548 16 00 00 00 00 00 00 00 d0 cb a0 00 00 00 00 00 ................
Possible instruction pointers:
但是手工直接执行/usr/bin/qemu-system-i386
指令是能够启动模拟器窗口(直到显示没有启动磁盘)
创建AVD
启动Virtual Device Configuration
在 AVD Manager 的 Your Virtual Devices 页面中,点击 Create Virtual Device。
或者,从 Android Studio 中运行您的应用。在 Select Deployment Target 对话框中,点击 Create New Emulator。
在墙内安装Android Virtual Device时下载System Image非常缓慢,甚至难以完成。所以尝试离线(手工)安装Android System Image
参考