app启动前debug的方法

在app刚启动时调试


    我们知道使用Eclipse/AndroidStudio调试进程,都需要进程已经创建好的情况下,才能attach上去。但是有时候我们需要Debug进程启动的过程怎么办?

     如果本身有app的源码,并且可以编译,那自然很方便,直接以debug方式编译安装就好了,Eclipse/AndroidStudio都可以一键完成,但是如果没有可编译的源码,或者源码编译非常耗时,这么做就不太方便了。

     其实Google已经有了解决方案。我们可以首先通过adb shell am set-debug-app -w <package>,然后再启动<package>进程,系统会弹出一个Dialog提醒Application正在Waiting For Debugger。实际上这个时候应用程序进程已经fork出来了,只不过是阻塞在ActivityThread.handleBindApplication()方法里面,它通过调用Debug.waitForDebugger();一直等待直到DDMS连接上。这个时候我们再用Eclipse/AndroidStudio attach上<package>所在进程,即可Debug后续启动过程,如ClassLoader的创建,Application的初始化以及启动,Activity启动等。

猜你喜欢

转载自blog.csdn.net/xingchenxuanfeng/article/details/80310894