首页 > 代码库 > 基于 cm-11 源码编译模拟器

基于 cm-11 源码编译模拟器

以前对于cm的源码编译都是基于固定机型的,有的时候需要使用模拟器,这边就记录一下使用cm的源码来如何编译android 模拟器,不过在做这件事情前你最好评估一下自己的机器配置。这里给出的推荐的配置是,i5以上的cpu,硬盘要固态硬盘,否则模拟器的启动和加载的速度几乎不可以忍受。


android源码编译完成以后生成的目录都是在源码目录下的out文件夹下

out/target 表示生成的是目标机器一般是手机上的各种程序,比如rom等

out/host   表示生成的是对于宿主机器上的各种工具,比如adb aapt dexdump等这些工具以及一些库文件

我们这里主要关心 out/target 下面生成的文件,在cm源码中经过不同的配置对于不同的机型 target下有相应的目录,比如 前面提到的maguro,crespo等,这里对于模拟器对应的目录是 generic 这个目录。

而对于android模拟器需要启动的最基本的几个文件如下:

1 kernel文件  内核文件,包括bootloader,开机动画等,android模拟器使用的goldfish内核,需要到githup下载基于cm 11.0的goldfish linux内核。


2 system.img  挂载 system目录的镜像
3 ramdisk.img   挂载磁盘的镜像
4 userdata.img  挂载用户数据的镜像

有了前面的介绍以后,我们开始进行基于cm 11.0源码的模拟器编译。



一 前置条件

1 下载一套完整的 cm 11.0源码,下载地址和过程见前面的博文

2 下载配套的goldfish 内核代码
  这里下载的地址是
  https://github.com/CyanogenMod/android_kernel_goldfish/tree/cm-11.0
  下载完成以后,将代码解压缩在 kernel/goldfish 即可



二 编译
进入源码目录
1  . build/envsetup.sh
2  lunch
   找到 cm_goldfish-eng

Which would you like? [aosp_arm-eng]
   填入 cm_goldfish-eng 前面的数字,完成配置

3 make -j4

经过漫长的编译,在 out/target/product/generic 目录下生成了各种img文件,如下图


wKiom1PoX7iwR_22AAJUwU4YSgs464.jpg



3 运行模拟器
emulator -kernel /DiskCM11/cm-11/out/target/product/generic/kernel -data /DiskCM11/cm-11/out/target/product/generic/userdata.img  -system /DiskCM11/cm-11/out/target/product/generic/system.img  -ramdisk /DiskCM11/cm-11/out/target/product/generic/ramdisk.img

这个命令就可以将模拟器给运行起来了,但是如果硬盘和电脑不给力的话,模拟器的速度实在不敢恭维。