1.什么是FindBugs
一句话简单理解就是:是一个工具,可以用它自动帮你找出代码中潜在的BUG。当然事实并不一定总是如此,也有很多它找不出来的地方。下面将直接介绍如何在Android Studio中的简单使用。有兴趣的童鞋可以自己去了解了解,附上官网。
2.在Android Studio中使用FindBugs-IDEA插件
(1)安装插件
Android Studio --> File --> Settings... --> Plugins --> 搜索FindBugs-IDEA --> 安装并重启Android Studio
重启之后可以看见Android Studio窗口下方的工具栏中出现了一个新的选项,如下图:
(2)工具栏说明
上图所说的选项点开之后的样子和下面一样(我的工程名字叫:MyApplication):
红框中的图标会根据你当前选中的文件或文件夹,有不同情况的亮灭,即是否可点击状态(图中是我的光标停留在一个java文件中时的状态),鼠标停留在图标上一会儿会有图标说明出现。
(3)使用演示
首先,在File --> Settings... --> FindBugs-IDEA --> Filter中添加忽略检查的文件(一般是忽略.R和Manifest,不忽略这两个文件的话可能会检查出一些所谓的BUG,但你并不能修复它们),如下图所示:
其中文件"findbugs-android-exclude.xml"打开后如下,复制保存为xml格式后在中间红框处选择添加它:
<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
<!-- http://stackoverflow.com/questions/7568579/eclipsefindbugs-exclude-filter-files-doesnt-work -->
<Match>
<Or>
<Class name="~.*\.R\$.*"/>
<Class name="~.*\.Manifest\$.*"/>
</Or>
</Match>
</FindBugsFilter>
添加完成之后选择OK,即可开始使用(当然你也可以添加其它不想被检测的文件)。
使用
检查的功能很全面,比如检查当前选中文件、检查文件夹、检查整个工程等等。
这里只写出最简单也是最常用的方式——检查当前选中文件,其它方式各位可自己多试试就明白了。
我先在MainActivity中写一个死循环,如下图所示:
然后在左边文件树中选中MainActivity.java这个文件,打开下方工具栏中的FindBugs-IDEA,点击第一列中红色那只虫(或者直接使用快捷键Ctrl+Alt+Shift+F),之后就开始检测了,检测完后,会显示出有BUG的代码在什么位置,还有一些说明,如下图:
点击蓝色的那条,窗口就会跳到有BUG的代码处,修改好之后再重新运行检测就行了。
最后
总的来说,这个工具还是很方便的,通常情况下可以检查出以下几类问题:
1) Bad practice:不好的做法,代码违反了公认的最佳实践标准,比如某个类实现了equals方法但未实现hashCode方法等;
2)Malicious code vulnerbility:恶意的代码漏洞;
3)Correctness:可能不正确,比如错误的强制类型转换;
4)Performance:潜在的性能问题;
5)Security:安全性;
6)Dodgy code:糟糕的代码,FindBugs团队认为该类型下的问题代码导bug的可能性很高;
7)Experimental:实验;
8)Multithreaded correctness:关注于同步和多线程问题;
9)Internationalization:国际化
不过,关于业务方面的BUG,它可就无能为力了。
原文作者/ZYRzyr
原文链接:http://www.jianshu.com/p/adc5e7f9f9fb
请进入这里获取授权:https://101709080007647.bqy.mobi