使用AndroidStudio调试Framework代码

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

目录

    • 一、使用AndroidStudio打开Android源码
    • 二、使用AndroidStudio来调试framework代码

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中的调试端口保持一致
    使用AndroidStudio调试Framework代码_第1张图片

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

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


    使用AndroidStudio调试Framework代码_第2张图片

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

你可能感兴趣的:(android总结,Android,AndroidStudio,framework,debug)