以前對于cm的源碼編譯都是基于固定機(jī)型的,有的時(shí)候需要使用模擬器,這邊就記錄一下使用cm的源碼來如何編譯android 模擬器,不過在做這件事情前你最好評估一下自己的機(jī)器配置。這里給出的推薦的配置是,i5以上的cpu,硬盤要固態(tài)硬盤,否則模擬器的啟動和加載的速度幾乎不可以忍受。
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)清河,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
android源碼編譯完成以后生成的目錄都是在源碼目錄下的out文件夾下
out/target 表示生成的是目標(biāo)機(jī)器一般是手機(jī)上的各種程序,比如rom等
out/host 表示生成的是對于宿主機(jī)器上的各種工具,比如adb aapt dexdump等這些工具以及一些庫文件
我們這里主要關(guān)心 out/target 下面生成的文件,在cm源碼中經(jīng)過不同的配置對于不同的機(jī)型 target下有相應(yīng)的目錄,比如 前面提到的maguro,crespo等,這里對于模擬器對應(yīng)的目錄是 generic 這個(gè)目錄。
而對于android模擬器需要啟動的最基本的幾個(gè)文件如下:
1 kernel文件 內(nèi)核文件,包括bootloader,開機(jī)動畫等,android模擬器使用的goldfish內(nèi)核,需要到githup下載基于cm 11.0的goldfish linux內(nèi)核。
2 system.img 掛載 system目錄的鏡像
3 ramdisk.img 掛載磁盤的鏡像
4 userdata.img 掛載用戶數(shù)據(jù)的鏡像
有了前面的介紹以后,我們開始進(jìn)行基于cm 11.0源碼的模擬器編譯。
一 前置條件
1 下載一套完整的 cm 11.0源碼,下載地址和過程見前面的博文
2 下載配套的goldfish 內(nèi)核代碼
這里下載的地址是
https://github.com/CyanogenMod/android_kernel_goldfish/tree/cm-11.0
下載完成以后,將代碼解壓縮在 kernel/goldfish 即可
二 編譯
進(jìn)入源碼目錄
1 . build/envsetup.sh
2 lunch
找到 cm_goldfish-eng
Which would you like? [aosp_arm-eng]
填入 cm_goldfish-eng 前面的數(shù)字,完成配置
3 make -j4
經(jīng)過漫長的編譯,在 out/target/product/generic 目錄下生成了各種img文件,如下圖
3 運(yùn)行模擬器
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
這個(gè)命令就可以將模擬器給運(yùn)行起來了,但是如果硬盤和電腦不給力的話,模擬器的速度實(shí)在不敢恭維。