首页 > 系统 > Android > 正文

使用四大插件提高Android中的代码质量

2019-11-08 01:33:06
字体:
来源:转载
供稿:网友

由于之后开发将会使用Android studio进而替代Eclipse作为高效的Android开发工具,所以今天分享一篇关于利用四种插件 lint、findBugs、PMD、 CheckStyles 的功能和使用方式,以及如何将多个插件整合在一起的文章”教大家如何高效的使用Studio插件进行检测,从而提高Android代码的质量.”

1

lint

Lint是Android Studio提供的一个代码检测工具,通过它开发者不用运行或者写测试代码,就可以发现和纠正问题,优化代码结构。

每个被检测到的问题,都会生成一条描述信息并指明相应的严重性级别,当然这个严重性级别我们也可以自己设置的。

检测范围 潜在的bug 可优化的代码 安全性 性能 可用性 可访问性 国际化 这里写图片描述

(1)插件安装

Android Studio自带,无需安装。

(2)插件使用

通过Gradle运行lint 在工程的根目录下运行相应的gradle task。

Windows gradle lint linux 或者 MAC ./gradlew lint 当运行上面的命令执行完后,就会在项目目录/app/build/outputs/lint-results-debug.html生成相应的文件,可用浏览器打开查看。

(3)手动运行lint

有时我们可能只针对某个文件或者某个目录进行检测,这时使用gradle的方式就比较麻烦了,所以Android Studio提供给我们手动运行lint的方式。

在AS的工程下选择module、目录或者文件 右键选择Analyze > Inspect Code. 此时会出现一个选择“指定检测范围”的dialog

这里写图片描述

配置完成后,点击OK按钮,进行检测。检测结果如下图所示,左边是检测类型的树形结构,右边则展示详细的信息。 这里写图片描述

注:详细的使用,请看官网文档 ImPRove Your Code with Lint (https://developer.android.com/studio/write/lint.html#manuallyRunInspections)

2 findBugs

FindBugs是一个java静态分析工具,用来检查类或者jar文件,用来发现可能的问题。检测完成之后会生成一份详细的报告,借助这份报告可以找到潜在的bug,比如NullPointException,特定的资源没有关闭,查询数据库没有调用Cursor.close()等

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

(1)插件安装

在Android Studio中选择Preferences -> Plugins,输入查找findBugs进行插件安装。

这里写图片描述

(2)插件使用

在build.gradle文件中,按照下面步骤进行设置:

添加plugin apply plugin:’findbugs’ 定义任务,指定输出格式 这里写图片描述

这里要注意因为findBugs是检查class文件,所以在定义task的时候,我们是dependsOn: “assembleDebug”,确保运行findbugs的task能够成功检测。

通过gradle findbugs方式,在工程目录下运行命令,检测完成后,会在制定的目录下生成报告文档。文档支持xml和html两种格式,本文设置的是html格式,可以直接用浏览器打开。

当然,和lint一样,findBugs也支持手动检测的方式。

在工程里,右键 FindBugs -> (选择检测的范围)。检测完之后,底部工具栏会跳到FindBugs-IEDA下,如图所示。 这里写图片描述

3 PMD

PMD是一个很有用的工具,它跟Findbugs类似,但是它不是检测字节码,它是直接检测源代码。它使用静态分析来发现错误。

为什么要将它们同时使用呢?因为它们的检测方法不同,可以取到互补的作用。

检测范围 可能的bug——空的try/catch/finally/switch块。 无用代码(Dead code):无用的本地变量,方法参数和私有方法。 空的if/while语句。 过度复杂的表达式——不必要的if语句,本来可以用while循环但是却用了for循环。 可优化的代码:浪费性能的String/StringBuffer的使用。

(1)插件安装

同样可以通过AS的plugin进行安装,推荐安装QAPlug-PMD。

这里写图片描述

(2)插件使用

在build.gradle文件中进行如下配置

导入Plugin:apply plugin: ‘pmd’ Task配置 这里写图片描述

4 CheckStyles

这个工具用来自动检测java源码。启动之后,可以按照制定的规则对java源码进行检查,被将所有的不符合规范的地方生成报告通知给你。

检测范围 注解 javadoc注释 命名规范 文件头 导入包规范 尺寸设置 空格 正则表达式 修饰符 代码块 编码问题 类设计问题 重复、度量以及一些杂项

总而言之,是一些代码规范问题!!

(1)插件安装

通过AS的Plugin进行安装

这里写图片描述

(2)插件使用

导入Plugin apply plugin: ‘checkstyle’ 设置CheckStyle的版本 checkstyle { toolVersion ‘6.1.1’ showViolations true } 配置任务

这里写图片描述

5 插件的接入与使用

检测范围 lint、PMD、findBugs和CheckStyle检测范围之和。

(1)插件安装

下载整合插件的文件包(文末),和app工程目录同级放置。 在app的build.gradle文件导入整合插件脚本 apply from: ‘../config/quality.gradle’

(2)插件使用

修改quality.gradle 的appDir字段,设置检测的工程目录 // 应用目录名称def appDir = “app-k12” 进入工程根目录,运行gradle check,检测完成后,会在build/reports下生成相应的检测报告文件。当然也可以按照每个插件的使用方式单独使用。 6 总结

最后,随文附上插件的git地址,欢迎fork和star。

https://github.com/yushiwo/config

参考文章 How to improve quality and syntax of your Android code (http://vincentbrison.com/2014/07/19/how-to-improve-quality-and-syntax-of-your-android-code/) Improve Your Code with Lint (https://developer.android.com/studio/write/lint.html) Android 进阶之工具的使用 Findbugs (http://t.cn/RJydDVa) Android静态代码检测 (http://t.cn/RJyduBV) 使用 CheckStyle 检查代码 (http://gudong.name/2016/04/07/checkstyle.html) 详解CheckStyle的检查规则(共138条规则) (http://blog.csdn.net/yang1982_0907/article/details/18086693) 用 PMD 铲除 bug (http://www.ibm.com/developerworks/cn/java/j-pmd/)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表