概述
本文档主要用于帮助Android开发人员规范代码及资源文件命名等,使大家尽量保证一个整洁的编程风格。
Java 命名规范
本命名规范主要基于骆驼命名
规则(对于这个都保证不了的代码简直不能忍)。
不要使用拼音命,避免使用缩写
# 所有的名称命名应该简洁而富有意义
,尽量使用完整单词。增加必要的注释。
# 除非该缩写被更广泛的使用
,例如URL、HTML。
包的命名
# 包名由小写的字母组成
,例如以 cc.solart.<业务模块名>.<子模块名>命名
# 一个模块是一个功能相对独立的模块,应谨慎创建新的模块名
类的命名
# 类名的首字母必须大写
,如果由多个单词组成,多个单词直接连接,每个单词的首字母必须大写,其他字母小写
。例如:public class LoginActivity
# 类的域定义考量, 非公开类不要用public(注意类的有效作用域)
抽象类、接口的命名
# 对于抽象类,职责比较单一的以Abs开头
,例如:AbsJsonRequest,只包含单一的网络请求;对于一些基类抽象封装一般采用Base开头
,例如BaseActivity。
# 对于有明显接口特征的接口(如后缀含有Listener/Observer),参考类命名规范即可,例如:public interface ResponseListener。
# 对于没有明显接口特征的接口命名,首字母统一为大写 I
,其它单词首字母大写, 例如:public interface ILocation。
方法及参数的命名
# 方法名的首字母必须小写
,遵循驼峰命名。public void checkAuthToken()
# 方法参数名以该参数功能命名,格式同方法名命名规则相同。 public void checkAuthToken(String token)
常量的命名
# 用 final static 修饰,名称都大写
,多个单词以下划线 “_” 连接,如:public final static String HTTP_HOST = “http://127.0.0.1:8080/“; 。
变量的命名
# 非 static 的成员变量,命名必须写'm'前缀
,如:public Handler mHandler;
# static修饰的成员变量,命名必须写's'前缀
,如:public static String sAppKey;
# 枚举变量使用用'e'前缀
,如 private Weekday eWeekday;
# 局部变量命名首字母小写即可
,采用驼峰命名,如Context context;
Android资源文件命名规则
规范资源文件命名,统一风格。
文件命名
# res/layout目录下文件:统一以布局类型开头,用小写和下划线”_”组合命名,如:首页 xml 布局文件: 例如:
1 | activity_home.xml # HomeActivity页面布局 |
# res/drawable目录下文件:统一用小写加下划线”_”组合命名,同上,每个资源文件加前缀以便区分用途。如:
1 |
|
资源 ID 命名
# @id/@+id 名称的必须全部小写,单词之间用下划线隔开
,名称不需要复杂的层级定位,只要准确描述所代表控件的功能作用即可,在名称使用当前控件类型的缩写作为前缀
。例如:@+id/tv_name。
# res/values/demins: 统一用小写加下划线”_“组合命名,定义距离通用值,定义字体大小通用值,其他颜色统一用sp/dp_<数值>表示。
1 |
|
# res/values/colors: 统一用小写加下划线”_“组合命名,定义通用的背景色bg_color,定义字体通用色值,其他颜色统一用app_<色值>表示。
1 | <!--载体颜色--> |
编码风格
一般性说明
# 方法体行数不得超过 40 行
(一般来说40行绝对够用,且易于维护);
# 除去缩进长度,单行长度不得超过 100 个字符
;
# 圈复杂度不能超过 2 层
;
# 单个文件长度一般不超过 1500 行(第三方代码除外);
# 公开 API 中所有参数都必须进行有效性验证;
# 每次代码提交之前必须删除大量无效代码,去除无用的类import;
# 使用第三方API增加异常捕获
,降低使用风险。