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

程序员的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快照

要在Android Studio查看Android源码,首先需要下载源代码。你可以通过AndroidDevTools或Android SDK Tools中的Android Framework Source Code来获取源代码。下载源码需要一定的时间。 下载完成后,进入Android源码的根目录,执行以下命令: 1. 执行". build/envsetup.sh"命令,设置环境。 2. 执行"mmm development/tools/idegen/"命令,编译idegen项目,生成idegen.jar文件。 3. 执行"sh ./development/tools/idegen/idegen.sh"命令,生成android.iws、android.ipr、android.iml等对应的文件。如果生成失败,需要进行异常处理。 生成对应的文件后,打开Android Studio,并选择打开一个现有的Android Studio项目。选择Android源码的根目录,并导入项目(起作用的是android.ipr文件)。在配置好SDK版本后,就可以查看Android源码了。 如果你想调试源码,Android Studio提供了一些方法和步骤。你可以参考一些详细的教程和示例代码来学习如何在Android Studio查看源码并进行调试。 总结起来,要在Android Studio查看源码,你需要下载源代码,设置环境,生成相应的文件,然后导入项目。之后,你就可以在Android Studio查看调试Android源码了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [AndroidStudio中源代码查看](https://blog.csdn.net/sinat_25957705/article/details/68087463)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [用AndroidStudio查看源码](https://blog.csdn.net/Easyhood/article/details/53466648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Android Studio如何查看源码并调试的方法步骤](https://download.csdn.net/download/weixin_38663516/12725419)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值