Android编程: 调试方法
学习知识:Android的调试方法
====调试方法====
前提: IDE环境为Android Studio,熟悉LogCat,知道如何查看日志信息
工具: Android DDMS调试工具,一般点击一个类似爬虫的图标就可以启动该界面,进入调试模式
设备监控工具:Android Device Monitor(menu: tools->android->Android Device Monitor)
Android Device Monitor 用于查看Android设备信息,信息类别:
1.线程信息
2.HEAP内存情况
3.内存分配跟踪统计
4.网络使用情况
5.文件结构信息
6.模拟控制
7.系统运行的信息
上面的东西都是必须了解的,这些只是工具,基础的工具,会随着IDE工具的升级,变更,或是更换IDE开发环境
而变化,不作为重点关注,不过需要注意事项是调试需要重启下ADB服务,让ADB服务支持调试;重点的内容是调试的方法:
1.查看LogCat报出的栈桢信息定位问题
:针对常见错误,比如空指针,抛出异常
2.使用Log类,在关键代码位置打印日志信息进行排查
:针对常见的逻辑错误,比如忘记更新某个状态:下一个,上一个?
3.使用断点一步步勾画代码的业务流程处理走向,从而帮助理解业务出错的地方
:针对比较隐晦的问题,主要是逻辑关联性强的BUG
4.走查代码,清晰业务流程,辅助二分法、排除法定位问题代码
:这类BUG属于深藏不漏性,或偶现,或是产品软件已经发布,只能根据部分日志或反馈的问题描述、现象来定位
二分法、排除法我使用比较多,调试的时候使用它们解决问题高效、科学。举例说明下,如果你的程序
由A、B、C三个模块构成,根据日志反馈,你发现了一条异常的信息或是问题描述,可以排除不是A、C模块
输出的,那么断定由B模块引起,但是发现异常的情况,模块B中有好几处地方,这个时候就需要二分法进行范围
缩减,先把B模块的代码按照执行逻辑分成二份,排除掉一份,在把问题代码的那份继续相同的思路排除,逐步
接近问题代码!
Android编程: 调试方法的更多相关文章
- Android Studio调试方法学习笔记
(注:本人所用Android Studio的Keymap已设为Eclipse copy) 1.设置断点 只有设置断点,才好定位要调试什么地方,否则找不到要调试的地方,无法调试.(调试过程中也可以增加断 ...
- Android WebView 调试方法
调试Android WebView中的h5页面,通常就是通过alert和抓包工具来定位问题,效率低且无法直接调试样式或打断点,可谓是事倍功半.本文介绍一下我在项目中使用的新方法,能够通过chrome的 ...
- LeanCloud SDK 中秒杀70%问题的调试方法
非常多同学在LeanCloud上遇到的不少问题,事实上能够自我解决的,如今介绍一下LeanCloud上的调试方法. LeanCloud 是通过 REST API来进行前后端分离的.这意味着当出现故障的 ...
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...
- android 动态库死机调试方法 .
原地址:http://blog.csdn.net/andyhuabing/article/details/7074979 这两种方法都不是我发明了,都是网上一些高手公共出来的调试方法,无奈找不到出处的 ...
- Android调试方法总结
Android程序调试过程中,通常需要在控制台或者AVD中弹出相关信息作为调试使用,以下是调试使用中会用到的Log类和Toast类的使用方法: 1.Toast Toast是在AVD上显示信息的一种机制 ...
- Android开发调试无法连接到夜神模拟器的解决方法
Android开发调试无法连接到夜神模拟器的解决方法: 一般原因是adb的版本不一致造成的!!!!!换成一样的就可以了. 在网上看到的方法,特记录下来: 1.任务管理器里看下,adb.exe以及nox ...
- 《Android编程权威指南》
<Android编程权威指南> 基本信息 原书名:Android programming: the big nerd ranch guide 原出版社: Big Nerd Ranch Gu ...
- Android动态调试so库JNI_Onload函数-----基于IDA实现
之前看过吾爱破解论坛一个关于Android'逆向动态调试的经验总结帖,那个帖子写的很好,对Android的脱壳和破解很有帮助,之前我们老师在上课的时候也讲过集中调试的方法,但是现在不太实用.对吾爱破解 ...
随机推荐
- cordova 开发属于自己的插件---android
还是需要开发出自己的插件的... 我的cordova version is 4.0.0 1.需要新建一个文件夹为 myplugin 1.1在myplugin文件夹下 新建 plugin.xml文件 ...
- 用代码打开FORM里面用到的数据源
修改动态报表的时候,尝尝需要根据当前设计里指定的数据源,然后打开AOT去查找,相当的不方便. 于是产生写了一个方法,可以根据传过来的数据源名,去AOT找到TABLE或者VIEW, 直接打开,以便修改. ...
- 【WCF】Silverlight+wcf+自定义用户名密码验证
本文摘自 http://www.cnblogs.com/virusswb/archive/2010/01/26/1656543.html 在昨天的博文Silverlight3+wcf+在不使用证书的情 ...
- 修改VS解决方案及工程名,解决如何打开高/版本VS项目
对于VS2008等低版本与高版本VS之间的转换问题: 对照下面2个版本的不同点自由修改,切换到相应的版本文件(红字修改,灰色删除) ---------------------------------- ...
- github的入门使用
原文 http://www.eoeandroid.com/thread-274556-1-1.html [初识Github]首先让我们大家一起喊一句“Hello Github”.YEAH!就是这样. ...
- jQuery源码的几篇文章
http://lingyu.wang/#/post/2014/5/8/read-jq-src-1 http://lingyu.wang/#/post/2014/5/10/read-jq-src-2 h ...
- Shiro使用总结
Shiro已经添加到项目中,现阶段管理两个功能: 1.身份验证:(已经能够满足现阶段需求) 2.权限管理: 权限管理,需要在界面中加一些标签,后台角色.资源的管理也需要整理好,然后在前端添加管理. 1 ...
- Android IOS WebRTC 音视频开发总结(四一)-- QQ和webrtc打洞能力pk
很多人知道webrtc打洞能力很强,到底有多强但是不知道,比较好的方法就是跟QQ对比,但大多数公司很难模拟各种网络环境进行测试,比如联通,铁通,电信,移动,所以这次请小师妹在实验室下进行了一个比较全面 ...
- c++强制类型转换(static_cast,const_cast,dynamic_cast,reinterpret_cast)
static_cast <typeid>(exdlvssion) static_cast 很像 C 语言中的旧式类型转换.它能进行基础类型之间的转换,也能将带有可被单参调用的构造函数或用户 ...
- 最简洁粗暴版的虚拟用户配置FTP
最简洁粗暴版的虚拟用户配置FTP yum安装FTP: yum install vsftpd pam* db4* -y 设置为系统服务:chkconfig –level 35 vsftpd on 2.v ...