AndroidStudio调试 | Android权威编程指南(第二版)

参考博文:点击查看

一、异常与栈跟踪

1、程序崩溃

程序崩溃后,控制台输出如下图:

这里写图片描述

该异常报告首先告诉我们最高级层的异常及其栈追踪,然后是导致该异常的异常及其栈追踪,不断追溯直到找到一个没有原因的异常,这个没有原因的异常往往是解决问题的关键,也就是自己程序中出现的问题。单击错误的蓝色部分,AndroidStudio会自动定位到程序出错的地方。

2、运行异常

应用没有按照预期的状态运行,也就是运行异常。例如,点击按钮是,应用无反应。由于没有抛出异常,这类问题比较难解决。此时,需要设法跟踪并找出问题。

1)记录栈跟踪的诊断性日志

Log.d(String,String,Throeable)方法,添加日志输出语句,来记录并输出整个栈跟踪日志,可看出在那些地方调用了。作为参数传入方法的异常并不一定是我们捕获的异常,可创建一个新的异常方法,把它作为不抛出异常对象传入该方法

2)设置断点调试

断点会在断点设置的前一行代码处停止运行,然后可以逐行检查代码,看看程序
的执行。调试运行

详细调试步骤

设置好断点,运行的时候选中debug模式调试。运行后可在控制台查看详细信息

这里写图片描述

这里写图片描述

step over:这里写图片描述

程序向下执行一行,如果当前行是一个方法的调用,则方法执行结束后程序执行下一行,不进入方法内部执行。

step into:这里写图片描述

程序向下执行一行,如果当前行为自定义方法,则进入方法内部继续执行,如果是类库中的方法则不会进入方法内部。

force step into:这里写图片描述

程序执行下一行,如果当前行有方法,全部跳入到方法内部继续执行。方便追踪源码。

step out :这里写图片描述

如果有断点走到下一个断点,如果没有断点,而是在一个方法中,跳出该方法,继续走。

drop frame:

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

Run to cursor:这里写图片描述

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

Resume Program
恢复应用的含义,
1、在应用暂停状态下,点击按钮恢复应用运行。
2、如果设置了多个断点,可直接运行到下一个断点。

这里写图片描述

Stop 停止调试
对于普通JAVA项目,点击该按钮意味着推出调试模式,但应用还会继续执行。在Android项目中,点击该按钮,则意味着app结束运行。

这里写图片描述

查看断点
点击该按钮后可以查看到设置的所有断点,以及位置代码。可以进行相关的设置

这里写图片描述

观察变量
把需要观察的变量通过Add to Watched添加到观察区,可以在观察区看到该变量值得变化。选中变量名然后点击右键,选择Add to Watched即可。

这里写图片描述

设置变量的值
对于程序中循环语句调试比较耗时,可通过快速设置变量值加快调试速度。选中变量名然后点击右键,选择Set Value…

二、Android特有调试工具
Android Lint 是Android应用代码的静态分析器(static analyzer),无需代码运行就能够检查代码错误的特殊程序。由于Android Lint对Android框架知识的掌握,Android Lint深入检查diamagnetic,找出编译器无法发现的问题。

查看项目中所有潜在问题,选择Analyze—–>Inspect Code..菜单项手动运行Lint

这里写图片描述

然后选中要检查的内容,点击OK后,检查开始。检查结束后,可以看到Lint列出了所有的问题。点击某一项可以查看详细的内容。

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值