標籤:android 模擬器
以前對於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檔案,如
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/45/79/wKiom1PoX7iwR_22AAJUwU4YSgs464.jpg" title="tu3.png" alt="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
這個命令就可以將模擬器給運行起來了,但是如果硬碟和電腦不給力的話,模擬器的速度實在不敢恭維。