Android Debug 简单小结

文章目录
  1. 1. 简介 Debug
  2. 2. Android Debug
  3. 3. 参考文献

每一个你不满意的现在,都有一个你没有努力的曾经。

Debug 能力是软件开发过程中分析代码、解决 Bug 的核心素质之一。知乎上有这么一段话说得很好(微改):“每个程序员,都是一个侦探,Log 是凶发现场的线索与证据,凶犯不是特别狡猾时,基本都可以找到真凶。但是总有例外,就需要还原现场 Debug,好比真凶在你的监控下再次模拟行凶,Debug 根据 Log 总能找到问题。打断点就像列举嫌疑人,侦探的第六感和经验至关重要。“

简介 Debug

Debug 即调试,又称除错,是发现和减少计算机程序错误的一个过程。

调试的基本步骤:

  • 发现程序错误的存在
  • 以隔离、消除的方式对错误进行定位
  • 确定错误产生的原因
  • 提出纠正错误的解决办法
  • 对程序错误予以改正,重新测试

Android Debug

Android Studio 已是目前最主流的 Android 开发工具,其自带有强大的 Debug 功能,可以对运行在 Android Emulator 或相连 Android 设备上的应用进行调试,下面来一探究竟。

看看 Android Studio 提供的调试面板(试举一例):

大体提供了 7 个功能区,分别为断点管理区、线程栈帧区、调试功能区、求值表达式、对象变量区和变量观察区。详细看以下几个区:

断点管理区

从上往下来看,介绍主要几个:

Resume Program

该操作意思是恢复程序,有两种行为:

1.程序处在暂停状态下,点击该按钮将恢复程序运行。

2.很多情况下,会设置多个断点调试。某些情况时,需要从当前断点移动到下一个断点处,两个断点之间的代码被自动执行,这样就不需要一步步调试到下一个断点了。举例如下:

1
2
3
4
5
public void test() {
test1();
...
test2();
}

假设在第 2 行和第 4 行添加了断点。若此时我们的调试在第 2 行,点击该按钮执行操作,当前的调试位置会自动执行到第 4 行,即第 2 行到第 4 行之间的代码会自动被执行。

Pause Program

点击该按钮将暂停程序的执行。

Stop 'app'

点击该按钮,会关闭相关的脚本终止当前进程。在 Android 项目中,点击该按钮,意味着 App 结束运行。

View Breakpoints

点击该按钮会进入断点管理界面,在这里可以查看所有断点,管理或者配置断点的行为,如:删除、修改属性信息等,如下所示:

Mute Breakpoints

使用该按钮,来切换断点的状态:启动或者禁用。调试过程中,可以暂时禁用所有的断点,实现程序正常地运行。比如在调试过程中,不想让断点干扰关心的流程时,可以临时禁用断点。

Get thread dump

获取线程 Dump,点击该按钮将进入线程 Dump 界面如下:

调试功能区

该区提供了调试的主要操作,分别如下:

Show Execution Point

点击该按钮,光标将定位到当前正在调试的位置。

Step Over

单步跳过,点击该按钮后,程序向下执行一行。若当前行是一个方法调用,此行调用的方法被执行完毕后再到下一行。

Step Into

单步跳入,执行该操作后,程序向下执行一行。若该行有自定义的方法,则进入该方法内部继续执行,注意的是,若是类库中的方法,则不会进入方法内部。

Force Step Into

强制单步跳入,和 Step Into 功能类似,主要区别是,若当前行有任何方法,则不管该方法是自行定义还是类库提供的,都能跳入到方法内部继续执行。

Drop Frame

中断执行,并返回到方法执行的初始点,在这个过程中,该方法对应的栈帧会从栈中移除。换句话说,若该方法是被调用的,则返回到当前方法被调用的地方,并且所有上下文变量的值也恢复到该方法未执行时的状态。

Run to Cursor

忽视已经存在的断点,跳转到光标所在处。

求值表达式

Evaluate Expression

点击该按钮,会在当前调试的语句处嵌入一个交互式解释器,在其中,可以执行任何想要执行的表达式进行求值操作。

变量观察区

该区域将显示你所感兴趣的变量值。在调试模式下,可以通过 Add to Watches 将某个变量添加到观察区,该值的变化将会在变量观察区显示。

调试的两种方式

如上图,圈出来的部分从左到右为Debug 'app'Attach debugger to Android process两种调试方式。

两者的区别主要如下:

  • Debug ‘app’ :以调试模式安装运行,断点可以在运行前设置,也可以在运行后设置。
  • Attach debugger to Android process:和 Debug 方式相比,可以将调试器 Attach 到任何正在运行的进程。

总之,个人觉得,Debug 能力的提升非一朝一夕之功,需要在各种项目里遭遇各种情况时锤炼,以上只是常用操作的小结,详细部分参照 Google 官方调试您的应用Android Studio 代码调试大全

至此,关于 Android Debug 的简单小结完毕。

本人才疏学浅,如有疏漏错误之处,望读者中有识之士不吝赐教,谢谢。

1
Email: [email protected] / WeChat: Wolverine623

您也可以关注我个人的微信公众号码农六哥第一时间获得博客的更新通知,或后台留言与我交流

参考文献

1.http://blog.csdn.net/dd864140130/article/details/51560664