学习知识: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编程: 调试方法的更多相关文章

  1. Android Studio调试方法学习笔记

    (注:本人所用Android Studio的Keymap已设为Eclipse copy) 1.设置断点 只有设置断点,才好定位要调试什么地方,否则找不到要调试的地方,无法调试.(调试过程中也可以增加断 ...

  2. Android WebView 调试方法

    调试Android WebView中的h5页面,通常就是通过alert和抓包工具来定位问题,效率低且无法直接调试样式或打断点,可谓是事倍功半.本文介绍一下我在项目中使用的新方法,能够通过chrome的 ...

  3. LeanCloud SDK 中秒杀70%问题的调试方法

    非常多同学在LeanCloud上遇到的不少问题,事实上能够自我解决的,如今介绍一下LeanCloud上的调试方法. LeanCloud 是通过 REST API来进行前后端分离的.这意味着当出现故障的 ...

  4. 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!

    http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...

  5. android 动态库死机调试方法 .

    原地址:http://blog.csdn.net/andyhuabing/article/details/7074979 这两种方法都不是我发明了,都是网上一些高手公共出来的调试方法,无奈找不到出处的 ...

  6. Android调试方法总结

    Android程序调试过程中,通常需要在控制台或者AVD中弹出相关信息作为调试使用,以下是调试使用中会用到的Log类和Toast类的使用方法: 1.Toast Toast是在AVD上显示信息的一种机制 ...

  7. Android开发调试无法连接到夜神模拟器的解决方法

    Android开发调试无法连接到夜神模拟器的解决方法: 一般原因是adb的版本不一致造成的!!!!!换成一样的就可以了. 在网上看到的方法,特记录下来: 1.任务管理器里看下,adb.exe以及nox ...

  8. 《Android编程权威指南》

    <Android编程权威指南> 基本信息 原书名:Android programming: the big nerd ranch guide 原出版社: Big Nerd Ranch Gu ...

  9. Android动态调试so库JNI_Onload函数-----基于IDA实现

    之前看过吾爱破解论坛一个关于Android'逆向动态调试的经验总结帖,那个帖子写的很好,对Android的脱壳和破解很有帮助,之前我们老师在上课的时候也讲过集中调试的方法,但是现在不太实用.对吾爱破解 ...

随机推荐

  1. ubuntu下,apt的参数使用,很实用呦

    ubuntu下apt-get 命令参数 常用的APT命令参数 apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明.大小.版 ...

  2. android Tab =viewpager+fragmnet

    1.定义几个fragment 的subclass 如fragmentone,fragmenttwo; public class fragmentthree extends Fragment { pri ...

  3. jqmobi 转换语言

    当第一次打开APP时,检测手机默认的语言,设置APP的语言跟手机默认一样:当点击了APP里面的设置语言的按钮,存储当前设置的语言 :关闭APP:再一次打开APP时,检测存储在APP里面的语言,转换语言 ...

  4. 【Linux】Zabbix + MPM + msmtp + mutt 监控MySQL + 邮件报警

    Zabbix部署参考博文 http://blog.sina.com.cn/s/blog_5611597901017oe0.html  MPM安装配置参考博文和MPM官网下载地址 http://blog ...

  5. MySQL安装图文教程

    下载 1.下载地址: http://www.mysql.com/downloads/ 2.下载图解 下载社区版本就可以,社区版里有我们的想要的几乎全部功能.只不过 商业版的mysql会提供一定高级的解 ...

  6. .NET常用类库知识总结

    常用类库之.NET中的字符串 字符串的特性 1.不可变性        由于字符串是不可变的的,每次修改字符串,都是创建了一个单独字符串副本(拷贝了一个字符串副本).之所以发生改变只是因为指向了一块新 ...

  7. c#桌面小软件

    这是以前练习时用c#做的桌面小软件,今天回顾下. 这是设计界面 可以看出该程序能够播放网络歌曲及浏览新闻. 实现:歌曲来源百度API,播放WindowsMediaPlayer api地址:string ...

  8. Application Designer Security

    This wiki page covers how to manage and restrict Application Designer security through permission li ...

  9. HBase分布式安装

    安装HBase之前需要先安装Hadoop,因为HBase是运行在Hadoop集群上的.安装Hadoop可以参照http://www.cnblogs.com/stGeekpower/p/3307289. ...

  10. ThinkPHP之中的验证码的小示例

    ThinkPHP之中已经封装好了验证码的调用,但是关于手册,缺失了HTML之中以及.实际操作之中的点击ajax就会刷新验证码ajax代码:现在分享一下:看客老爷们注意啦! 放大招啦!!!三分归元气-- ...