Android代码规范检查配置

本文介绍了如何在Android项目中配置代码规范检查,针对Java代码使用CheckStyle插件,遵循阿里Android代码规范;对于Kotlin代码,则采用Detekt插件,并在其自带模板基础上调整。详细步骤包括安装插件、配置checkStyle.xml和detekt.yml文件,以及运行检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android代码规范检查配置

Android代码规范检查分为Java、kotlin语言代码检查两部分配置。

1)对于Java代码,我们采用checkstyle插件来做代码规范检查。代码规范模版,我们采用阿里的Android代码规范。

2)对于Kotlin代码,我们采用detekt插件来做代码规范检查。代码规范模版,我们在detekt自带模版的基础上进行调整。

一.CheckStyle配置

1.安装插件

   command +逗号 快捷键,弹出以下界面,输入 checkStyle-IDEA,点击install, 安装好重启Android studio。

2.配置checkStyle文件

1)command +逗号 快捷键,在弹出的界面,选择Tool→CheckStyle, 点击下图的加号。

2)导入checkstyle.xml(如果没有checkstyle.xml文件,请先复制并保存附件1的内容),如下图所示。

 导入成功之后,点击Finish按钮。

3.选中配置的checkStyle

4.运行checkStyle:可以单个类检查,也可以整个module或工程检查。

二.Detekt配置

1.安装插件

   command +逗号 快捷键,弹出以下界面,输入 detekt,点击install, 安装好重启Android studio。

2.配置detekt文件

1)command +逗号 快捷键,在弹出的界面,选择Tool→detekt, 打开前3项配置,并在Configuration File这里选择detekt.yml文件。如果没有detekt.yml文件,请先复制并保存附件2的内容。

2)点击OK。到此,detekt插件已经安装好,detekt会自动检查kotlin源文件中不符合规范的代码。

3.打开任意一个kotlin源代码文件,可以看到自动标记出不符合规范的代码(黄色部分代码)。

 

三.附件

1.CheckStyle.xml文件内容。

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<module name="Checker">

    <!-- 检查文件是否以一个空行结束 -->
    <module name="NewlineAtEndOfFile"/>

    <!-- 文件长度不超过1500行 -->
    <module name="FileLength">
        <property name="max" value="1500"/>
    </module>

    <!-- 每个java文件一个语法树 -->
    <module name="TreeWalker">
        <!-- import检查-->
        <!-- 避免使用* -->
        <module name="AvoidStarImport">
            <property name="excludes" value="java.io,java.net,java.lang.Math"/>
            <!-- 实例;import java.util.*;.-->
            <property name="allowClassImports" value="false"/>
            <!-- 实例 ;import static org.junit.Assert.*;-->
            <property name="allowStaticMemberImports" value="true"/>
        </module>
        <!-- 检查是否从非法的包中导入了类 -->
        <module name="IllegalImport"/>
        <!-- 检查是否导入了多余的包 -->
        <module name="RedundantImport"/>
        <!-- 没用的import检查,比如:1.没有被用到2.重复的3.import java.lang的4.import 与该类在同一个package的 -->
        <module name="UnusedImports" />


        <!-- 注释检查 -->
        <!-- 检查方法和构造函数的javadoc -->
        <module name="JavadocType">
            <property name="allowUnknownTags" value="true"/>
            <message key="javadoc.missing" value="类注释:缺少Javadoc注释。"/>
        </module>
        <module name="JavadocMethod">
            <property name="tokens" value="METHOD_DEF" />
            <!--允许get set 方法没有注释-->
<!--            <property name="allowMissingPropertyJavadoc" value="true"/>-->
            <message key="javadoc.missing" value="方法注释:缺少Javadoc注释。"/>
        </module>

        <!-- 命名检查 -->
        <!-- 局部的final变量,包括catch中的参数的检查 -->
        <module name="LocalFinalVariableName" />
        <!-- 局部的非final型的变量,包括catch中的参数的检查 -->
        <module name="LocalVariableName" />
        <!-- 包名的检查(只允许小写字母),默认^[a-z]+(\.[a-zA-Z_][a-zA-Z_0-9_]*)*$ -->
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
            <message key="name.invalidPattern" value="包名 ''{0}'' 要符合 ''{1}''格式."/>
        </module>
        <!-- 仅仅是static型的变量(不包括static final型)的检查 -->
        <module name="StaticVariableName" />
        <!-- Class或Interface名检查,默认^[A-Z][a-zA-Z0-9]*$-->
        <module name="TypeName">
            <property name="severity" value="warning"/>
            <message key="name.invalidPattern" value="名称 ''{0}'' 要符合 ''{1}''格式."/>
        </module>
        <!-- 非static型变量的检查 -->
        <module name="MemberName" />
        <!-- 方法名的检查 -->
        <module name="MethodName" />
        <!-- 方法的参数名 -->
        <module name="ParameterName " />
        <!-- 常量名的检查(只允许大写),默认^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ -->
        <module name="ConstantName" />

        <!-- 定义检查 -->
        <!-- 检查数组类型定义的样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值