準備工作:建立區分大小寫的 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
即可。