Windows10 使用WSL2编译Android源码总结

时间:2024-02-25 08:01:51

wsl2是适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销

wsl2 安装

详细安装过程见官方说明文档,对win10 有版本要求:

运行 Windows 10(已更新到版本 2004 或更高版本,对于 ARM64 系统则是内部版本 19041)

具体安装过程参考:wsl2的安装说明

安装Linux系统,打开 Microsoft Store,并选择你偏好的 Linux 分发版。我选择的Ubuntu 18.0.4

环境准备

安装Vscode 安装vscode插件Remote WSL
这样编辑wsl里的文件时只需要 code ~/.bashrc即可

给wsl安装软件

sudo apt-get update
sudo apt install repo
sudo apt install python

android 源代码下载编译

2.1 源代码下载
打开一个Linux窗口,执行如下命令:
注意 如果path里面的环境变量有空格 会出现错误导致无法继续执行脚本,解决办法就是编辑~/.bashrc文件 删掉path中的空格

初始化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
# 下载指定版本 https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds
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

感谢
https://www.jianshu.com/p/c3bf48ac4418
https://blog.csdn.net/dangelzjj/article/details/109267308