AndroidStudio调试 | Android权威编程指南(第二版)
2017-04-02 15:09
471 查看
参考博文:点击查看
一、异常与栈跟踪
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列出了所有的问题。点击某一项可以查看详细的内容。
一、异常与栈跟踪
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列出了所有的问题。点击某一项可以查看详细的内容。
相关文章推荐
- 《Android权威编程指南(The Big Nerd Ranch Guide)(第二版)》12.4挑战练习
- 《Android权威编程指南(The Big Nerd Ranch Guide)(第二版)》12.4挑战练习
- Android 编程 权威 指南 阅读 笔记
- [Android Studio 权威教程]断点调试和高级调试
- Android 编程权威指南 阅读笔记
- android权威编程指南学习笔记
- Android权威编程指南第14章的小bug
- Android权威编程指南学习笔记1
- 《android 编程权威指南》--CriminalIntent开发 【贰】
- [Android Studio 权威教程]断点调试和高级调试
- Android权威编程指南学习笔记2
- [Android Studio 权威教程]断点调试和高级调试
- android权威编程指南学习笔记
- 《Android 编程权威指南》(Android Programming The Big Nerd Ranch Guide)的代码和问题
- Android权威编程指南读书笔记(1-2章)
- #Android 权威编程指南学习笔记# #12.2章#
- Android: Action Bab编程指南
- Android Studio入门指南 (史上最全,全球首发)
- Android Studio使用指南
- Android版火狐:远程调试功能指南