AOSP开发环境配置
一. 工具软件安装
1. 安装git:
- sudo apt install git
2. 安装依赖工具
- sudo apt install git-core libssl-dev libffi-dev gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev libz-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
3. 下载与安装Python3
-
cd Downloads
-
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
-
解压Python3
- tar xvf Python-3.7.1.tgz
-
编译与安装Python3
-
./configure 或指定路径 ./configure --prefix=/usr/local/python3.7
-
sudo make install
-
4. 软件版本管理工具
-
配置update-alternatives
-
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
-
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 3
-
-
选择Python版本
- sudo update-alternatives --config python
二. AOSP源码下载
1. AOSP官方地址:https://source.android.google.cn/setup/build/downloading
2. 中科大镜像:https://mirrors.ustc.edu.cn/help/aosp.html
-
执行下面命令
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
下载:repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-12.1.0_r27
安卓版本列表: https://source.android.google.cn/docs/setup/about/build-numbers?hl=zh-cn#source-code-tags-and-builds
-
权限问题
- 执行:chmod 755 /home/jett/bin/repo
-
连接问题
- 如果提示无法连接到 gerrit.googlesource.com,可以编辑 ~/bin/repo,把 REPO_URL 一行替换成下面的: REPO_URL = 'https://gerrit-googlesource.proxy.ustclug.org/git-repo'
-
SSL证书校验
如果提示无法进行SSL证书校验,执行:
git config --global http.sslverify false
git config --global https.sslverify false
-
git身份
-
-
执行:repo sync
-
一段等待,大概十小时以上
- 同步过程
-
error: Unable to fully sync the tree.
error: Downloading network changes failed.
Try re-running with "-j1 --fail-fast" to exit at the first error.
- repo sync -j1 --fail-fast
-
-
下载成功
repo sync has finished successfully.
3. 清华镜像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
三. 编译 aosp 代码
. build/envsetup.sh
lunch aosp_x86_64-eng(问题:模拟器镜像无法生成)
lunch sdk_x86_64 手机
lunch sdk_car_x86_64-userdebug 车载
- 选择的lunch sdk_x86_64 用于使用模拟器
make
- 编译完成(4个小时左右)
-
常见问题
-
磁盘空间不足
- df -h 查看磁盘使用情况
-
emulator
-
打开模拟器
-
虚拟机嵌套虚拟机问题
- windows下安装vmware里边嵌套kvm提示kvm不可用解决办法:
步骤:虚拟机-设置-处理器-勾选虚拟化Intel-确认
- windows下安装vmware里边嵌套kvm提示kvm不可用解决办法:
-
模拟器镜像无法生成
-
lunch sdk_x86_64
-
Lunch menu路径
- build/make/target/product/AndroidProducts.mk
-
-
编译后的模拟器路径
- out/target/product/emulator_x86_64
-
-
日志查看
-
adb shell
-
logcat -c
logcat
logcat -s TAG
-
查找文件
find -name 文件名
查找文件内容:方法调用
grep "文件内容" ./ -rn
-
打印调用栈
Log.i(TAG,"oncreate",new Exception());
-
四. android studio安装与源码导入
1. 安装jdk
- sudo apt install openjdk-9-jre-headless
2. 安装as
-
https://developer.android.google.cn/studio
- android-studio-2022.1.1.21-linux.tar.gz
-
回到源码目录
执行
make idegen -j4
-
sudo development/tools/idegen/idegen.sh
- 生成文件android.iml & android.ipr
-
导入源码前建议
- AS的bin目录下,修改studio64.vmoptions增加内存
3. AS启动与源码导入
-
先进入bin目录 cd bin
执行 ./studio.sh
-
AS下File->open->android.ipr
即可导入android.iml中标记的全部源码