Android Studio中FindBugs的使用

FindBugs

FindBugs是一个寻找bug的工具,更具体的说FindBugs是一个静态检测Java代码的工具,可以找到代码中的一些潜在bug,比如说NullPointerException,或者是一些流或者数据库没有关闭的问题.
出自官方的一句话(Provides static byte code analysis to look for bugs in Java code from within IntelliJ IDEA.)

作用

  • 常见代码错误,序列化错误
  • 可能导致错误的代码,如空指针引用
  • 国际化相关问题:如错误的字符串转换
  • 可能受到的恶意攻击,如访问权限修饰符的定义等
  • 多线程的正确性:如多线程编程时常见的同步,线程调度问题。
  • 运行时性能问题:如由变量定义,方法调用导致的代码低效问题

安装方法

在插件目录下查找FindBugs
Android Studio中FindBugs的使用_第1张图片
直接安装,成功之后,下面的菜单栏会有一个FindBugs的菜单
Android Studio中FindBugs的使用_第2张图片

使用方法

开始分析你的应用,点击Analyze Project Files
Android Studio中FindBugs的使用_第3张图片
然后会分析出应用中存在的Bug
Android Studio中FindBugs的使用_第4张图片

设置

在setting里面还可以对FindBugs做一些设置(这里就不做详细的介绍了)
Android Studio中FindBugs的使用_第5张图片

自定义规则

FindBugs可以在gradle里面做自定义任务
(注意需要在gradle里面添加 apply plugin:’findbugs’)
这里写图片描述
Android Studio中FindBugs的使用_第6张图片
在这里配置了规则findbugs-filter.xml 以及报告生成的路径findbugs.xml

task findbugs(type: FindBugs, dependsOn: "assembleDebug") {
    ignoreFailures = false
    effort = "max"
    reportLevel = "high"
    excludeFilter = new File("$configDir/findbugs/findbugs-filter.xml")//这里是自定义的规则
    classes = files("${project.rootDir}/app/build/intermediates/classes")

    source 'src'
    include '**/*.java'
    exclude '**/gen/**'

    reports {
        xml.enabled = false
        html.enabled = true
        xml {
            destination "$reportsDir/findbugs/findbugs.xml"  //这里是报告产生的路径
        }
        html {
            destination "$reportsDir/findbugs/findbugs.html"  //这里是报告产生的路径
        }
    }

    classpath = files()
}

Android Studio中FindBugs的使用_第7张图片

你可能感兴趣的:(android,android,bug,android,studio)