Android 源碼編譯經驗分享, 以及如何使用Android studio 閱讀整個源碼
來自: http://www.cnblogs.com/liam999/p/android.html
android 源碼編譯最好的教程就是google 官方步驟一點一點的操作, http://source.android.com/ 。
但是在實際的過程中總是存在一些坑。
下載或編譯源碼 建議使用64位 ubuntu12.04 或者 14.04 這樣可以保證和官方的環境一致 ,避免出現不可預料的問題,window 或mac 系統建議考慮使用虛擬機vbox 安裝ubuntu。
1.前期準備
在下載源碼前需要對環境做一些配置, 首先需要安裝jdk,但需要注意:
編譯 android 5.x的源碼需要安裝jdk1.7.x 版本
編譯 android 6.x的源碼需要安裝jdk1.8.x 版本
具體步驟參考 http://source.android.com/source/initializing.html
需要注意的是,安裝必要依賴庫的過程中很有可能報錯,比如gcc 版本問題,cpp 版本問題等。
最好解決方式是確保你的軟件源 /etc/apt/sources.list 是正確的。
下面是我的sources.list 的全部內容(ubuntu 12.04)
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse # deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse # deb-src http://archive.ubuntu.com/ubuntu/ precise-proposed main restricted universe multiverse deb http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse # deb-src http://security.ubuntu.com/ubuntu precise-security main restricted universe multiverse deb http://archive.canonical.com/ubuntu trusty partner # deb-src http://archive.canonical.com/ubuntu precise partner deb http://extras.ubuntu.com/ubuntu trusty main # deb-src http://extras.ubuntu.com/ubuntu precise main
2.下載源碼
android 官方建議是用repo 同步分支代碼,但是在國內的速度你懂得, 所以建議直接下載打包好的android 源碼,當然前提要保證源碼的來源安全可靠(想想前一段時間xcode漏洞)。
還有一種方式就是在國外的vps上下載源碼,打包傳回國內,這樣至少能保證源碼真實可靠。
如果要按照官方推薦的方式下載源碼,請參考 http://source.android.com/source/downloading.html
3.編譯源碼
編譯過程參照 http://source.android.com/source/building.html
大概需要3,4個小時 具體看機器配置。
編譯完成后即可導出 android studio 工程 可以愉快的使用android studio 閱讀整個代碼了。
具體步驟:
執行
make idegen && development/tools/idegen/idegen.sh
如果你編譯的是 aosp 分支 可能會出現
Exception in thread "main" java.io.FileNotFoundException: ./out/target/product/generic/obj/GYP/shared_intermediates/res.java (Is a directory)
解決方案是 改一下res.java 的名字
mv out/target/product/hammerhead/obj/GYP/shared_intermediates/res.java out/target/product/hammerhead/obj/GYP/shared_intermediates/res.j
重新執行
make idegen && development/tools/idegen/idegen.sh
等到編譯成功后可以在改回來。
4.相關的下載
下面是我使用的 android 5.1.1_rc1 的源碼
android.ipr 也在里面,可以不用編譯直接導入android studio 閱讀源碼(相信很多人不需要編譯源碼,只是希望能方便的閱讀android 源碼)。
http://d.mystical.cn/d/android/android-5.1.1_r1.zip
云盤地址
https://yunpan.cn/cxRguULzJDgVK 訪問密碼 0393
后面我也會繼續分享一些 最新 android 源碼的下載地址。