mac上的android源碼下載編譯查看

mac上的android源碼下載編譯

準備:
一. Mac OS X(10.9.2)編譯環境設置
1.創建大小寫敏感的磁盤鏡像
可以通過磁盤管理工具進行設置,也可以通過以下命令生成鏡像文件

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg.sparsefile

生成分區之后,可以在~/.bash_profile中添加以下命令來加載分區

# mount the android file image
function mountAndroid { hdiutil attach ~/android.dmg.sparsefile -mountpoint /Volumes/android; }

1.repo工具準備

mkdir ~/bin
PATH=~/bin:$PATH
curlhttps://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

2.下載源碼

推薦使用清華大學TUNA鏡像源,使用每月更新的初始化包進行下載更新。
由于首次同步需要下載24GB數據,過程中任何網絡故障都可能造成同步失敗,我們強烈建議您使用初始化包進行初始化。
下載https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar,下載完成后記得根據checksum.txt的內容校驗一下。
由于所有代碼都是從隱藏的.repo目錄中checkout出來的,所以我們只保留了.repo目錄,下載后解壓再repo sync一遍即可得到完整的目錄。
使用方法如下:

wgethttps://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar#下載初始化包
tar xf aosp-latest.tar
cd AOSP#解壓得到的AOSP工程目錄
#這時ls的話什么也看不到,因為只有一個隱藏的.repo目錄
repo sync#正常同步一遍即可得到完整目錄
#或repo sync -l僅checkout代碼

3.復制AOSP目錄到桌面,修改目錄名為android

4.編譯android

$ cd ~/Desktop/android

4.1.設置環境

$ source build/envsetup.sh

4.2..根據設備選擇target

$ lunch target

注:target有以下可選:

1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. aosp_deb-userdebug
8. aosp_flo-userdebug
9. full_fugu-userdebug
10. aosp_fugu-userdebug
11. mini_emulator_arm64-userdebug
12. m_e_arm-userdebug
13. mini_emulator_mips-userdebug
14. mini_emulator_x86-userdebug
15. mini_emulator_x86_64-userdebug
16. aosp_flounder-userdebug
17. aosp_angler-userdebug
18. aosp_bullhead-userdebug
19. aosp_hammerhead-userdebug
20. aosp_hammerhead_fp-userdebug
21. aosp_shamu-userdebug

其他設備可以到這里閱讀

4.3編譯

make -j4
#-jN,N這個數字可以跟你的CPU實際情況而定。

android目錄底下會生成out文件夾,文件夾下:


報錯
Error: could not find jdk tools.jar at /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/../lib/tools.jar, please check if your JDK was installed correctly.Stop.

在~/.bash_profile文件中指定ANDROID_JAVA_HOME為JDK路徑即可。
export ANDROID_JAVA_HOME=${JAVA_HOME}

5.利用android studio查看Android源碼

5.1編譯源碼idegen模塊及生成AS配置文件(*.ipr)

mmm development/tools/idegen/

這行命令的意思是編譯idegen這個模塊項目,然后生成idegen.jar文件(不信你自己去查看這個模塊的Android.mk的目標吧,不多解釋)。運行完以后如果看到如下信息則說明編譯OK:

......
#### make completed successfully (7 seconds) ####

接著執行如下腳本:

development/tools/idegen/idegen.sh

這行命令的意思是在根目錄生成對應的android.ipr、android.iml IEDA工程配置文件。等待片刻得到類似如下信息說明OK:

Read excludes: 21ms
Traversed tree: 194799ms

通過如上操作我們就完成了基本的源碼配置工作。

5.2導入Android Studio前的一些客戶化操作

大家都知道使用Eclipse倒入源碼很慢,Android Studio導入源碼時也慢,所以建議修改android.iml文件(將自己不用的代碼去掉),然后再導入Studio。
就像下面摘取的android.iml文件1887行開始的這些一樣:

我們可以仿照上面這段代碼的寫法一樣過濾掉不需要的內容,這樣在導入時就會快很多。
也可以通過Android Studio的Project Stucture打開左側Modules,然后將右側Sources中一些目錄Excluded掉。

5.3使用Android Studio導入源碼工程

有了如上的這些操作以后,我們打開Android Studio,然后選擇打開一個現有的Android Studio項目,然后選擇打開源碼根目錄下的android.ipr文件,然后出現如圖一樣的索引即可等待導入就行:tu



這里寫圖片描述
到目前為止我們就可以方便的使用Android Studio查看源碼啦。如下圖所示:



這里寫圖片描述

5.4去掉系統配置jar

上圖我們看見了,可以通過Android Studio搜索整套源碼的代碼了。但是這時候如果你打開一個Service.java類,然后把鼠標放在其中任意方法的Intent參數上按住CTRL+鼠標左鍵跳轉到Intent類你會發現跳轉過去的是一個Intent.class文件,為啥呢?因為他跳轉的是你的默認SDK中的jar內部的class文件。既然要修改查看整套源碼,這么跳轉得多蛋疼啊,所以我們需要配置讓其能跳轉到Intent.java文件,具體做法如下:
首先刪掉依賴中的所有依賴,只保留下圖中沒被選中的那兩個(當然你可以選擇保留一些你用到的其他jar),如下



接著點擊加號的JARs or directories將你源碼的frameworks及external和你用到的其他跳轉目錄添加到依賴中,然后apply即可。
這時候我們在像上面一樣打開Service.java跳轉Intent,你會發現像下圖一樣直接跳轉到你源碼路徑下的Intent.java文件了,如下:


聲明:文章結合幾篇文章而來:

http://blog.csdn.net/bulreed/article/details/22783467
http://blog.csdn.net/yanbober/article/details/48846331
http://www.cnblogs.com/ryanchi/p/5682186.html
https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容