论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
使用Android Studio For Platform阅读&调试AOSP源码 ...
使用Android Studio For Platform阅读&调试AOSP源码
王柳
金牌会员
|
2024-9-17 19:43:05
|
显示全部楼层
|
阅读模式
楼主
主题
659
|
帖子
659
|
积分
1977
上一篇文章中,我们编译了AOSP的源码并刷入本身编译的ROM到Pixel 6设备中。本文我们使用Android官方提供的IDE(Android Studio For Platform)来打开AOSP源码,并举行debug调试,这样可以方便我们跟踪底层代码的调用流程。
1.安装ASFP
ASFP的官网:https://developer.android.com/studio/platform
我们可以在官网直接下载安装,但必要留意的是,目前只有Linux版本,我是使用Ubuntu系统,所以可以正常打开并下载。
按照官网的介绍,Android Studio for Platform (ASfP) 适用于使用 Soong 构建系统举行构建的 Android 开源项目 (AOSP) 平台开发人员。 我们可以简单理解为我们平常开发使用的Android Studio,只是开发面对的不是上层应用而是底层Framework层。
它与我们之前使用的源码查察工具不同,它支持我们在同一IDE中编辑Java、Kotlin和C++,同时支持对AOSP源码的debug调试。
下载后可以使用下面的命令安装:
sudo dpkg -i /path/to/asfp-2023.2.1.20-linux.deb
复制代码
安装这个工具后,我们不光可以用来调试AOSP源码,还可以把它作为正常的Android Studio使用。
2.使用ASFP调试AOSP源码
2.1 导入AOSP源码
调试AOSP源码,必要我们先下载&编译AOSP源码,并拥有一台真机大概模拟器安装了我们编译的镜像。这里可以参考我的上一篇文章一文学会从零搭建编译AOSP源码刷机全流程。
然后我们将我们的AOSP源码导入,导入时必要留意,我们只必要导入我们必要调试的模块即可,这里我们以art模块为例。
选择「Import Asfp Project」,然后按下图填写即可。
必要留意的是Lunch Target,这个值必要与我们之前编译ROM时一致。必要留意的时,编译的Target要是以eng结尾的版本才是可调试的。
点击「Finish」后会举行一次编译,然后开始建立索引,如果你之前编译过,则整个编译过程会比力短,主要是建立索引的过程较长。
索引建立完以后我们就可以举行代码跳转了。
2.2 Debug调试
这里我们使用ASFP新建一个Android工程,编写逻辑点击按钮后触发gc,焦点代码如下:
Runtime.getRuntime().gc()
复制代码
然后我们在aosp/art/runtime/gc/heap.cc的collector::GcType Heap::CollectGarbageInternal()函数中打上断点。
然后我们先安装运行我们的应用,然后在ASFP中选择Attach Debugger to Android Process如下图,然后我们选择本身的App即可。
我们可以选择Debug C++代码大概Java代码大概同时debug(留意:我现实测试选择Dual(Java + Native)断点会出现非常),分别Debug Java和C++则正常,目前原因还未知,但对我们常规的调试根本是够用的。
我们点击触发C++代码后,可以看到如下断点掷中,剩下的步骤就跟常规Debug一致了。
如果你只是Debug Java代码,你只必要使用平凡的Android工程,将targetSdk设置为你的ROM系统版本即可正常Debug,并且代码行号也是对应上的,这样对系统资源的斲丧会更低。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
王柳
金牌会员
这个人很懒什么都没写!
楼主热帖
NSIS官方认证插件集成安装包 ...
【小程序】图解小程序平台架构及其特征 ...
腾讯开源的 3 个 GitHub 项目,足够良 ...
[网鼎杯 2020 朱雀组]Think Java——wp ...
项目中多级缓存设计实践总结 ...
三天吃透Java基础八股文
微信为什么使用 SQLite 保存聊天记录? ...
读Java实战(第二版)笔记18_基于Lambd ...
Gorm 实现无限树形菜单
Word书签替换,加盖电子印章及转换PDF ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表