下載源碼
創(chuàng)建分區(qū)
由于Android源碼是區(qū)分大小寫的渤昌,所以如果是mac設(shè)備寿烟,需要新建一個(gè)區(qū)分大小寫的分區(qū)來存儲(chǔ)下載的源碼澈驼。
創(chuàng)建命令:
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
因?yàn)橄螺d后的源碼大概有60G,編譯建議留70G的空間韧衣,否則可能遇到編譯失敗盅藻。如果把分區(qū)卸載了重新加載再編譯,會(huì)重頭開始編譯畅铭,意味著你可能又需要70G的空間,所以no zuo no die勃蜘,編譯存儲(chǔ)空間預(yù)留大一點(diǎn)硕噩。
增加空間命令:
hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
下載必要的工具
通過 MacPorts 獲取 Make、Git 和 GPG 程序包:
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
下載repo
確保主目錄下有一個(gè) bin/ 目錄缭贡,并且該目錄包含在路徑中:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
下載 Repo 工具炉擅,并確保它可執(zhí)行:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
新建一個(gè)文件作為存儲(chǔ)目錄
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
使用你注冊過的google賬戶作為git賬戶下載
這會(huì)增加你下載成功的幾率辉懒,如果不做,google可能會(huì)在中途斷掉鏈接
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
初始化源碼樹
repo init -u https://android.googlesource.com/platform/manifest -b android-8.0.0_r4
開始下載
repo sync
搭建編譯環(huán)境
下載nexus5x的驅(qū)動(dòng)
下載后解壓會(huì)得到一個(gè)名為extract-lge-bullhead.sh的文件谍失,放到下載好的源碼根目錄眶俩,然后執(zhí)行腳本/.extract-lge-bullhead.sh,這個(gè)時(shí)候源碼根目錄會(huì)生成一個(gè)vendor文件夾,這就是驅(qū)動(dòng)文件快鱼。
編譯準(zhǔn)備工作
- 設(shè)置文件描述符數(shù)量上限
在 Mac OS 中颠印,可同時(shí)打開的文件描述符的默認(rèn)數(shù)量上限太低,在高度并行的編譯流程中抹竹,可能會(huì)超出此上限线罕。
要提高此上限,請將下列行添加到 ~/.bash_profile 中:
ulimit -S -n 1024 - 優(yōu)化編譯環(huán)境
運(yùn)行命令:
export USE_CCACHE=1
prebuilts/misc/darwin-x86/ccache/ccache -M 50G
開始編譯
source build/envsetup.sh
lunch + shift鍵會(huì)提示你可以編譯的分支窃判,比如bullhead_userdebug
make -j8
刷入nexus5x
進(jìn)入recovery模式钞楼,在源碼根目錄運(yùn)行fastboot -w flashall,等待刷機(jī)成功袄琳,享受自己編譯的android系統(tǒng)询件。
terminal運(yùn)行adb root,可以看到系統(tǒng)已經(jīng)是root唆樊。
源碼導(dǎo)入android studio閱讀
編譯源碼idegen模塊及生成AS配置文件(*.ipr)
在源碼根目錄執(zhí)行
mmm development/tools/idegen/
結(jié)果如下圖
執(zhí)行腳本
/. development/tools/idegen/idegen.sh
這時(shí)候去源碼根目錄看會(huì)發(fā)現(xiàn)多了android.ipr和android.iml雳殊。
- 導(dǎo)入android studio
然后android studio 打開已有項(xiàng)目選擇android.ipr,加載完后即可閱讀android源碼窗轩。
解決跳轉(zhuǎn)問題
這時(shí)候你打開Activity.java夯秃,然后隨便點(diǎn)擊一個(gè)類,不會(huì)跳轉(zhuǎn)到源碼相關(guān)目錄痢艺,而是會(huì)去引用的library里的類仓洼。
刪除除圖片外的所有引用