一、獲取Android源碼
1、在Linux環境下獲取Android源碼
(1)下載環境
- VMware® Workstation 12 Pro 12.5.5 build-5234757
- Ubuntu 18.04.1 LTS
(2)下載repo
進入用戶目錄,創建文件夾,用於存放repo,同時將該文件夾設置到環境變量中去。
yangjian@ubuntu:~$ mkdir ~/bin
yangjian@ubuntu:~$ PATH=~/bin:$PATH
下載repo腳本,用於執行repo,命令如下
yangjian@ubuntu:~$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
## 如果上述 URL 不可訪問,可以用下面的:
## curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
或者
## curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
如若出現網絡連接錯誤或長時間無反應等消息,則更換地址重新測試
設置可執行權限,命令如下
yangjian@ubuntu:~$ chmod a+x ~/bin/repo
(3)初始化repo客戶端
在用戶目錄下創建一個空目錄,用於存放Android源碼,命令如下:
yangjian@ubuntu:~$ mkdir Android4.0
yangjian@ubuntu:~$ cd Android4.0/
yangjian@ubuntu:~/Android4.0$
進入Android4.0目錄,並運行repo下載源碼,下載主線分支的代碼
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest
## 如果提示無法連接到 gerrit.googlesource.com,可以編輯 ~/bin/repo,把 REPO_URL 一行替換成下面的:
## REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'
如果需要某個特定的 Android 版本(Android版本列表)
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-6.0.1_r4
獲者通過命令查看分支列表,然後選擇分支版本
git --git-dir=.repo/manifests/.git/ branch -a
第二種方法查看分支列表
(4)下載源碼
在初次下載的過程中需要配置Name和Email,填寫完畢後按Y/y進行確認,最後提示repo初始化完成,之後就可以同步Android源碼了,同步過程比較耗時,需要耐性等待,同時同步過程中可能出現網絡不穩定中斷的情況,之後再執行同樣的命令即可,命令如下:
yangjian@ubuntu:~/Android4.0$ repo sync
注意:
- 在源代碼的下載過程中,源代碼下載目錄中看不到任何文件,打開“顯示/隱藏”,會看到一個名爲.repo的文件夾,這個文件夾是用來保存Android源代碼的“臨時文件”。
- 當問價最後下載接近完成時,會從.repo文件夾中導出Android源代碼。
- 當下載完Android6.0源代碼後,可以看到Android源碼目錄中會後bionic、bootable、build、cts、dalvik等文件夾目錄,這些就是Android的源代碼
- 如果不得不關閉計算機停止下載,那麼可以在源代碼下載終端按下Ctrl+C或者Ctrl+Z快捷鍵停止源碼的下載,這樣不會造成源代碼的丟失或損壞。
二、分析Android源碼結構
三、分析源碼中提供的接口
四、編譯源碼
五、參考文章
- AOSP(Android) 鏡像使用幫助
- Android 鏡像使用幫助
- 《深入理解 Android 系統》 張元亮 編著 清華大學出版社