
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习移动端编程开发等互联网技术,而本文我们就通过案例分析来简单了解一下,Android开发日志断点常用方法都有哪些。
减少编译次数
越大的项目运行起来越是缓慢,而有时我们只是修改了一行代码甚至是一个字符,这时再去重新编译是效率非常低下的,而灵活运用各种调试技巧,就可以帮助我们在不重新运行项目的前提下,去修改运行中代码。
编译验证
运行期代码植入
想修改已经运行起来的代码,有两种方式:
在Variables区中使用setValue。
setValue
使用EvaluateExpression。
EvaluateExpression
EvaluateExpression是一个非常强大的功能,可以展开执行任意的代码段。灵活运用可以大量的减少编译次数,例如:
修改网络请求、外部跳转等来源的数据,模拟各种场景。
执行某些代码,直接查看结果。
执行某一段异常代码,直接查看报错信息。
日志断点
日志是辅助开发排查问题的常见手段,但是在代码中添加日志存在一些不便的情况,例如:
需要重新运行程序。
开发完成之后需要去除对应的日志代码。
而使用日志断点就可以避免以上问题,使用方式为在断点位置右键,取消Suspend框的勾选,同时勾选EvaluateandLog并输入想要的内容。
日志断点
条件断点
当一个断点会被多次执行,而调试时只需求在某些特定条件下才挂起,可以使用条件断点。使用方式为在断点位置右键,在Condition框中输入条件表达式,回车,这时断点右下角出现一个「?」即为条件断点成功挂载。
注意,条件断点的表达式返回值必须为true或者false,否则断点报错。
条件断点
异常断点
当开发者知道接下来一定会报某一个异常,但是又不知道会是哪段代码触发时,可以尝试使用异常断点。使用方式为在断点管理界面点击「+」,添加JavaExceptionBreakpoints。
异常断点
然后输入你想要捕获的异常,注意,这里也会捕获系统抛出的异常,捕获时请仔细观察。
异常断点
多线程断点
多线程是日常开发中常见的问题,针对一系列线程切换场景,调试工具也有对应的方式来辅助我们定位问题。
多线程断点
答案就是「无法确定」。
没错,在CPU的时间片执行机制下,如果不加以控制,开发者是无法预估线程执行顺序的。而直接写一系列的线程控制代码耗时不小,有没有办法能先让线程按照开发者想要的顺序去执行呢?请继续往下看:
在断点位置上右键,出来的管理界面里有All和Thread两个选项:
All表示阻塞所有线程,即所有线程都走到当前断点位置后,才能继续往下走。
Thread表示阻塞当前线程,即当前线程的代码走完后,才会走其他线程。
多线程断点
所以结合上面的示例:
All选项的输出结果为:所有线程先执行完start,再执行end,但是哪个线程先执行无法确定。
All
Thread选项的输出结果为:一个线程先执行完start,再执行end,然后是另外一个线程,但是哪个线程先执行无法确定。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。