目录
1、安装AOSP版专用开发工具Android Studio for Platform
如若只是打开阅读源码则也可下载linux Android Studio继续一下步骤
注意:开发工具一定要安装aosp专用开发工具Android Studio for Platform,不然会有很多未知问题。例如我安装的是asfp-2023.1.1.19-linux.deb ,默认安装在/opt目录下。
一、调试步骤
AIDEGen是AOSP源代码树中的一个工具,它允许从Android Studio等通常仅为非平台应用程序开发配置的IDE中处理系统应用程序。使用AIDEGen的前提是下载并编译了AOSP源码,且要在Android10或更高版本的分支中才可使用。
在开发过程中,除了可使用AS(Android Studio)开发工具调试源码,还可使用其他开发工具例如VS code,由于篇幅有限,本文只讲如何使用AS调试Settings,如若需要使用Android Studio进行Settings的调试工作,需要进行如下的配置:
1、使用AOSP源码中aidegen工具,构建依赖模块。
2、使用AOSP源码中的JDK。
3、使用AOSP源码中的SDK。
4、如何让AndroidManifest.xml和各种资源xml能相互引用。
5、如何修改静态代码分析工具lint,以解决IDE中各种标红的错误(实际非错误)。
6、如何使用Android studio单步调试Settings。
接下来我们依次解决上面的步骤。
二、环境配置
1、安装AOSP版专用开发工具Android Studio for Platform
百度搜 Android Studio for Platform 下载
安装教程见 AOSP平台开发的利器——Android Studio for Platform-CSDN博客
安装好之后,环境配置就已完成,直接跳到 三、编译sdk,阅读。
如若只是打开阅读源码则也可下载linux Android Studio继续一下步骤
2、解压安装包
# 解压安装包
tar -zxvf android-studio.tar.gz
3、 设置环境变量
# 打开配置文件
vi ~/.bashrc
# 在文件末尾添加以下内容,并保存退出
export ANDROID_HOME=/home/shizhiyin/android12/android-studio
export PATH=$PATH:$ANDROID_HOME/bin
ANDROID_HOME=file路径,可以切换到android-studio目录下,使用pwd命令查看
4. 启动 Android Studio
studio.sh
测试下能不能启动,不能启动记得对file赋权,例如
chmod +x /home/shizhiyin/android12/android-studio/bin/studio.sh
chmod +x studio.sh
三、编译sdk
1、执行命令
source build/envsetup.sh
2、启动对应sdk
这个结合自己需要编译的aosp来,由于我使用的是sdk_x86_64,故启动的是sdk_x86_64,如果使用的是lunch aosp_x86-eng,则启动lunch sdk-eng即可
lunch sdk_x86_64
3、执行make 编译命令
make sdk
如果报错解决(原因没有sdk编译需要 的工具)
先下载对应配置,android-security-12.0.0_r47 替换成自己的asop版本
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-security-12.0.0_r47 -g all,-notdefault,tools
然后同步代码
repo sync -j 8
最后再执行make 编译命令
make sdk
四、检查看AIDEGen是否存在
在AOSP的源码的tools/asuite/aidegen目录下,查看是否存在aidegen.jar,有则继续下一步,否则再度执行命令编译生成aidegen。
mmm -j8 tools/asuite/aidegen/
五、执行aidegen命令启动编译
1、启动爱得跟
aidegen packages/apps/Settings -i s
或
aidegen Settings -i s
或
aidegen packages/apps/Settings -i s -p /home/shizhiyin/android12/android-studio/bin
有可能会报以下错误:
aidegen Settings -i s
Traceback (most recent call last):
File "/tmp/Soong.python_q4hcb7sk/aidegen/aidegen_main.py", line 49, in <module>
from aidegen.lib import aidegen_metrics
File "/tmp/Soong.python_q4hcb7sk/aidegen/lib/aidegen_metrics.py", line 24, in <module>
from aidegen.lib import common_util
File "/tmp/Soong.python_q4hcb7sk/aidegen/lib/common_util.py", line 40, in <module>
from atest import atest_utils
File "/tmp/Soong.python_q4hcb7sk/atest/atest_utils.py", line 43, in <module>
from distutils.util import strtobool
ModuleNotFoundError: No module named 'distutils.util'
这是因为没有安装distutils造成的,输入如下命令即可解决
sudo apt-get install python3-distutils
解决后,重新输入以上aidegen命令,生成成功后会自动打开对应idea
2、开始调试
aidegen frameworks/base/services -i s
setting 入口页路径android12/packages/apps/Settings/src/com/android/settings/homepage/SettingsHomepageActivity.java
然后运行模拟器
emulator
六、附录与致谢
# Settings 是系统应用 设置
aidegen Settings -i s # -i 表示使用ide,s 表示 Android Studio
# 也可以打开一个路径,确保这个路径下有 Android.bp 或者 Android.mk 即可
aidegen frameworks/base/services -i s
命令
aidegen frameworks/base/packages/SystemUI -i s
https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650276003&idx=1&sn=75e19f45937ab2fba8067057a0efedf7&chksm=886cf1ccbf1b78dabca89e77ed536ac3325fd7e33f13e20fbd2eb0604bc0be716fad27977745&scene=27
或
https://blog.csdn.net/guozikai/article/details/135410326
Aidegen 开发阅读源码
https://blog.csdn.net/xiaowanbiao123/article/details/132366807
开发工具