Android Studio的调试技能,你懂了吗?

2016-08-02 15:15 阅读 4,284 次 评论 0 条
版权声明:本文著作权归TeachCourse所有,未经许可禁止转载,谢谢支持!
转载请注明出处:http://teachcourse.cn/1981.html

一.摘要

TeachCourse只知道Android Studio的断点调试,在类文件的左边栏点击设置断点,以debug模式运行Android项目,当Application跑到刚刚设置断点的位置,Android Studio弹出断点调试功能界面,显示程序运行到当前断点的调试信息。除了这种调试方式外,TeachCourse将要更加详细介绍调试另外几种方式和各功能快捷键的使用技巧,Android Studio调试学习教程。
001-debug-function

将Android Studio的debug窗口划分五个部分:1.管理功能区;2.调试功能区;3.变量观察区;4.变量监控区;5.线程观察区

二.管理功能区

2.1 恢复调试模式,跳到下一断点
002-resume program

点击该按钮,应用程序跳过当前断点,跳到下一断点。在设置了多个断点的应用程序中,不需要单步执行到下一断点(F8),省时省力。

2.2 暂停调试模式
003-pause-program

点击该按钮,进入暂停调试模式状态,这时的Program无法进行任何操作,点击“恢复调试模式,跳到下一断点”按钮后,恢复调试以调试,跳到下一断点。好比一辆汽车在加油站熄火了,重新“起火”后继续前行。

2.3 停止调试模式
004-stop-program

点击该按钮,退出Program的调试模式,结束调试(Ctrl+F2)。好比汽车到站了,停车后熄火,下车回家。

2.4 View Breakpoints
005-view-breakpoints

观察多个断点,点击该按钮查看设置断点情况,弹窗断点操作窗口界面(Ctrl+Shift+F8)。比如,取消某个断点,点击“-”后取消,点击“+”添加新的断点。
006-view-breakpoints

添加新的断点

007-view-breakpoints

点击“+”添加新的断点,包含:1.Java Methods Breakpoints;2.Java Field Watchpoints;3.Java Exception Breakpoints;4.Exception Breakpoints;5.Symbolic Breakpoints,TeachCourse添加的第3种类型,在打开的窗口中选择“Project——>指定添加断点的类文件——>OK”,然后选中刚刚点击的类文件,在右边底部窗口中设置断点的位置,最后“Done”关闭窗口,完成断点添加。
008-view-breakpoints

指定设置断点的类文件,设置断点位置

009-view-breakpoints

2.5 Mute Breakpoints
010-mute-breakpoints

点击该按钮后,取消所有设置的断点,以非调试模式运行Program。

三.调试功能区

3.1 Show Execution Point
011-Show Execution Point

点击该按钮,定位到当前执行断点所在位置(Alt+F10)。

3.2 Step Over
012-Step Over

单步执行按钮,点击一次,光标从当前断点所在位置往下执行一行,遇到方法继续执行下一步,方法执行完成(F6)。

例如:

  1. public void onCreate(Bundle savedInstanceState) {  
  2.     super.onCreate(savedInstanceState);  
  3.     setContentView(R.layout.activity_popupwindow_main);  
  4.     initView();  
  5. }  

在initView()设置断点,点击“Step Over”执行到最后的中括号

3.3 Step Into
013-Step Into

单步进入按钮,执行Step Over时遇到方法,点击“Step Into”,进入方法体,然后重复“Step Over”(F5)。

例如:

  1. public void onCreate(Bundle savedInstanceState) {  
  2.     super.onCreate(savedInstanceState);  
  3.     setContentView(R.layout.activity_popupwindow_main);  
  4.     initView();  
  5. }  

在initView()位置,点击“Step Into”进入方法initView(),重复单步执行“Step Over”,再次遇到方法,“Step Into”继续进入。

3.4 Force Step Into
014-Force Step Into

实现的功能和Step Into一样,区别:Force Step Into单步进入时,不管遇到的是自定义的方法还是源码方法,都会强行进入方法体,进行执行单步操作“Step Over”(Alt+Shift+F7)。

