本文首發於微信公衆號「後廠技術官」html
這是BATcoder的第四篇,BATcoder是Android進階三部曲的番外篇,會對Android進階三部曲的內容進行拓展和升級,會以視頻的形式分享給你們。至於爲啥叫BATcoder,這是由於我但願你們看了個人技術視頻能進入本身中意的大廠。前端
更多細節和內容見視頻:python
B站地址: www.bilibili.com/video/BV19f…android
我的博客地址: liuwangshu.cn/batcoder/ao…git
AOSP(Android Open Source Project)是Google開放的Android 開源項目,中文官網爲:source.android.google.cn/。 AOSP通俗來說就是一個Android系統源碼項目,經過它能夠定製 Android 操做系統,國內手機廠商都是在此基礎上開發的定製系統。由於牆的緣故,若是沒法鏈接谷歌服務器獲取AOSP源碼,能夠從 清華大學鏡像站或者 中科大鏡像。本篇文章以清華大學鏡像站爲例。面試
Android源碼包含數百個git庫,光是下載這麼多的git庫就是一項繁重的任務,因此Google開發了repo,它是用於管理Android版本庫的一個工具,使用了Python對git進行了必定的封裝,簡化了對多個Git版本庫的管理。 安裝 Git,在Ubuntu輸入以下命令:bash
sudo apt-get install git
複製代碼
可能會報以下的錯誤: 服務器
這個問題是有另一個程序正在運行,致使資源被鎖不可用,輸入以下命令進行解決:微信
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
複製代碼
接下來建立bin,並加入到PATH中。markdown
mkdir ~/bin
PATH=~/bin:$PATH
複製代碼
安裝curl庫:
sudo apt-get install curl
複製代碼
下載repo並設置權限:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo
複製代碼
最後安裝python,repo初始化時會用到:
sudo apt-get install python
複製代碼
重啓虛擬機後,開始下載源碼。
創建工做目錄 :
mkdir aosp
cd aosp
複製代碼
repo的運行過程當中會嘗試訪問官方的git源更新本身,若是想使用tuna的鏡像源進行更新,能夠將以下內容複製到你的~/.bashrc裏:
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
複製代碼
設置身份,添加本身的郵箱和姓名:
git config --global user.email "piratemorgen@gmail.com"
git config --global user.name "piratemorgen"
複製代碼
初始化倉庫(不指定版本,默認下載最近的代碼)
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest
複製代碼
初始化並指定版本:
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r1
複製代碼
同步源碼:
repo sync
複製代碼
源碼下載完成後,看到下面的信息能夠說明下載成功。9.0整個源碼的大小爲36.5G,11.0源碼的大小爲59.1G
若是你以爲很麻煩,也能夠直接去我分享的一個百度網盤去下載AOSP的源碼,版本的範圍從1.6到11.0。裏面的源碼是精簡版本的,不可以進行編譯。 連接:pan.baidu.com/s/1cDHDwVNh… 提取碼:bza8
AOSP源碼中並不包括內核源碼,須要單獨下載,內核源碼有不少版本,好比common是通用的Linux內核,msm是用於使用高通MSM芯片的Android設備,goldfish是用於Android模擬器的內核源碼,這裏以goldfish爲例。
和下載AOSP源碼同樣,咱們須要先創建工做目錄 :
mkdir kernel
cd kernel
複製代碼
使用清華的鏡像:
git clone https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish.git
複製代碼
這時kernel目錄中會生成一個goldfish文件夾,進入goldfish目錄並使用git命令。
cd goldfish
git branch -a
複製代碼
這時會列出有哪些內核的版本分支能夠下載。
這裏選擇下載goldfish 3.4版本。
git checkout remotes/origin/android-goldfish-3.4
複製代碼
更多細節和內容見視頻:
B站地址: www.bilibili.com/video/BV19f…
我的博客地址: liuwangshu.cn/batcoder/ao…
做者簡介:劉望舒,騰訊雲最具價值專家,著有暢銷書《Android進階之光》《Android進階解密》《Android進階指北》,蟬聯四屆電子工業出版社年度優秀做者,前華爲面試官,現大廠技術負責人,谷歌開發者社區特邀講師。
也歡迎你們關注個人公號 會分享大前端、Java相關的技術。