天天看点

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

Android代码审查主要分两部分,代码逻辑正确与否以及代码规范。代码逻辑正确与否更多的需要人为review,无法借助工具,因此这块我们更多的是自己审查自己熟悉的代码,app组内交流会增加代码审查环节,示例错误的不规范的代码以及修正方案,分享代码为什么会产生问题以及如果更好的解决问题。而代码规范及常见错误的检测则主要用到如下两个工具。

Android 代码规范以及常见错误主要用到如下两个工具:

  1. findBugs-idea。
  2. Alibaba Java Coding Guidelines
  3. 这两个工具是有区别的,findBugs-idea的作用侧重于发现代码中可能存在的bug,比如,它能发现某个switch的case语句中没有加break,也能发现某个引用没有做非空判断而将导致空指针异常,当然,它也能够发现一些不好的编码习惯。而Alibaba Java Coding Guidelines则是完全根据《阿里巴巴java开发规约》开发的,能发现规约中的所有问题代码。

下面具体介绍findBugs的安装及简单的介绍:

  1. android studio在线插件安装方式:

打开File--Settings--Plugins 然后搜索findbugs,如下图,点击安装即可,我这边是已经安装了,所以显示的卸载,安装成功后,重启android studio即可。

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

重启后,android studio下方出现如下小红虫标志表示安装成功

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用
  1. 离线插件安装方式:

首先下载插件:http://plugins.jetbrains.com/plugin/3847-findbugs-idea

链接:https://pan.baidu.com/s/16rkclcxoCOTG8ldP6kzuag 密码:dse8

下载完成后,打开File--Settings—Plugins,如下图,点击Install plugin from disk…,选择刚才下载的离线包,即可。

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用
  1. 使用方法

安装完毕后,在java文件上点击鼠标右键,会弹出FindBugs的选项,子选项中有分析选中文件,分析整个包文件,分析整个模块等。

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

接下来我们点击第一个,分析选中文件,稍微等待一下,下方会弹出代码问题,如下图,可以看到有Correctness,Performance, Dodgy code 三类错误,常见的错误类型根据缺陷的性质,大致可以分为下列几类,也就是说,这几类错误,findbugs是可以探测出来的。

·Bad practice  不好的做法

·Correctness   可能有不正确

·Dodgy code     糟糕的代码

·Experimental  实验

·Internationalization  国际化

·Malicious code vulnerility 恶意的代码漏洞

·Multithreaded correctness 多线程问题

·Performance  性能问题

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

接下来我们点进大类具体看看错误,如下图,中间会展示出错误代码的位置,右边则展示具体的错误信心,借助翻译大概可以明白,是logcat打印了一个数组,而这个打印只会打印出数组的内存地址来,用处不大,建议通过tostring方法将数组转化成一个可读的字符串,则可看出具体内容。

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

下面介绍Alibaba Java Coding Guidelines

阿里巴巴于10月14号在杭州云栖大会上,正式发布《阿里巴巴Java开发规约》的扫描插件。该插件在扫描代码后,将不符合规约的代码按Blocker/Critical/Major/ Minor/Trivial四个等级显示在下方,甚至在IDEA上,该插件还提供了实时检测功能,编写代码的同时也能快速发现问题所在。对于历史代码,部分规则实现了批量一键修复的功能。

Blocker: 即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常退出、无法测试、造成系统不稳定。

  1. 严重花屏
  2. 内存泄漏
  3. 用户数据丢失或破坏
  4. 系统崩溃/死机/冻结
  5. 模块无法启动或异常退出
  6. 严重的数值计算错误
  7. 功能设计与需求严重不符
  8. 其它导致无法测试的错误, 如服务器500错误

Critical:即影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性。

功能未实现

    1. 功能错误
    2. 系统刷新错误
    3. 数据通讯错误
    4. 轻微的数值计算错误
    5. 影响功能及界面的错误字或拼写错误
    6. 安全性问题

 Major:即界面、性能缺陷、兼容性。

  1. 操作界面错误(包括数据窗口内列名定义、含义是否一致)
  2. 边界条件下错误
  3. 提示信息错误(包括未给出信息、信息提示错误等)
  4. 长时间操作无进度提示
  5. 系统未优化(性能问题)
  6. 光标跳转设置不好,鼠标(光标)定位错误
  7. 兼容性问题

Minor/Trivial:即易用性及建议性问题。

  1. 界面格式等不规范
  2. 辅助说明描述不清楚
  3. 操作时未给用户提示
  4. 可输入区域和只读区域没有明显的区分标志
  5. 个别不影响产品理解的错别字
  6. 文字排列不整齐等一些小问题
  1. android studio在线插件安装方式:

打开File--Settings--Plugins 然后搜索alibaba,如下图,点击安装即可,我这边是已经安装了,所以显示的卸载,安装成功后,重启android studio即可。

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用
  1. 重启后,出现如下界面标志,说明安装成功。
Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

两个按钮分别表示,编码规则扫描以及是否打开实时检测功能。

  1. 如何使用

毕竟是中国人自己搞的东西,使用起来也是特别方便的,点击下图两个按钮即可开始扫描

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

扫描完成后,在下方则会列出问题点,右下方则描述了具体的错误信息:

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用

当然,也可以打开实时扫描,在编码的时候,就可以实时提示错误,如下图:

Android代码审查以及工具findBugs-idea、Alibaba Java Coding Guidelines的简介和使用