前面已经安装好了sdk,虽然只是下载了一个最早的1.5,但至少有一个sdk了,下面就要用模拟器来运行这个sdk里面的镜像文件了.
打开 android virtual device manager 工具,点击new
配置好了,当然目前只有一个 api可以选择,所以就如下图:
选择了一个小的屏幕,这个时候点击ok,这个时候avd android 虚拟设备就已经建立好了,建立的路径是在
红色标记的那里,你到那个目录下面会发现
有这么几个文件
其中config.ini 和 hardware-qemu.ini 这两个文件很重要,打开分析一下吧
config.ini 文件
avd.ini.encoding=ISO-8859-1
hw.dPad=no
hw.lcd.density=160
hw.cpu.arch=arm
hw.device.hash=1473123938
hw.camera.back=none
disk.dataPartition.size=200M
skin.path=320x480
skin.dynamic=yes
hw.keyboard.lid=yes
hw.keyboard=yes
hw.ramSize=512
hw.device.manufacturer=Generic
hw.sdCard=no
hw.mainKeys=yes
hw.accelerometer=yes
skin.name=320x480
abi.type=armeabi
hw.trackBall=no
hw.device.name=3.2in HVGA slider (ADP1)
hw.battery=yes
hw.sensors.proximity=yes
image.sysdir.1=platforms\android-3\images\
hw.sensors.orientation=yes
hw.audioInput=yes
hw.gps=yes
vm.heapSize=16
hardware-qemu.ini 这个文件内容很多,就不全贴了
kernel.path = G:\downtest\android_test_sdk/platforms\android-3\images\/kernel-qemu
kernel.parameters = android.checkjni=1
disk.ramdisk.path = G:\downtest\android_test_sdk/platforms\android-3\images\/ramdisk.img
disk.systemPartition.initPath = G:\downtest\android_test_sdk/platforms\android-3\images\/system.img
disk.systemPartition.size = 200m
从这两个文件就让模拟器和sdk联系起来了
kernel.path = G:\downtest\android_test_sdk/platforms\android-3\images\/kernel-qemu
表示linux的内核是用的android-3\images\/kernel-qemu 这个内核,到安装的sdk目录下,果然有这个内核
当然这个内核将来也可以通过android源代码自己下载编译生成
disk.ramdisk.path = G:\downtest\android_test_sdk/platforms\android-3\images\/ramdisk.img
ramdisk.img
一个分区影像文件,它会在kernel 启动的时候,以只读的方式被 mount , 这个文件中只是包含了 /init 以及一些配置文件,这个ramdisk 被用来调用init,以及把真正的root file system mount 起来。
#其实ramdisk.img的内容就是/out/target/product/generic/root目录的压缩而已。
disk.systemPartition.initPath = G:\downtest\android_test_sdk/platforms\android-3\images\/system.img
它包含了整个系统,android 的framework,application 等等,会被挂接到 "/" 上,包含了系统中所有的二进制文件
# system.img是out/target.product/generic/目录下system目录的一个映射,类似与根文件系统的映像,放着android 的应用程序、配置文件和字体等。
有两个链接描述了各个img的作用,参考一下
http://www.360doc.com/content/11/1213/19/3700464_172010379.shtml
http://www.360doc.com/content/11/1213/19/3700464_172010221.shtml
这些都是编译好的,并且经过google严格测试才对外发布的,而调用这些镜像的文件,是放在
G:\downtest\android_test_sdk\tools\emulator 这个文件,里面有支持不同cpu的版本,也有不同操作系统的版本.
emulator 启动的前提条件是能够找到 这些内核镜像,而avd 也只不过是emulator启动时众多配置参数中的一个集成一些的配置文件而已.
而emulator 如果生成,则也可以从google源码中 make PRODUCT-sdk-sdk 中生成.但的确比较复杂,暂时不展开讨论
基本上这样的话,是不是已经能够大概理解模拟器和sdk之间的关系了
当然细节的研究还是有很多内容,不过可以留待后面的继续讲解
最后截取一张图启动好的图分享一下 呵呵