3.5 Step Out
015-Step Out

单步跳出按钮,功能和“Step Into”相反。在上面的例子中,“Step Into”进入initView()方法,点击“Step Out”跳出方法,执行完成(F7)。

3.6 Drop Frame
016-Drop Frame

“Drop Frame”表示“丢帧”的意思。上面介绍的属于“单步调试”,“Drop Frame”属于“方法调试”,在方法名左边栏点击,设置方法断点。比如:在initView()设置“方法断点”,调试的时候跳到断点处,点击“Drop Frame”,跳出initView(),跳到initView()被用调用的地方。通常可以用来判断,方法执行的逻辑顺序。

3.7 Run to Cursor
017-Run to Cursor

点击该按钮,运行到光标所在位置,打印或输出对应的运行结果(Ctrl+R)。例如:在popupWinow.showAtLocation()方法设置断点,点击“Run to Cursor”,模拟器显示运行的效果,快速查看每段代码运行效果。

例如:

  1. View.OnClickListener popClick = new View.OnClickListener() {  
  2.     @Override  
  3.     public void onClick(View v) {  
  4.         getPopupWindow();  
  5.         popupWindow.showAtLocation(v, Gravity.BOTTOM, 00);  
  6.     }  
  7. };  

3.8 Evaluate Expression
018-Evaluate Expression

"Evaluate Expression"表示“求值表达式”的意思。在执行调试的时候,需要检测某个变量情况。

例如:

  1. View.OnClickListener popClick = new View.OnClickListener() {  
  2.     @Override  
  3.     public void onClick(View v) {  
  4.         mList.add("String001");  
  5.  mList.add("String002");  
  6.  mList.add("String003");  
  7.     }  
  8. };  

在mList添加的最后位置设置断点,点击“Evaluate Expression”后输入:mList.size(),计算当前mList的长度。
019-evaluate-expression

四.变量观察区

显示调试所在位置的变量值,在上面的“Evaluate Expression”的例子中,在Variables区域显示变量:mList的详细信息(长度,存放的内容)。该区域经常用来查看各变量的取值情况,非常实用。
020-variables

五.变量监控区

相比“变量观察区”,“变量监控区”可以动态查看某个变量在执行到不同位置的取值情况,例如:在mList添加的第一个元素的位置设置断点,调试时在“Watches”监控区动态显示mList下一步取值情况。
021-add to Watches

动态查看变量值情况

022-Watches

六.线程观察区

点击该按钮,显示当前调试所有的线程情况。
023-Threads

总结:关于Android Studio的调试功能还不止这些,还包括:3.类文件异常断点(Java Exception Breakpoints);4.异常断点(Exception Breakpoints);5.象征性的断点(Symbolic Breakpoints),在实际使用中继续学习断点调试的妙用,提高开发效率,如果你觉得钊林IT写得文章还可以,记得关注TeachCourse哈。

关注公众号 扫一扫二维码,加我QQ

如果文章对你有帮助,欢迎点击上方按钮关注作者

来源:TeachCourse每周一次,深入学习Android教程,关注(QQ1589359239或公众号TeachCourse)
转载请注明出处:http://teachcourse.cn/1981.html
分类:Android Studio 标签:,
Android事件分发流程分析证明(2) Android事件分发流程分析证明(
Android Studio “Live Templates”如何提升编程效率? Android Studio “Live Temp
如何生成类似新浪微博中的长图片 如何生成类似新浪微博中的长图片
Android Studio启动模拟器提示“HAXM is not installed”的解决办法 Android Studio启动模拟器提示

发表评论

呲牙 憨笑 坏笑 偷笑 色 微笑 抓狂 睡觉 酷 流汗 鼓掌 大哭 可怜 疑问 晕 惊讶 得意 尴尬 发怒 奋斗 衰 骷髅 啤酒 吃饭 礼物 强 弱 握手 OK NO 勾引 拳头 差劲 爱你

表情