远程调试系统框架

时间:2019-03-22 10:37:19

标签: android android-source android-debug

我想调试在Android设备上运行的系统框架。

尤其是,GpsLocationProvider有时会停一会儿,我想知道它在做什么。我发现该类包含一个android.os.Handler,该类将消息发布到该类中,以便在线程之间进行通信。有时,从发送消息到调用Handler.handleMessage之间需要花费几分钟。我认为属于Handler的{​​{1}}的线程很忙。

我想附加一个调试器,暂停该线程,并查看当前正在执行的操作。或者,以某种方式获得对该线程的追溯。有什么办法吗?

我尝试使用Looper从源代码树中创建一个Android Studio项目,但不确定如何从那里继续。如果有问题,(旧版)设备将运行Android 6。

我也刚刚发现development/tools/idegen/idegen.sh。我调用debuggerd来查找相应的PID,并将其带给logcat -s GpsLocationProvider,无论是否带有debuggerd参数。但是,这仅是对本机代码的追溯。我在那里看不到任何Java代码。

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,如果您的AndroidStudio中有相应的Android API版本(通过SDK Manager安装),则可以在设备上安装应用的调试版本,然后将断点放在Android的代码中。

这样,您可以暂停执行组件代码并查看其功能。