Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> mac 上的android源碼下載編譯查看

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

編輯:關於Android編程

准備:
一. Mac OS X(10.9.2)編譯環境設置

創建大小寫敏感的磁盤鏡像

可以通過磁盤管理工具進行設置,也可以通過以下命令生成鏡像文件

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
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

2.下載源碼

由於首次同步需要下載 24GB 數據,過程中任何網絡故障都可能造成同步失敗,我們強烈建議您使用初始化包進行初始化。

由於所有代碼都是從隱藏的 .repo 目錄中 checkout 出來的,所以我們只保留了 .repo 目錄,下載後解壓 再 repo sync 一遍即可得到完整的目錄。

使用方法如下:

wget https://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文件了,如下:

\

 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved