AIDEGen + Android Studio本地环境调试代码

目录

一、调试步骤

二、环境配置

  1、安装AOSP版专用开发工具Android Studio for Platform

   如若只是打开阅读源码则也可下载linux Android Studio继续一下步骤

 2、解压安装包

3、 设置环境变量

4. 启动 Android Studio

三、编译sdk

 1、执行命令

2、启动对应sdk

3、执行make 编译命令

四、检查看AIDEGen是否存在

五、执行aidegen命令启动编译

   1、启动爱得跟

2、开始调试

六、附录与致谢


注意:开发工具一定要安装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

开发工具



 


 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值