Android平台源代码中的断点

时间:2013-05-30 09:07:55

标签: android debugging intellij-idea

使用Intellj-idea我正在尝试调试Android源API 17,但是当我在平台源中设置断点时,它们在运行时被忽略。在调试时查看断点,其中有一个消息,其中显示“在android.view类中第15,508行找不到可执行代码”

我尝试使用API​​ 17设置的模拟器以及安装了Android 4.2.2的手机,但两者都不起作用。我可以对方法进行调试,但光标会跳转。

所以我猜测没有调试信息以及一些优化已经发生。所以我的问题是:

我是否可以从应用程序的角度正确调试Android平台并设置其中的断点?也许是一个用调试信息构建的模拟器?

任何帮助都会受到赞赏吗?

此致 利

1 个答案:

答案 0 :(得分:3)

这取决于您尝试调试的应用程序:您自己的应用程序,android.process.acore等系统应用程序。

调试在您自己的应用程序中运行的平台源

主要问题是您在计算机上下载的平台源的行号必须与设备上运行的行号相匹配。您最好的选择是在Google Nexus设备(例如Nexus 5或Nexus 7)上进行调试,因为它应该运行源代码的编译版本,就像您使用Android SDK下载的谷歌一样。只需将源路径添加到IntelliJ中的sdk,附加调试器并设置断点。确保选择与设备上运行的API级别相同的API级别源。应该这样做。

调试在系统应用程序中运行的平台源

您需要eng构建Android平台来调试系统进程。如果你还没有构建和安装Android平台,那么它需要一个非常有用的工作,并且需要一个解锁的引导加载程序。也许有预制的eng版本的cyanogenmod或可以下载的东西,但我找不到任何一些微不足道的谷歌搜索。您也可以自己制作eng版本的AOSP并在您的计算机上运行模拟器。如果您感觉非常雄心勃勃,请参阅Running emulator after building Android from source"Choose a target" section on the AOSP site了解有关构建您自己的eng版本的信息。