最新AndroidStudio查看或调试Framework代码攻略

  • Post author:
  • Post category:其他



程序员的AI工具,解答专业问题

1、作用

使用AndroidStudio能够调试Android Framework,断点调试能够更理解Framework逻辑。

2、环境搭建

  • 下载Android源码

  • 编译源码

  • 配置Android Studio

    • 配置vm options

配置vm option

  • 配置最大打开文件数

配置打开文件数量

  • 创建Android Framework工程

    • 源码根目录运行

      .build/envsetup.sh

    • 单独编译idegen模块,在源码根目录运行

      mmm development/tools/idegen/

      运行成功后会生成idegen.jar

  • 运行idegen脚本,在源码根目录运行

    ./development/tools/idegen/idegen.sh
  • idegen脚本运行成功后会在源码根目录生成android.iml、android.ipr等文件,其中android.ipr就是AndroidStudio使用的文件
  • 提升导入代码速度,使用

    excludeFolder

    去掉不关注的代码目录,修改

    android.iml

  • 导入Framework工程到Android Studio

打开Android Studio,然后找到根目录下生成的android.ipr文件并打开(耐心等待index建立)

  • 配置项目工程

    • 导入完成后会出现Frameworks detected
    • 配置framework
    • 然后点击Configure,点OK
    • 配置framework2
    • 配置工程
    • 配置framework4
    • 然后把Android SDK的classpath和sourcepath也删除,同时将Java SDK选为刚刚配置JDK1.8

      配置framework5
    • 按照如下设置把JDK的classpath和sourcepath下的内容都删掉,使其能在debug时定位到项目中的源码

      配置framework6
    • 设置Modules的依赖,将依赖中除了下图所示的之外全部删除

      配置framework8
    • 然后点击左下角的+选择Jars or directories添加framework相关的源码文件夹

      配置framework9
    • 点击OK,等待其建立index完成后工具栏的Attach debugger to Android process就会变成可点击状态

      配置framework10

4、在线调试Android Framework

  • attach到system_process进程

attach到调试进程

  • 设置断点

成功attach后就可以打开想要设置断点的源码文件,然后在行号右边的空白处左键点击设置断点

设置断点

  • 查看运行时状态

设置完成后就可以操作手机,当代码运行到断点处就可以停下来,这时就可以查看运行时的状态,包括变量的值,backtrace等

查看运行时状态

还可以在watches窗口添加想要查看的表达式的值

查看运行时状态2

  • 获取backtrace快照

另外attach后,在不设置断点的情况下也可以实时的获取所有线程的backtrace的快照,作用类似于kill -3,但是只有Java层的trace

获取backtrace快照



版权声明:本文为ming15920原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。