安卓脚本软件(安卓脚本软件排行)
1.介绍
本文主要介绍了Android的几种静态代码检查工具。它们分别从不同的角度来帮助我们检查代码的规范性,以便更好的规范我们的开发。最后给出代码检测实践。
2. Lint
Android Studio中提供的Android Lint是一款静态分析工具,通过它可以对Android工程源码进行静态代码分析,它能够检测出应用程序中的潜在漏洞以及其它可能被编译器所忽略的其它代码问题。Android Lint可以在以下几个层面分析代码:correctness正确性,security安全性,performance性能,usability可用性,accessibility可访问性和internationalization国际化。
2.1 Lint 配置
要查看和修改检查的问题严重界别的话,可以使用 File > Settings > Editor > Inspections 菜单来打开检查配置(Inspection Configuration )页,里面有一个支持检查项的清单。
2.2 Lint gradle配置
使用 Android Studio 的话, 你还可以针对特定的构建变量运行 Lint 检查, 或者也可以是来自 build.gradle 文件的所有变量。需要将 lintOptions 属性添加到构建文件的 android 设置中。下面这段代码来自于一个 Gradle 构建文件,它显示了如何将 quiet 选项设置成 true,将 abort 选项设置成 false。
android {lintOptions {// set to true to turn off analysis progress reporting by lintquiet true// if true, stop the gradle build if errors are foundabort false// if true, only report errorsignoreWarnings true}...}
2.3 Lint 运行检查
终端命令行
gradle lint
android studio 工具操作
Analyze > Inspect Code
2.4 Lint 检查结果如下
根据如下的检测结果进行对应的分析和修改
3. Checkstyle
Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。Checkstyle提供了高可配置性,以便适用于各种代码规范。
Checkstyle具有很强的配置性.每一个checkstyle配置文件必须包含Checker作为根moduleTreeWalker module用来遍历java文件,并定义一些属性。ThreeWalker module包含了多个子module,用来进行检查规范。
3.1 检查规则
Checkstyle 规则配置遵循java 代码规范以及google代码规范,参考规则如下: Java官方代码规范 Google Java Style Checkstyle Configuration
Checkstyle能检测 Javadoc Comments(Javadoc相关)、Naming Conventions(命名惯例)、Headers(文件头检查)、Imports(导入检查)、Size Violations(检查大小)、Whitespace(空白相关)、Modifiers(修饰符相关)、Blocks(代码块)、Class Design(类设计)、Duplicates(重复)等等,更多规则见具体checksyle规则配置。
CheckStyle 规则配置例如:
<module name="Checker"> <module name="JavadocPackage"/> <module name="TreeWalker"> <module name="AvoidStarImport"/> <module name="ConstantName"/> <module name="EmptyBlock"/> </module></module>
3.2 插件安装
插件安装后,需要重新启动
3.3 使用
checkstyle gradle配置使用
def configDir="${project.rootDir}/config/quality"def reportsDir="${project.buildDir}/reports"task checkstyle(type: Checkstyle) { ignoreFailures=true configFile file("$configDir/checkstyle/checkstyle.xml") configProperties.checkstyleSuppressionsPath=file("$configDir/checkstyle/suppressions.xml").absolutePath source 'src' include '**gen*.java' exclude '**/gen*.java' exclude '**/gen*.java' exclude '**/gen/**' classpath=files() reports { xml.enabled=true html.enabled=false } doLast { ant.xslt(in: reports.xml.destination, style: new File("$configDir/pmd/pmd-report-per-class.xslt"), out: new File("$configDir", 'pmd.html')) }}android { lintOptions { abort true xmlReport true htmlReport false lintConfig file("$configDir/lint/lint.xml") htmlOutput file("$reportsDir/lint/lint-result.html") xmlOutput file("$reportsDir/lint/lint-result.xml") }}
在app模块得gardle配置中,引用该配置:
apply from: '/config/quality.gradle'
6.2检测工具配置规则和报告样式
checkstyle checkstyle.xml 代码检测规则配置文件 checkstyle_simple.xml 代码检测报告样式文件 suppressions.xml 检测排除文件配置
findbugs findbugs-filter.xml 检测排除文件配置 fancy-hist.xsl 检测报告样式文件
lint lint.xml 检测规则
pmd pmd-ruleset.xml 检测规则 pmd-report-per-class.xslt 报告样式
6.3 Jenkins 配置和运行
Gradle 提供的方法,我们可以把四个工具的执行任务添加为 “check” task 的依赖:
check.dependsOn 'checkstyle', 'findbugs', 'pmd', 'lint'
现在,只要我们只想 “check” 这个 task ,Checkstyle、Windbags、PMD 和 Android Lint 都会自动执行。在 commit/push/merge request 之前 执行一下 check 任务,对我们代码质量的提高将是一种非常棒的方式。执行这个任务你可以在命令行中执行:gradlew check。Jenkins 中配置运行如下:
6.4 检测结果及分析
构建结果趋势图,正常情况下应该是逐渐收敛,表明代码越来越规范,越来越健壮。
点击左边任何一项可以查看详细得分析结果,分析结果分类别展示,可以按照包、文件、作者、错误类别、错误类型、警告、详细、新错误来进行分类查看分析。
7.修改不规范代码,使用小技巧
7.1 快捷键设置
快捷键可以在Settings -> Keymap 中查看和修改
7.2 Java和布局文件中的中文字符提取到资源文件中
查找中文字符串,以便提取到资源文件string.xml中,便于管理和国际化 Ctrl+ H 打开文件搜索,输入正则表达式 "[一-]{1,}",选择正则表达式搜索
layout 文件中string字符串,利用快捷键提取到资源文件中 聚焦到字符串,点击该行前面的灯泡,选择Extract Android String… 或者 快捷键 Alt +enter
java文件中 提取string 字符串 快捷键 Alt +enter
7.3 移除无用的资源
移除无用的资源 Refactor-->Remove Unused Resources...
查找无用资源 Analyze-->Run Inspection By Name 快捷键 Ctlr+Alt+Shift+i
7.4 查找和替换
Android Studio打开工程,选中项目,右键弹出选择框
查找 选择“Find in Path..” 或者快捷键 Ctrl+G
替换 选择“Replace in Path..” 或者快捷键 Alt+F
如果觉得有用,请点“赞”以示鼓励!收藏、转给更多的朋友看吧~