前言
關於查看Android源代碼,我們可以通過兩種手段查看,一個是本地,一個是在線。
在線查看Android源代碼,請看http://androidxref.com/。
本地查看根據級別可以下載不同的源碼:
1、如果僅僅是看一下Java端的Android源代碼可以直接在Android Studio中查看(SDK裏面有)
2、如果還想了解Android源碼C++部分的源碼可以去github下載一個分支:https://github.com/aosp-mirror/platform_frameworks_base/
3、如果還想了解Android內核、硬件層、recovery等源碼,請看下文:
Android源碼下載
主要是記錄一下第一次下載時的一些步驟,以及自己在這過程中的一些疑問記錄一下,希望能夠幫到後來者。
使用的是清華的AOSP:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/,也有官方指示步驟。
進入正題
步驟一:下載 repo 工具。
需要解釋一下repo,不理解的情況下,會一臉懵逼的看待接下來的源碼下載:
repo是對git文件的管理。git文件應該都明白,repo就是可以針對所有的git一起操作,一起同步,Android源碼包含了很多很多的git,需要使用repo來管理。
mkdir ~/bin PATH=~/bin:$PATH curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
注意點:這裏的repo是不能用的(這裏的repo指向google,所有後面執行repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest,會報聯繫不上google倉庫,翻牆也不能解決)。所以使用https://mirrors.tuna.tsinghua.edu.cn/help/git-repo/下的解釋:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo chmod +x repo
步驟二:https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
這個下載的是一堆的git倉庫,並沒有任何可用的代碼,但是目前依然有37G...
推薦直接使用迅雷下載,不然網絡中斷就可能失敗,導致重新下載。這裏我是下了2天2夜...
然後
tar xf aosp-latest.tar cd AOSP
# 解壓得到的 AOSP 工程目錄
# 這時 ls 的話什麼也看不到,因爲只有一個隱藏的 .repo 目錄
步驟三:repo倉庫初始化:
倉庫列表地址:https://source.android.com/source/build-numbers.html#source-code-tags-and-builds
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-8.0.0_r17
步驟四:獲取源代碼
repo sync,也就是根據.repo目錄下的git,同步下載andriod-8.0.0_r17的代碼。
特別注意:這裏的sync會失敗很多次,但是沒有關係,一直sync下去就可以了,只要有能下載成功的可以。這裏我同步了大概6-7次才完全獲取成功。只有全部sync完了之後,你才能看到最後的checkout,纔會看到android-8.0.0_r17的代碼,也就是android8.0的真正源碼,作爲Android開發最想看到的東西。
查看aosp目錄:
可以看到aosp/frameworks/base 即前言裏面第二個查看方式。
aosp/system 內核代碼
aosp/device 可以看到google/lge/huawei的一些定製信息
aosp/bootable/recovery recovery