美文网首页Android潜修者Android StudioAndroidStudio的使用
Android Studio 不为熟知的基本调试技巧

Android Studio 不为熟知的基本调试技巧

作者: 皮球二二 | 来源:发表于2016-11-04 17:12 被阅读1424次

    我们在代码编写结束之后,肯定会进行一些基本调试。但是android studio的调试技巧你都了解吗?本篇文章是我在学习其他简友文章之后进行的总结,感谢各位大神的指导

    调试面板

    我们先来看看调试面板的布局


    调试面板

    这5块分别为

    1. 断点管理区
    2. 单步调试区
    3. 线程帧栈区
    4. 对象变量区
    5. 变量观察区

    下面对重点区域进行学习

    断点管理区

    断点管理区

    自上而下依次是

    1. Return 'Android Debugger' 停止当前App并重新启动,让你重新调试
    2. Resume Program 从当前断点直接移动到下一个断点处,中间代码正常执行
    3. Pause Program 暂停调试,并且App也停止运行,直到你使用Resume Program恢复
    4. Stop 'xxxx' 结束断点,而且是一切都结束了
    5. View Breakpoints 查看所有断点信息。这里包括你手动在类里添加的断点以及某些异常的断点


      View Breakpoints,这里面可以换看到具体的断点信息
    6. Mute Breakpoints 中途切换所有断点的状态。不可用的时候断点是白色的


      Mute Breakpoints
    7. Get thread dump 获取线程Dump,这个我不了解
    8. Restore Layout 这个我不了解
    9. Settings 设置,简单介绍2个,其他的我不了解,看别人介绍的好像用途也不是很大


      Settings

      Show Values InLine 调试过程中代码右边显示变量值,这是默认效果


      开启Show Values InLine
      Show Method Return Values 调试过程中在对象变量区将带返回值方法的返回值显示出来
      开启Show Method Return Values
      关闭Show Method Return Values

    单步调试区

    单步调试区

    从左到右依次是

    1. Show Execution Point 光标回到当前断点调试的位置
    2. Step Over 单步跳过,点击该按钮程序将向下执行一行
    3. Step Into 单步跳入,点击该按钮程序将向下执行一行。如果该行有自定义的方法,则进入该方法内部继续执行;注意如果是类库中的方法,则不会进入方法内部。
    4. Force Step Into 强制单步跳入,与之前的Step Into区别在于,这个是任何方法都会进入其内部
    5. Step Out 从方法体中跳出
    6. Drop Frame 这个我不了解,没调试出来
    7. Run to Cursor 忽视已经存在的断点,前进到当前光标位置断点调试

    变量观察区

    当你对某个变量特别感兴趣的时候,可以在调试过程中将其添加


    对某个变量进行特别观察

    断点的种类

    在Android Studio中,断点又被以下五类:

    1. 条件断点
    2. 日志断点
    3. 异常断点
    4. 方法断点
    5. 属性断点
    • 条件断点
      满足一定条件才触发断点。这个其实很实用,举个例子,一个for循环,从1-10,如果你仅仅想在6的时候触发断点,你可以使用此种断点方法来帮助你实现,而不需要一直从1点到6,节省了不少体力活。使用鼠标右击断点触发,在Condition处填写过滤条件
      条件断点 我们看到因为16行在条件判断上并不满足,所以直接跳到17行去了
    • 日志断点
      如果你想在关键地方临时保存信息在某个地方,这个断点方法最适合你不过了。它不会使程序停下来,而是将你debug中的日志信息记录在console里。同样使用鼠标右击断点触发,取消选中Suspend,选中Log evaluated expression,并填写相关日志信息
      日志断点
    • 异常断点
      在全局调试中,一旦发生异常(可以指定某类异常),则会立刻定位到异常抛出的地方


      异常断点

      这里我借用了空指针异常作为演示

    • 方法断点
      将断点加到这个方法上,一旦程序运行到调用这个方法的地方时,就会自动进入这个方法内


      方法断点
    • 属性断点
      当某个属性被修改的时候,它就会停留在修改处,这个方便我们查找到到底是谁去修改了这个属性


      属性断点

      这里g值发生变化,停留在g对象上

    其他牛逼功能

    • 临时断点
      在第一次触发后会自动被移除。使用Alt + 鼠标左击触发
      临时断点
    • 禁用断点
      该出断点不起作用。使用Alt + 鼠标左击触发
      禁用断点
    • 计算表达式
      临时需要改变某一个变量值或者计算其他表达式返回值时使用


      计算表达式

      注意这里还有一个Code Fragment Mode,支持多行表达式

    • 观察表达式/变量
      这个没什么好说了,初级入门功能。使用时选中表达式,再Alt + 鼠标左击触发
    • 修改变量值
      在调试过程中,我们可以方便的修改某个变量的值,后面代码都以这个值为准


      修改变量值
    • 标记对象
      在调试的过程中,给某个特定的对象打标签,以便后面的断点里面对这个变量进行识别


      标记对象

    参考文章

    你所不知道的Android Studio调试技巧

    相关文章

      网友评论

      • 血海无涯:临时断点,好像不能用 Alt + 鼠标左击 来快捷设置~
        血海无涯:@r17171709 处于调试模式下是禁用断点,不像编辑模式下可以循环切换,难道是AS的bug?
        皮球二二:@血海无涯 我这边可以啊。。。
      • sing_song:总结的很详细。
      • 迪迪迪迪迪迪迪:这文章是继参考文章那篇后第二给力的
      • dodo_lihao:好详细!学习了!

      本文标题:Android Studio 不为熟知的基本调试技巧

      本文链接:https://www.haomeiwen.com/subject/gxdiuttx.html