Android(Java)利用findbugs进行代码静态检查
主要介绍利用java静态代码检查工具findbugs进行代码检查,包括其作用、安装、使用、高级功能(远程review和bug同步)。
虽然Android提供了Test Project工程以及instrumentation可以方便的进行单元测试,不过据了解国内Android开发会写自测代码的寥寥无几。那么有没有简单的方法一定程度上保证代码质量呢。Android应用开发大多使用Java,所以对于Java代码检查工具都可以适用,本文介绍其中功能较为强大的findbugs。
1、findbugs作用
findbugs可用于对java代码进行静态检查,检查bug类型包括:
XHTML
Bad practice 坏的实践:常见代码错误,序列化错误,用于静态代码检查时进行缺陷模式匹配
Correctness 可能导致错误的代码,如空指针引用等
国际化相关问题:如错误的字符串转换
可能受到的恶意攻击,如访问权限修饰符的定义等
多线程的正确性:如多线程编程时常见的同步,线程调度问题。
运行时性能问题:如由变量定义,方法调用导致的代码低效问题。
记住一点,findbugs只能用于代码静态检查,对于动态运行中不断变化的数据产生的bugs是无法捕捉的,所以不能代替单元测试、功能测试、性能测试,只能说一定程度上检查简单错误。
2、findbugs安装
通过Eclipse插件进行安装
Eclipse -> Help -> Install New Software,
site输入http://findbugs.cs.umd.edu/eclipse,进行安装。
3、findbugs使用
右击工程,选择Find Bugs -> Find Bugs即会对代码开始检查。检查完成后通过Windows
-> Show View -> Find Bugs -> Bug Exporer查看bug列表,如TrineaAndroidCommon工程检查结果如下图:
点击右上角+标记展开所有bug细节,点击某个bug进入相应代码行
findbugs会对bug进行分类,同时每一类中会按bug的优先级分类,如下图
4、findbugs高级功能
findbugs提供了代码review以及在线同步功能,这样,对于一个团队,尤其是异地工作,可以方便的代码review。以前在阿里应用有专门的开发部门开发类似功能。
右击工程,选择Properties -> Find Bugs, 勾选Enable
project specific settings, store issue evaluations in选择FindBugs Cloud。在Bug Exporer视图中选中某个bug,在Bug Reviews视图中填写review信息即可,如下:
不过国内findbugs被强了,得用vpn。
Android(Java)利用findbugs进行代码静态检查的更多相关文章
- 四种java代码静态检查工具
[转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043 1月16日厦门 OSC ...
- 代码静态检查Eclipse插件:SonarLint插件离线安装
Eclipse Version: Oxygen.3a Release (4.7.3a)Myeclipse版本: 10.7 SonarLint 插件离线安装包:org.sonarlint.eclipse ...
- instrument之Xcode Analyze 代码静态检查及问题解决
Static Code Analysis(静态代码分析)用来发现源代码潜在的错误与缺陷,源代码编译后只有在运行时有可能会产生细微的错误,他们可能难以识别和修复,所以这些潜在的威胁在开发过程中一定要尽可 ...
- C/C++代码静态检查工具Cppcheck在VS2008开发环境中的安装配置和使用
Cppcheck is an analysis tool for C/C++code. Unlike C/C++ compilers and many other analysis tools, it ...
- Java利用FastJson一行代码转List<Map>为List<Bean>
/** * 字符串 -> json对象.实体对象.Map.List.List<Map> */ // 字符串 -> json对象 JSONObject json = JSON.p ...
- pylint代码静态检查
使用git-pylint-commit-hook工具 pre-commit脚本 配置文件放在仓库根目录/hooks下面 git-pylint-commit-hook --limit=9.0 --pyl ...
- Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果
为了规范代码,我们一般会集成静态代码检测工具,比如PMD.FindBugs.Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢? 今天做了调研和实现,过程如下 ...
- JAVA代码静态检测之PMD
今天再次想启动Java代码静态检测工具的利用问题,主要再次尝试用了PMD,发现不少代码编码规范问题和好的代码建议,并学到不少自己之前没有注意到的Java方便的基础知识,感觉很不错,把相关明白的好的规则 ...
- maven配置checkstyle插件对代码规范进行静态检查
checkstyle配置的官方网站:http://checkstyle.sourceforge.net/config.html (1)新建maven项目,配置checkstyle插件 pom.xml ...
随机推荐
- JS学习--DOM
1.概念 文档对象模型DOM,定义访问和处理HTML文档的标准方法.DOM将HTML呈现为带有元素.属性和文本的树结构(节点树). 2.document.getElementById("id ...
- Windows下Nginx实现负载均衡
Apache,Nginx Apache和Nginx都属于属于 静态页面服务器,都有插件支持动态编程语言处理,但Nginx的IO模比Apache更适合跑代理.所以一般都作为前端缓冲代理(Nginx的反向 ...
- 康盛(discuz )牛逼的PHP加解密算法函数
1.前言 康盛的 authcode 函数很牛叉,是一个具有有效期的加解密函数,同一个字符每次加密所产生的结果都是不一致的,并且可以自定义设置过期时间. 设计原理:authcode 是使用异或运算进行加 ...
- 洛谷 [p1196] 银河英雄传说
所谓带权并查集 本题所求的不止是两个编号之间是否有关系,还要求两个编号之间有什么关系,这就要求我们维护多个数组,fa[]数组维护两个编号之间的连通性,dis[]维护编号为i的战舰到fa[i]之间的距离 ...
- 利用Effmpeg 提取视频中的音频(mp3)
在B站看到一个up发的病名为爱的钢琴曲,感觉很好听,然后当然是要加入歌单啊.然而不知道怎么转换成mp3,找来找去找到了EFFmpeg 这篇只是达到了我简单的需求,以后可能会有EFFmpeg更详细的使用 ...
- zabbix server总是stoped,找到此方法解决了问题
zabbix日志报错: One child process died (PID:8885,exitcode/signal:1). Exiting ... syncing history data... ...
- 使用Nginx实现灰度发布
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B ...
- intellij idea maven 工程生成可执行的jar
新建maven 工程 写hello world 修改pom.xml 文件 <build> <pluginManagement> <plugins> <plug ...
- 三、scrapy后续
CrawlSpiders 通过下面的命令可以快速创建 CrawlSpider模板 的代码: scrapy genspider -t crawl tencent tencent.com 我们通过正则表达 ...
- Conemu, Msys2 工具整合,提升windows下控制台工作效率
与windows cmd相比较git-bash这类的console工具好用很多,但是git-bash的命令和功能相对简单,功能扩展起来不方便,git-bash本身也是基于msys的. 昨天发现使用Ms ...