Android Studio中使用FindBugs

作者: ZYRzyr | 来源:发表于2017-05-19 11:18 被阅读2067次

    文/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窗口下方的工具栏中出现了一个新的选项,如下图:

    工具栏.png

    (2)工具栏说明

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

    FindBugs-IDEA.png

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

    (3)使用演示

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

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

    死循环.png

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

    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

    相关文章

      网友评论

      • android小菜逼:findbugs-android-exclude.xml这个文件在哪呢
        ZYRzyr:文中有它的代码,需要在自己电脑新建一个这个文件,然后用文中的代码
      • TinycoderWang:i<0写错了吧,这不是不循环吗
        ZYRzyr:@TinyCoderWang 故意写错的啊,就是要让FindBugs来找错
      • 闪电代码手:张大哥强无敌

      本文标题:Android Studio中使用FindBugs

      本文链接:https://www.haomeiwen.com/subject/hwtyxxtx.html