使用AndroidStudio调试Framework代码

原文链接,自备梯子:http://ronubo.blogspot.com/2016/01/debugging-aosp-platform-code-with.html

AndroidStudio在开发APP的时候功能非常强大,断点调试也非常方便。但是在进行framework或系统应用开发的时候调试的起来就很不爽了,往往只能在代码中加大量log,再通过log来调试。最近看了一篇歪果仁写的文章讲了如何使用AndroidStudio来调试framework代码,自己尝试了一下,完美解决了上面的问题。这对于调试代码和看一些系统的流程都非常有帮助,因此在这里总结一下,希望能对大家有所帮助。

一、使用AndroidStudio打开Android源码

想要使用AndroidStudio调试framework代码,必须在AndroidStudio中打开Android源码。关于这一步,网上文章也比较多,就不多做介绍了,简单来说就是以下几步,具体可自行百度。

  1. 编译整套代码
source build/envsetup.sh
lunch xxx
make
  1. 编译生成android.ipr
mmm development/tools/idegen
./development/tools/idegen/idegen.sh
  1. 使用AndroidStudio打开编译生成的android.ipr文件

二、使用AndroidStudio来调试framework代码

  1. 添加一个远程debug配置,设置端口为8700,这个端口就是DDMS的默认调试端口,也可以自己设置其他的端口,但是要与DDMS中的调试端口保持一致

  2. 下面需要使用DDMS,但是在新版本的AndroidStudio中DDMS的入口已经被删掉了。我们可以在sdk的tools目录下找到并运行monitor这个可执行程序来打开DDMS。

cd your_sdk_path/tools
./monitor
  1. 点击debug按钮,如果出现下面的提示就说明连接8700端口失败,可以重启AndroidStudio或DDMS后再试。正常的话就可以看到下面连接成功的提示了。


  2. 在DDMS中选中需要调试的进程,然后在AndroidStudio中添加断点,就可以像调试APP一样调试Framework代码和系统应用了。例如下面我们来调试ActivityManagerService中启动Activity的流程,首先在DDMS中选择我们要调试的进程system_process进程,在ActivityManagerService.java中添加断点,然后在手机上去启动一个Activity,我们就可以发现程序运行到断点就停止了,和我们调试app一样的效果。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值