咱们一般都会在APP上线以后,发现各类错误,尤为是空指针异常,这些错误对于用户体验来讲是很是很差的,但其实大部分的问题,咱们都可以提早发现.编程
在编写代码的过程当中,可能不会时时刻刻记得检查空的引用,还有删除没有用过的变量,在咱们本身测试的过程当中可能难以发现问题,一旦app上线,用户的使用环境改变,这些潜在的问题就可能会冒出来.
固然这这只是对于我这种常常写出空指针异常的小白而言的,编程风格良好,编程严谨的大神请忽略.安全
今天我介绍一个小插件,帮助咱们提早找到这些潜在的问题,而后根据须要去修改.app
第一步下载插件,在AndroidStudio的File->Setting->Plugins->Browser Repositorise中搜索FindBugs-IDEA.而后install.
由于已经安装过插件,因此install的按钮已经消失了.
安装成功后须要重启AS才可使用.
静静等待一会,在下方生成分析结果工具
找到的bug太多,数量就不展现啦.
我来简单介绍一下这几类bug,固然有些你是能够忽略的.
1->Bad pratice编程的坏习惯
主要是命名问题,好比类名最好以大写开头,字符串不要使用等号不等号进行比较,可能会有异常最好用try-catch包裹的代码,方法有返回值但被忽略等等,这些若是不想改能够直接忽略.性能
2->Malicious code vulnerability 恶意代码漏洞
听起来很吓人呀,主要是一些属性直接使用public让别的类来获取,建议改成private并为其提供get/set方法.
还有一些public的静态字段,可能会被别的包获取之类的.
这些也须要根据项目具体状况来,我的意见,在有的不重要类,有时直接公开使用属性,可能更为便捷.若是你认为这些不须要修改,彻底能够忽略.测试
3->Dodgy code 糟糕的代码
·好比一个double/float被强制转换成int/long可能会致使精度损失,一些接近零的浮点数会被直接截断,事实上咱们应该保留.
这里顺便提一点,这两天看了《app研发录》,在规范代码,尽可能规避错误这方面我也有了一些收获.
在类型转换的时候,咱们应该为类型转换提供一个安全的转换方法,由于咱们永远不会知道,咱们的app在用户手里会发生什么,因此咱们要尽量的去减小这种发生错误的可能.插件
·好比使用switch的时候没有提供default。指针
·多余的空检查,就是不可能为空的值,增长了不为空判断,这是没有必要的。属于代码冗余code
·不安全的类型转换等等。
这项太多了,就不一一列举了。orm
4->performance 性能
主要是一些无用的代码,好比声明了没有用到的属性等等
5->correctness 代码的正确性 这一项应该算是最重要的了
主要是没有对变量进行不为空断定,在特殊状况可能发生空指针异常.
这篇文章还只是对FindBugs这个插件最主要的功能进行介绍,相信你能在使用过程当中发现这个工具更多的用法