前置条件:
拥有对应ROM的framework源码
步骤:
1.把/framework/base/services目录(也可以是其他代码目录)导入AndroidStudio,不要管是否报错。
2.在AMS中的attachApplication开始代码打上断点,所有应用的启动都会调用这个方法。
3.点击AS窗口右上角的“进程调试"图标->勾选Show all processes->选择system_process进程
4.任意打开一个应用,成功进入调试状态。
注意:AS偶尔会出现调试失败问题,可以重启AS后再尝试。
5.调试SystemUI
调试SystemUI时长时间不响应会被杀掉。可以在开发者选项中开启总是弹出等待框选项。
开发者选项-》后台检查-》打开“一律显示崩溃对话框”和"显示后台ANR"
问题:SystemUI调试时出现局部变量获取不到的情况(cannot find local variable)
解决:
5.1.application 中设置android:debuggable="true"
5.2.关闭混淆
android.bp
5.3.重新编译SystemUI
rm -rf out/soong/.intermediates/frameworks/base/packages/SystemUI
make SystemUI