主要介绍利用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。

最新文章

  1. Amazon Resource Names (ARNs)
  2. Hibernate总结1(入门)
  3. 10月16日上午MySQL数据库作业设计表解析
  4. androidStudio 改包名
  5. 在windows下创建一个Mongo服务
  6. spring事务回滚无法捕捉
  7. rm: cannot remove `/home/cn0000/log/formlog.20140417': Read-only file system
  8. fzu 1913 Easy Comparison(字符串)
  9. Android-----获取屏幕分辨率DisplayMetrics简介 .
  10. Mac下StarUML的安装以及破解
  11. CodeForces 719A. Vitya in the Countryside
  12. 使用python实现日志功能
  13. python 批量重命名
  14. select top 变量问题
  15. Ubuntu 16.04 小飞机启动失败
  16. Atcoder CADDi 2018 Solution
  17. mono for android生成APK出现错误fatal error in gc 解决方案
  18. 20181016-4 Alpha阶段第2周/共2周 Scrum立会报告+燃尽图 05
  19. Chrome浏览器超强调试工具
  20. zookeeper No route to host

热门文章

  1. Codeforce B. Polycarp and Letters
  2. 关于主机用户名显示为"-bash-4.1$"
  3. 一个特殊的List去重问题的解决方案
  4. excel中的数据导出为properties和map的方法
  5. linux下的打包与压缩
  6. ABP官方文档翻译 3.8 数据过滤器
  7. xBIM 应用与学习 (二)
  8. dubbo调用负载均衡
  9. web.xml组件加载顺序
  10. 使用performance进行网页性能监控