编译并运行Android4.0模拟器
2012-09-08 17:29:03 来源:WEB开发网核心提示: 由于模拟器要启动android系统,它要使用几个映像文件,编译并运行Android4.0模拟器(2),分别是:kernel-qemu , system.img, userdata.img, ramdisk.imgØ kernel-qemu:内核映像文件,它是linux操作系统针对qemu模拟器编译的内
由于模拟器要启动android系统,它要使用几个映像文件,分别是:kernel-qemu , system.img, userdata.img, ramdisk.img
Ø kernel-qemu:内核映像文件,它是linux操作系统针对qemu模拟器编译的内核文件,里面安装有qemu的仿真硬件驱动,如果将来在开发板或手机上移植android,那么,第一步就是要先make出一个支持开发板或手机的kernel来。
Ø system.img:是android系统的文件系统,里面包含了android系统的应用程序(apk),系统用到的各种库(jar, so, a)和资源,配置文件(etc目录下),系统命令(bin,usr/bin, xbin),该映像文件是由out/target/product/PRODUCT/system目录打包生成的,我们可以对这个目录里的东西进行定制化,比如,你要想让android系统默认为安装一个应用程序,那么可以将要安装的apk文件拷贝到out/target/product/PRODUCT/system/app目录下
Ø userdata.img:用户数据映像,里面包含有程序安装信息,好比如是windows的C:/Program Files/目录
Ø ramdisk.img:内存磁盘映像,这个文件对于没有做过Linux移植的人来说,不好理解,linux内核启动起来,要挂载一个文件系统作为自己的根文件系统,通常文件系统是存放在块设备上的,也就是硬盘或flash上的,里面含有Linux内核启动过程中依赖的一些程序和配置文件,前面所述的userdata.img和system.img映像,在linux系统启动起来后挂载到其data,system目录下。
我们可以通过下面的脚本run_emulator.sh,来指定Android模拟器来加载指定的映像文件:
#!/bin/bash
PWD_PATH=`pwd`
IMG_PATH=$PWD_PATH/out/target/product/generic
exportPATH=$PWD_PATH/out/host/linux-x86/sdk/android-sdk_eng.linux_linux-x86/tools:$PATH
exportANDROID_PRODUCT_OUT=$PWD_PATH/out/target/product/generic
export ANDROID_SWT=$PWD_PATH/out/host/linux-x86/framework
emulator-kernel$PWD_PATH/kernel/goldfish/arch/arm/boot/zImage
注:
ANDROID_PRODUCT_OUT:环境变量必须指定,emulator就是从该环境变量下查找所有的映像文件的
-kernel:指定内核映像
当然也可以分别指定每个映像文件,通过下面的命令:
$ emulator-kernel$PWD_PATH/kernel/goldfish/arch/arm/boot/zImage\
-image $IMG_PATH/system.img \
-data $IMG_PATH/userdata.img\
-ramdisk $IMG_PATH/ramdisk.img
注:
-system指定system.img
-data指定userdata.img
-ramdisk指定ramdisk.img
更多精彩
赞助商链接