一.摘要
TeachCourse只知道Android Studio的断点调试,在类文件的左边栏点击设置断点,以debug模式运行Android项目,当Application跑到刚刚设置断点的位置,Android Studio弹出断点调试功能界面,显示程序运行到当前断点的调试信息。除了这种调试方式外,TeachCourse将要更加详细介绍调试另外几种方式和各功能快捷键的使用技巧,Android Studio调试学习教程。
将Android Studio的debug窗口划分五个部分:1.管理功能区;2.调试功能区;3.变量观察区;4.变量监控区;5.线程观察区
二.管理功能区
2.1 恢复调试模式,跳到下一断点
点击该按钮,应用程序跳过当前断点,跳到下一断点。在设置了多个断点的应用程序中,不需要单步执行到下一断点(F8),省时省力。
2.2 暂停调试模式
点击该按钮,进入暂停调试模式状态,这时的Program无法进行任何操作,点击“恢复调试模式,跳到下一断点”按钮后,恢复调试以调试,跳到下一断点。好比一辆汽车在加油站熄火了,重新“起火”后继续前行。
2.3 停止调试模式
点击该按钮,退出Program的调试模式,结束调试(Ctrl+F2)。好比汽车到站了,停车后熄火,下车回家。
2.4 View Breakpoints
观察多个断点,点击该按钮查看设置断点情况,弹窗断点操作窗口界面(Ctrl+Shift+F8)。比如,取消某个断点,点击“-”后取消,点击“+”添加新的断点。
添加新的断点
点击“+”添加新的断点,包含:1.Java Methods Breakpoints;2.Java Field Watchpoints;3.Java Exception Breakpoints;4.Exception Breakpoints;5.Symbolic Breakpoints,TeachCourse添加的第3种类型,在打开的窗口中选择“Project——>指定添加断点的类文件——>OK”,然后选中刚刚点击的类文件,在右边底部窗口中设置断点的位置,最后“Done”关闭窗口,完成断点添加。
指定设置断点的类文件,设置断点位置
2.5 Mute Breakpoints
点击该按钮后,取消所有设置的断点,以非调试模式运行Program。
三.调试功能区
3.1 Show Execution Point
点击该按钮,定位到当前执行断点所在位置(Alt+F10)。
3.2 Step Over
单步执行按钮,点击一次,光标从当前断点所在位置往下执行一行,遇到方法继续执行下一步,方法执行完成(F6)。
例如:
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_popupwindow_main);
- initView();
- }
在initView()设置断点,点击“Step Over”执行到最后的中括号
3.3 Step Into
单步进入按钮,执行Step Over时遇到方法,点击“Step Into”,进入方法体,然后重复“Step Over”(F5)。
例如:
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_popupwindow_main);
- initView();
- }
在initView()位置,点击“Step Into”进入方法initView(),重复单步执行“Step Over”,再次遇到方法,“Step Into”继续进入。
3.4 Force Step Into
实现的功能和Step Into一样,区别:Force Step Into单步进入时,不管遇到的是自定义的方法还是源码方法,都会强行进入方法体,进行执行单步操作“Step Over”(Alt+Shift+F7)。
3.5 Step Out
单步跳出按钮,功能和“Step Into”相反。在上面的例子中,“Step Into”进入initView()方法,点击“Step Out”跳出方法,执行完成(F7)。
3.6 Drop Frame
“Drop Frame”表示“丢帧”的意思。上面介绍的属于“单步调试”,“Drop Frame”属于“方法调试”,在方法名左边栏点击,设置方法断点。比如:在initView()设置“方法断点”,调试的时候跳到断点处,点击“Drop Frame”,跳出initView(),跳到initView()被用调用的地方。通常可以用来判断,方法执行的逻辑顺序。
3.7 Run to Cursor
点击该按钮,运行到光标所在位置,打印或输出对应的运行结果(Ctrl+R)。例如:在popupWinow.showAtLocation()方法设置断点,点击“Run to Cursor”,模拟器显示运行的效果,快速查看每段代码运行效果。
例如:
- View.OnClickListener popClick = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- getPopupWindow();
- popupWindow.showAtLocation(v, Gravity.BOTTOM, 0, 0);
- }
- };
3.8 Evaluate Expression
"Evaluate Expression"表示“求值表达式”的意思。在执行调试的时候,需要检测某个变量情况。
例如:
- View.OnClickListener popClick = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- mList.add("String001");
- mList.add("String002");
- mList.add("String003");
- }
- };
在mList添加的最后位置设置断点,点击“Evaluate Expression”后输入:mList.size(),计算当前mList的长度。
四.变量观察区
显示调试所在位置的变量值,在上面的“Evaluate Expression”的例子中,在Variables区域显示变量:mList的详细信息(长度,存放的内容)。该区域经常用来查看各变量的取值情况,非常实用。
五.变量监控区
相比“变量观察区”,“变量监控区”可以动态查看某个变量在执行到不同位置的取值情况,例如:在mList添加的第一个元素的位置设置断点,调试时在“Watches”监控区动态显示mList下一步取值情况。
动态查看变量值情况
六.线程观察区
点击该按钮,显示当前调试所有的线程情况。
总结:关于Android Studio的调试功能还不止这些,还包括:3.类文件异常断点(Java Exception Breakpoints);4.异常断点(Exception Breakpoints);5.象征性的断点(Symbolic Breakpoints),在实际使用中继续学习断点调试的妙用,提高开发效率,如果你觉得钊林IT写得文章还可以,记得关注TeachCourse哈。
你可能感兴趣的文章
转载请注明出处: https://www.teachcourse.cn/1981.html ,谢谢支持!