文章标题

移动开发 waitig 451℃ 百度已收录 0评论

Android studio调试

调试在开发的过程中占有很重要的地步,有些时候出错了但是一步步的打log在重新运行,是一件很耗时的事情,而且每次需要打印新的log就必须重新运行一次,如果电脑配置不够高,基本上基本上才能运行一次,对于开发的效率来说是非常低的,所以掌握debug的调试很重要。

基本调试

在studio上,打上断点,哪里不会打哪里。断点就是你需要调试的地方。

这里写图片描述

Debug模式启动APP(Shift+F9)

这里写图片描述

APP启动后,运行至第一处断点处会停下来,同时IDE下方出现Debug视图,红色的箭头指向的是现在调试程序停留的代码行,方法Add()中,程序的第20行。红色箭头悬停的区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。
同时也能看到,设置断点的代码行变量i处在监控之中,此时,i = 0。

这里写图片描述

单步调试

step over(F8)

点击红色箭头指向的step over按钮(图中我们按了两次让 i =1,看的明显一些),程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行。就是说不会进入到调用的其他方法中去)。

这里写图片描述

step into(F7)

点击红色箭头指向的step into按钮,程序向下执行一行。跟step over不同的是:如果该行有方法调用且为自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。

这里写图片描述

点击以后,进入到Add()方法之中。

这里写图片描述

step into按钮右边的 Force step into按钮(Alt+Shift+F7)可以进入包括官方类库在内的任何方法。

step out(Shift+F8)

如果在调试的时候你进入了一个方法(如Add()),并觉得该方法没有问题,你就可以使用step out跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。

这里写图片描述

没有问题,点击step out按钮,跳出该方法,该方法执行完毕。

这里写图片描述

run to Cursor(Alt+F9)

这里写图片描述

设置多个断点时,可利用 run to Cursor按钮在两个断点之间跳转。

这里写图片描述

其实Resume Program也是这个功能,它们有什么不同还不清楚。。。

Watches

如果某个类或方法中变量太多,在Variables面板里观察的话会很费劲,这时就会需要用到Watches这个工具了。
点击Watches下方的+号,然后手动输入变量的名称回车就OK了。

这里写图片描述

也可以选择Variables中的变量名然后点击右键,选择Add to Watches,然后Watches面板中就有了。

这里写图片描述

还能看到SetValue选项,可以手动更改某个变量的值,有时候会很有用。

View BreakPoints(Ctrl+Shift+F8)

这里写图片描述

点击箭头指向的按钮,会弹出一个窗口,如下图。

这里写图片描述

还有一种需求,你的APK如果已经运行在普通模式(非Debug)的情况下,你突然想Debug,而又不想重新运行浪费时间,该怎么办呢?

attach process

这里写图片描述

运行起来之后,设置断点

这里写图片描述

运行Run->Attach debugger to Android process

这里写图片描述


本文由【waitig】发表在等英博客
本文固定链接:文章标题
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)