Mac 中下載閱讀 Android 原始碼
阿新 • • 發佈:2019-01-04
準備工作:建立區分大小寫的 APFS 宗卷
國內使用 Android Source 官方的下載方式有點慢,所以通常建議使用國內的 AOSP 映象,一般是 中科大的映象 或者 清華大學的映象 ,本文使用的是清華大學的映象。
先下載 repo 工具:
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
然後有兩種下載方式,分別適合不同場景。
1.1 下載最新版本的原始碼
如果需要下載最新版本的原始碼,建議使用映象中的每月初始化包。先下載初始化包,其中包含了 .repo
repo sync
一次就完成了。
推薦使用 axel 工具下載,速度快,支援斷點續傳。
axel -n 3 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
# 解壓得到 aosp 目錄
tar xvf aosp-latest.tar
cd aosp
# 同步一次
repo sync
# 或 repo sync -l 僅 checkout .repo 中的程式碼
1.2 下載具體某版本的原始碼
如果需要下載具體某版本的原始碼,使用官方的方式,不過下載源替換成清華大學映象的地址。具體 Android 版本見 列表
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
# 初始化倉庫
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1 --depth=1
# 只同步當前分支程式碼
repo sync -c
這種方式下載下來的程式碼會小很多,推薦這種方式。
2. 匯入 Android 原始碼到 Android Studio 中閱讀
Mac 下無法使用 Source Insight,所以我是使用 Android Studio 來閱讀的,Android 原始碼中已經提供了匯入到 Eclipse 和 Android Studio 的配置,需要使用 development/tools/idegen.sh
因為我只想閱讀 Android 原始碼,不需要編譯,所以使用其他人編譯好的 idegen.jar 。
mv idegen.jar aosp/out/host/darwin-x86/framework/
# 在預設終端中執行 idegen.sh,因為 sh 只支援 bash
development/tools/idegen/idegen.sh
然後在 aosp 目錄可以看到 android.ipr
和 android.iml
檔案,接下來編輯 android.iml
檔案,把不需要匯入的專案註釋掉,節省匯入時間。
最後在 Android Studio 中開啟 android.ipr
即可。