1 概述
本文主要講解如何下載Android源碼以及編譯
2 Android13源碼下載
2.1 repo概述
概述
repo 是 Google 用于管理多個(gè) Git 倉(cāng)庫(kù)的工具女嘲,特別適用于 Android 源代碼的管理和同步帐偎。它使開(kāi)發(fā)人員能夠方便地在一個(gè)項(xiàng)目中管理多個(gè) Git 倉(cāng)庫(kù)晋被,簡(jiǎn)化了跨多個(gè)倉(cāng)庫(kù)進(jìn)行協(xié)作開(kāi)發(fā)的流程布疼。
以下是 repo 工具的一些主要特點(diǎn)和用法概述:
1 多倉(cāng)庫(kù)管理:repo 允許你在一個(gè)項(xiàng)目中管理多個(gè) Git 倉(cāng)庫(kù)鹤耍,這對(duì)于像 Android 源代碼這樣分布在多個(gè)倉(cāng)庫(kù)中的大型項(xiàng)目非常有用夸溶。
2 統(tǒng)一代碼版本:通過(guò) repo夕晓,你可以輕松地同步多個(gè)倉(cāng)庫(kù)中的代碼矾策,保持它們?cè)谙嗤拇a版本上匀伏。
3 分支管理:repo 支持跨多個(gè)倉(cāng)庫(kù)進(jìn)行分支管理,讓你能夠在整個(gè)項(xiàng)目中統(tǒng)一管理分支蝴韭。
4 代碼審查:repo 提供了一些工具和指令够颠,幫助你進(jìn)行代碼審查和檢查不同倉(cāng)庫(kù)之間的差異。
5 易于使用:repo 命令簡(jiǎn)單而直觀榄鉴,使得開(kāi)發(fā)人員能夠快速上手并利用其強(qiáng)大功能履磨。
使用 repo 工具可以更好地管理復(fù)雜的項(xiàng)目結(jié)構(gòu),提高團(tuán)隊(duì)協(xié)作效率庆尘,確保代碼的一致性和穩(wěn)定性剃诅。如果你是在處理涉及多個(gè) Git 倉(cāng)庫(kù)的項(xiàng)目,repo 可能是一個(gè)很好的選擇來(lái)簡(jiǎn)化項(xiàng)目管理和同步代碼的過(guò)程驶忌。
2.2 repo配置
在下載android源碼前矛辕,首先需要下載repo工具
sudo apt-get install curl
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/xxx/repo
1 首先在ubuntu中安裝curl下載工具
2 使用curl工具從清華大學(xué)的鏡像站點(diǎn)下載 repo 工具并將其保存到 ~/xxx/repo 文件中
接下來(lái)配置系統(tǒng)環(huán)境變量
sudo apt-get install vim
vim .bashrc(不安裝vim也可, 可以直接用gedit編輯)
下載Ubuntu編輯工具vim,打開(kāi)bashrc文件
<meta charset="utf-8">
# 在打開(kāi)的文件末尾添加
PATH=/home/tsdl/Code/Repo:$PATH
#首先替換git下載源碼鏈接付魔,由谷歌替換為清華源
git config --global url.[https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/.insteadof](https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/.insteadof) [https://android.googlesource.com](https://android.googlesource.com)
#將 https://mirrors.tuna.tsinghua.edu.cn/git/git-repo 設(shè)置為 REPO_URL 環(huán)境變量的值聊品。Repo 工具將使用該環(huán)境變量中的 URL 來(lái)下載 Repo 工具
export REPO_URL='[https://mirrors.tuna.tsinghua.edu.cn/git/git-repo](https://mirrors.tuna.tsinghua.edu.cn/git/git-repo)'
在 Ubuntu 系統(tǒng)中,.bashrc 文件是一個(gè) Bash shell 的配置文件几苍,用于配置用戶的個(gè)性化 Bash 環(huán)境翻屈。當(dāng)用戶登錄時(shí),Bash shell 會(huì)自動(dòng)執(zhí)行該文件中的命令妻坝,以便對(duì) shell 進(jìn)行初始化和設(shè)置伸眶。
1 配置系統(tǒng)環(huán)境 將該文件目錄添加到系統(tǒng)環(huán)境中惊窖,這樣在執(zhí)行命令時(shí),系統(tǒng)會(huì)去該目錄查找可執(zhí)行文件
2 配置git clone 下載代碼的源url
3 配置repo下載工具的鏈接
完成系統(tǒng)環(huán)境配置后
接下來(lái)進(jìn)入/home/tsdl/Code/Repo 目錄下厘贼,配置可執(zhí)行repo文件的權(quán)限
chmod a+x file
到這里界酒,我們以及準(zhǔn)備好了repo文件,同時(shí)配置了系統(tǒng)環(huán)境
2.3 配置gitconfig
sudo apt-get install git
git config --global user.name "XXXX"
git config --global user.email "XXXXX@XXXXXXXXX.com"
這里配置git的username和 useremail
2.4 下載android13源碼
repo init -u [http://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest](http://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest) -b android-13.0.0_r44
注意點(diǎn)
在使用repo下載android源碼時(shí)嘴秸,先調(diào)整python為3.0+
sudo ln -s /usr/bin/python3 /usr/bin/python
安裝同步代碼相關(guān)依賴
sudo apt install -y libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib git flex bison gperf build-essential libncurses5-dev:i386 tofrodos python python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev libsdl1.2-dev libesd0-dev git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libgl1-mesa-dev libxml2-utils xsltproc unzip m4 lib32z-dev ccache libssl-dev
sudo vim /etc/apt/sources.list
#在行尾添加下面這個(gè)源保存
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
#安裝libesd0-dev
sudo apt update && sudo apt install -y libesd0-dev
如果安裝依賴報(bào)錯(cuò) libncurses5-dev安裝不上
原因
當(dāng)前 libncurses已經(jīng)更新到6以上了盾计,所以沒(méi)辦法安裝5,但是android源碼sync時(shí)又需要libncurses5赁遗,我們可以建立鏈接
接下來(lái)同步代碼
repo sync -j$(nproc --all)
編譯代碼
cd /usr/lib/x86_64-linux-gnu
sudo cp libncurses.so.6 libncurses.so.5
sudo cp libtinfo.so.6 libtinfo.so.5
sync完成后署辉,接下來(lái)執(zhí)行編譯操作,這里lunch選擇sdk_phone_x86_64
使用此參數(shù)可以構(gòu)建AVD系統(tǒng)映像岩四,與編譯 Android 設(shè)備系統(tǒng)映像的流程相同哭尝,方便加Log進(jìn)行調(diào)試。
source build/envsetup.sh
lunch sdk_phone_x86_64
make -j$(nproc --all)
成功后下載ASFP來(lái)輔助學(xué)習(xí)查看android源碼