Android Studio中使用FindBugs

文/ZYRzyr
原文链接:http://www.jianshu.com/p/adc5e7f9f9fb

1.什么是FindBugs

一句话简单理解就是:是一个工具,可以用它自动帮你找出代码中潜在的BUG。当然事实并不一定总是如此,也有很多它找不出来的地方。下面将直接介绍如何在Android Studio中的简单使用。有兴趣的童鞋可以自己去了解了解,附上官网

2.在Android Studio中使用FindBugs-IDEA插件

(1)安装插件

Android Studio –> File –> Settings… –> Plugins –> 搜索FindBugs-IDEA –> 安装并重启Android Studio
重启之后可以看见Android Studio窗口下方的工具栏中出现了一个新的选项,如下图:

《Android Studio中使用FindBugs》 工具栏.png

(2)工具栏说明

上图所说的选项点开之后的样子和下面一样(我的工程名字叫:MyApplication):

《Android Studio中使用FindBugs》 FindBugs-IDEA.png

红框中的图标会根据你当前选中的文件或文件夹,有不同情况的亮灭,即是否可点击状态(图中是我的光标停留在一个java文件中时的状态),鼠标停留在图标上一会儿会有图标说明出现。

(3)使用演示

首先,在File –> Settings… –> FindBugs-IDEA –> Filter中添加忽略检查的文件(一般是忽略.R和Manifest,不忽略这两个文件的话可能会检查出一些所谓的BUG,但你并不能修复它们),如下图所示:

《Android Studio中使用FindBugs》 exclude.png

其中文件”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中写一个死循环,如下图所示:

《Android Studio中使用FindBugs》 死循环.png

然后在左边文件树中选中MainActivity.java这个文件,打开下方工具栏中的FindBugs-IDEA,点击第一列中红色那只虫(或者直接使用快捷键Ctrl+Alt+Shift+F),之后就开始检测了,检测完后,会显示出有BUG的代码在什么位置,还有一些说明,如下图:

《Android Studio中使用FindBugs》 BUG.png

点击蓝色的那条,窗口就会跳到有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

    原文作者:ZYRzyr
    原文地址: https://www.jianshu.com/p/adc5e7f9f9fb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