天天看點

Window10上在wsl2環境中編譯android 10

wsl2是适用于 Linux 的 Windows 子系統可讓開發人員按原樣運作 GNU/Linux 環境 - 包括大多數指令行工具、實用工具和應用程式 - 且不會産生傳統虛拟機或雙啟動設定開銷

1.wsl2 安裝

詳細安裝過程見官方說明文檔,對win10 有版本要求:

運作 Windows 10(已更新到版本 2004 或更高版本,對于 ARM64 系統則是内部版本 19041)

具體安裝過程參考:wsl2的安裝說明

安裝Linux系統,打開 Microsoft Store,并選擇你偏好的 Linux 分發版。我選擇的Ubuntu 18.0.4

2.android 源代碼下載下傳編譯

2.1 源代碼下載下傳

打開一個Linux視窗,執行如下指令:

# 初始化repo環境
mkdir ~/bin
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
cp repo ~/bin
echo "PATH=~/bin:$PATH" >> ~/.bashrc
echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'" >> .bashrc
source ~/.bashrc

# 下載下傳代碼,由于安裝好的Ubuntu系統python版本是3.x,repo依賴2.x,是以需要先安裝2.x版本的python
sudo apt install python
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r36
repo sync -c
           

如果下載下傳斷斷續續,可以使用腳本來重複執行repo sync

echo "======start repo sync======"
repo sync -c
# 執行成功$?會傳回0,失敗傳回非0
while [ $? -ne 0 ] 
	do
		echo "======sync failed, re-sync again======"
		repo sync -c
done

           
2.2 源代碼編譯

執行如下指令:

// 配置java jdk,另外一種選擇是直接配置環境變量,因為源代碼裡面已經有現成的jdk版本,
// 路徑prebuilts\jdk\jdk8\linux-x86\bin
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo update-alternative --config java

# 安裝依賴工具鍊
sudo apt-get install libgl1-mesa-dev g++-multilib flex bison gperf build-essential  tofrodos python-markdown libxml2-utils xsltproc  dpkg-dev libsdl1.2-dev git-core gnupg flex bison gperf build-essential   zip curl zlib1g-dev gcc-multilib g++-multilib  libc6-dev-i386  x11proto-core-dev libx11-dev  libgl1-mesa-dev libxml2-utils xsltproc unzip m4 ccache

# 進入源代碼根目錄,編譯
source build/envsetup.sh
lunch 18
make updatepackage -j8
           
2.3 window上通路ubuntu檔案
\wsl$\Ubuntu-18.04\