当我们想要用attach方式调试某个应用时,如何做到在程序启动时就下断点?
这是一个悖论:你要先启动程序,才能获取pid进行attach,但程序启动到你attach上,已经执行到老远的地方去了。
如果你可以修改源码,你可以在程序执行最初的地方去加sleep逻辑,但这个好复杂,需要重打包,有不少工作要做,下面说一个简单的技巧:
adb shell am set-debug-app -w --persistent *your.app.package*
其中:
-w: 让程序等待被attach
--persistent: 让程序每次启动都等待被attach
当你执行此命令后,程序运行手机就会弹一个等待attach的窗口,这时候你可以慢慢去attach,attach后,窗口自动消失并开始执行。
用如下命令清除等待调试效果:
adb shell am clear-debug-app *your.app.package*
参考:
http://android-dev-life.blogspot.com/2015/02/do-you-adb-shell-am-set-debug-app.html
网友评论