通过
emulator -help-sdk-images可以详细了解SDK中 AVD 镜像信息
emulator -help-disk-images可以详细了解源代码
模拟器的镜像文件
基本IMG
kernel-qemu
ramdisk.img the ramdisk image used to boot the system
system.img the *initial* system image
userdata.img the *initial* data partition image
可写IMG
userdata-qemu.img the persistent data partition image
system-qemu.img an *optional* persistent system image
cache.img an *optional* cache partition image
sdcard.img an *optional* SD Card partition image
snapshots.img an *optional* state snapshots image
根据指定IMG文件的方式不同,模拟器的启动方式有以下几种:
一。SDK 方式:
1)首先,新建AVD。
2)通过 AVD name启动。如emulator -avd pad. 或者 emulator @pad
Eclipse应该是通过ADT使用这种方式启动模拟器的。
IMG文件在SDK的platform/add-on位置上。
二 。android源码方式
使用android源码方式时,需要设置ANDROID_PRODUCT_OUT变量,此变量设置了镜像的路径,emulator启动时,自动寻找相应的IMG文件。
源码编译后的IMG文件,一般在out/target/product/generic;而内核镜像在 /prebuilt/android-arm/kernel/
使用源码生成的SDK时,运行android命令时,会报错指定ANDROID_SWT变量。解决办法见另外一编文章。
而后,直接输入emulator即可,使用当前的源码IMG运行一个无sd卡的AVD。
如果需要SD卡,则首先mksdcard -l mySdCard 1024M ~/mySdCardFile.img 创建SD卡,而后emulator -sdcard ~/mySdCardFile.img即可。
总之,以源码方式启动时,不要新建AVD,与sdk方式不能混淆。(实际上,也不能新建AVD,因为android list target 可知,当前没有可用targe)
这种方式,在启动emulator时,将IMG拷贝到临时目录,当emulator退出后,则删除次临时文件夹,所以不能持久化。
这些都是与SDK方式不同的。
三。自定义IMG文件路径方式
明确的指定各个IMG文件的路径。使用emulator命令的下述可选参数,指定各个IMG路径即可即可。
-sysdir, -datadir, -kernel, -ramdisk, -system, -data, -cache
-sdcard and -snapstorage