使用AndroidStudio调试Framework源码

目前虽然谷歌推出了ASFP用于查看和调试源码,但是ASFP只能在Linux上使用,并且内存占用比AndroidStudio还高。所以,本文的目标就是直接使用AndroidStudio在Windows/Mac/Linux上查看和调试源码(不过这里仅能查看和调试Java代码),本文演示也是在Windows上演示的,可能在不同操作系统上有细微差异。

准备工作

1.首先我们肯定是要下载我们的源码了,因为Windows上不支持repo命令,所以我们只能直接通过git命令下载指定的仓库了,一般来说Framework大部分的Java源码都在frameworks/base这个仓库,所以我们这里就先下载frameworks/base仓库代码。这里建议大家在下载源码时,最好按照源码的目录结构来新建目录以及下载源码。比如我这里源码根目录就是:D:\aosp,所以我frameworks/base仓库的路径就是:D:\aosp\frameworks\base

2.源码下载好了,我们自然是需要一台user debug的Android设备了,然后我们需要执行如下命令:

bash 复制代码
adb root
adb shell setprop persist.debug.dalvik.vm.jdwp.enabled 1
adb reboot

然后我们等待设备重启即可。

配置AndroidStudio

1.首先我们先通过AndroidStudio的File-Open,直接打开我们的源码根目录,如下图所示

2.然后我们右键我们的根目录,点击Open Module Settings,如下图所示:

3.然后按照如下图所示操作,如果需要选择多个源码路径,重复第二步和第三步即可

操作完成以后会如图所示,选择完成以后记得点Apply。

4.选择完源码以后,我们还需要选择我们的SDK。这里选择SDK主要在你没有完全导入完源码的时候,方便你跳转查看代码。选择的原则就是和你源码的Android版本匹配即可。我这里就选择的是API 35,对应的就是Android15。

5.接着我们还需要让IDE能够优先识别我们的源码而不是SDK的代码,所以我们还需要按照如下操作执行一下,执行完也需要点击Apply按钮。

执行完成以后如下图所示:

6.这一步操作有时候做完以后,我们再次打开这个界面,发现SDK又跑到上面去了,这时候我们可以直接关闭AndroidStudio,在源码根目录下找到.idea文件夹,然后里面有个iml文件(大家记得打开隐藏文件夹显示)。我们手动改一下这个文件的内容即可,如下图所示:

调试源码

配置好AndroidStudio,我们就可以开始Debug我们的源码了,打断点这些操作就不复述了。下面就只讲一下如何开启Debug。

我们操作步骤还是Run-Attach Debugger to Android Process,如下图所示。

然后选择我们需要debug的进程即可,这里注意一下system_server进程实际是system_process。

最后附上一张Debug成功的截图:

相关推荐
南风里20 小时前
Android Studio下载gradle文件很慢的捷径之路
android·ide·android studio
bianshaopeng2 天前
Android studio gradle 下载不下来
ide·android studio
编程乐学5 天前
原创模板--基于 Android 开发的驾考训练App
android·android studio·大作业·移动端开发·安卓移动开发·驾考宝典·驾考app
aqiu~5 天前
Android Studio受难记
android·android studio
一枚小小程序员哈5 天前
基于Android的随身小管家APP的设计与实现/基于SSM框架的财务管理系统/android Studio/java/原生开发
android·ide·android studio
麦兜*8 天前
【swift】SwiftUI动画卡顿全解:GeometryReader滥用检测与Canvas绘制替代方案
服务器·ios·swiftui·android studio·objective-c·ai编程·swift
编程乐学9 天前
网络资源模板--基于Android Studio 实现的通讯录App
android·android studio·移动端开发·通讯录app·安卓大作业
bytebeats9 天前
# Android Studio Narwhal Agent 模式简介
android·android studio
帅得不敢出门10 天前
Android Framework定制长按电源键关机的窗口
android·java·framework
小仙女喂得猪11 天前
2025再读Android RecyclerView源码
android·android studio