对于一个开发者来说找bug是一件很痛苦但是必须要做的事情,既然必须要做那就尽量找一些方法让他变得简单。今天我们来讲一下Android Studio里的程序调试。
首先贴出来这次调试使用的代码:
public class MainActivity extends AppCompatActivity {
private String s="s";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test1();
}
public void test1(){
for (int i = 0; i < 20; i++) {
test2();
}
}
public void test2(){
s=s+"s";
}
}
1.设置断点
选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
2.开启调试会话
点击图中的debug按钮就可以进入调试菜单。
3.单步调试
3.1 step over
点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)
3.2 step into
点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。
3.3 Force step into
该按钮在调试的时候能进入任何方法。
3.4 step out
如果在调试的时候你进入了一个方法(如test2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
3.5 Drop frame
点击该按钮后,你将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
4. 高级调试
4.1 跨断点调试
设置多个断点,开启调试。
想移动到下一个断点,点击如下图:
程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
4.2 查看断点
4.3 Force Run to Cursor
非常好用的一个功能,可以忽视已经存在的断点,跳转到光标所在处.
知道这些你已经可以进行简单的调试,更高级的调试后面我会补充,有兴趣的可以自己去查一下这方面的资料