由于本视频在上传后学院会对其进行转码,而转码后视频质量严重下降,导致花屏、马赛克、画面停滞等等问题,因此在学院解决这个问题之前这里会提供原视频下载,视频不大,每个视频20M左右,下载地址:http://pan.baidu.com/s/1eQAdWyu

打断点

 

  • 行号上双击,再次双击删除
  • Ctrl + Shift + B

 

调试运行

调试运行 F11(正常运行 Ctrl + F11)

单步执行

即一次只执行一条语句,单步执行有3种方式:

1、调试技术_函数调用

单步跳入 F5   跟踪进入函数内部

 

2、调试技术_android_02

单步跳过 F6   将函数调用作为一条语句

 

3、调试技术_函数调用_03

单步返回 F7   运行完函数体剩余的语句,并返回函数调用处

 

对于执行非函数语句,按F5 和 F6 的效果是一样的。

分段执行

1、Run-->Run to line (运行至行) Ctrl + R 运行至光标所在行

 

2、调试技术_f5_04

继续 F8 运行至下一个断点,如果没有则运行到结束

停止调试

1、调试技术_f5_05

断开链接,程序继续运行(这个可能是Android程序下才可用)

2、停止进程

调试技术_视频下载_06

 

3、调试技术_函数调用_07

Terminate 结束 Ctrl + F2,Android下这个好像不可用,普通Java项目可用,与Disconnect不同的是,Terminate是结束进程,程序不再执行,而Disconnect程序继续执行。

Watch命令

用于查看指定的变量的值

Log类

 

  • 代替syso
  • 可以输出堆栈信息
  • 可以为不同等级的信息输出不同的颜色
  • 封装Log类

 

使用Android Lint

类似Eclipse的代码检查

课程补充

清除所有断点

有时候程序里在多个类中存在一些过时的不需要使用的断点,如果手动的去找到这些断点并删除这有点浪费时间,可以使用清除所有断点的功能,有两种方式如下:

1.        执行菜单:Run --> Remove All Breadkpoints

2.        在Debug透视图中清除,如下:

调试技术_函数调用_08

Log

在代码中我们会经常捕捉异常,而捕捉到的异常可以用Log进行输出,如下:

try {

    // 代码

    // ...

catch (Exceptione) {

    // e.printStackTrace();                 //不推荐

    Logger.e(TAG,"异常描述",e);    //推荐

}

Watch命令

Watch命令准确的说应该是用于观查表达式的值,而一个变量也可以是一个表达式,如if语句其中的一种格式为:

if (表达式) {

 

}

所以:

boolean ok = true;

if (ok) {

       // TODO

}

这是没问题的,说明一个变量ok也是一个表达式,因此Watch命令可以观察类似如下一些表达式:

 

  • age
  • mPerson.name
  • mPerson.name.firstName
  • mPerson.getName()
  • “abc” + “ggg”
  • 5 + 6 + a + b

 

 

Watch可以同时观看多个表达式

 

移除Watch

在表达式上右击,选择相应的命令,如下:

调试技术_视频下载_09