1.无脑静态调试
解释下这个标题:
- 无脑:觉得哪里有问题,就打印哪里。
- 静态:每次想打印,都要去修改代码,然后重新运行程序。
适用于:想查看变量的值在某一时刻是否异常!
接着来说下两种常用的调试方法:
Toast打印法
新手Android开发仔最爱调试法,使用简便,仅需一行代码,轻松打印:
Toast.makeText(MainActivity.this, "Toast调试", Toast.LENGTH_SHORT).show();
方便是挺方便的,不过有一点要注意:Android 5.0后,如果把「消息通知的权限」 关闭掉的话,部分机型是不会显示Toast的!你还可以使用Snackbar来显示值进行调试:
Snackbar.make(父view, "Snackbar调试", Snackbar.LENGTH_SHORT).show();
或者其他变通的方法,比如在页面上添加一个TextView,把值直接显示在文本框上。
Log日志打印法
Toast调试是挺爽的,但是有两个问题:
- 1.想调试打印多个值的话,Toast会弹个不停,毕竟同一时刻只有「一个」Toast显示在前台;
- 2.Toast间隔一段时间后会消失,即使你设置了Toast.LENGTH_LONG;
可能你一走神,没来得及看调试的值,Toast就消失了。我们着实需要一种无需担心调试 结果消失的方法——「Log日志打印法」,就是利用Android系统提供的Log类,在调试 的地方,把日志打印到「Logcat控制台」上,使用方法也非常简单:
Log.d("TAG", "Log调试")
当代码执行到这一句的时候,就会在Logcat控制台打印调试信息,另外Logcat默认 会打印出所有的日志信息,我们可以做一些过滤来定位到我们调试的日志信息。 首先是:
「日志类型」,Android支持6种日志类型,依次如下:
- Verbose:详细,所有类型的日志信息。
- Debug:调试,调试用的日志信息。
- Info:信息,正常使用时需要关注的日志信息。
- Warn:警告,可能有问题,但没发生错误的日志信息。
- Error:错误,运行时出现严重错误的日志信息。
- Assert:断言。
温馨提示:
不要上来就Error级别,我以前打Log全部用Log.e,原因是日志信息是红色的,好看... 觉得颜色不好看,你可以按照下述的操作进行自定义。
打开「Settings」-> 「Editor」->「Colors Scheme」->「Android Logcat」 选择日志类型,然后去掉勾选,然后点击选择颜色色值
这是笔者配色方案,读者可以自行调整为喜欢的颜色:
- Assert:8F0005
- Debug:0070BB
- Error:FF0006
- Info:48BB31
- Verbose:BBBBBB
- Warning:BBBB23
设置后的配色如图所示:
行吧,知道可以通过Log类打印调试和自定义Logcat配色,顺带也提提「日志过滤」的姿势吧。
- 自定义Logcat日志头信息的显示内容:点击面板上的「Logcat Header」来设置日志头信息
可选设置内容如下:
右侧还可以「过滤日志信息」,支持正则,再右面是过滤特定日志的选项。
如果觉得还不够的话,可以点击最右侧的「Edit Filter Configuration」来配置一个自
己的过滤器。
另外,还可以对进行「日志搜索」,鼠标点击Logcat中间区域获得焦点,Ctrl + F 调出 搜索工具栏,接着搜索相关的日志内容。
顺带提下Log类的一个容易忽略的小坑:
Log类只会打印4000个字符,超过部分不打印!!!
2.有脑动态调试法
其实就是用Android Studio提供的Debug模式来程序调试,相比起前面的 Toast打印法和Log日志打印法,稍微复杂一点,要点学习成本,还有动脑子, 最重要是可以动态调试,很多新手玩家貌似对这个都望而却步,其实不难,待我 由浅入深走一遭,来学学Android Studio Debug核心技巧。