前言
统一、规范的命名有助于提升项目协作效率,也让代码的可读性、可维护性变得更加友好。
这里根据Google Android编程规范来对公司客户端研发输出一份相对全面、清晰的Android代码命名规范,如有异议,欢迎批评指正。
关于注释
在开发过程中,类、生僻对象命名、方法原则上都要加上相关注释,说明含义、用途。
各对象暂定的命名规范
-
项目名称(Project name)
- 命名规则:
大驼峰式
命名,单词间连续无间隔; - 示例:如新建一个名为BaiYaoWanJia的项目。
- 命名规则:
-
模块命名(Module-Library name)
- 命名规则:Library name采用
大驼峰式
命名,单词间连续无间隔,Module name会自动生成,不需修改; - 示例:
- 命名规则:Library name采用
-
包
- 命名规则:小写、单词间连续无间隔,3级包名一般为
applicationId
或Module的根目录,4级包名对应不同的细分模块。 - 示例:
- 3级包名
applicationId
:一般为com.公司名.项目名,如com.dohenes.bywanjia 或 com.公司名.Module name,如com.dohenes.shop; - 4级包名:com.公司名.项目名/Module name.xxx,具体可参考下图
- 3级包名
- 命名规则:小写、单词间连续无间隔,3级包名一般为
-
类
- 命名规则:
大驼峰式
命名,可使用单词或者单词简写,在具体命名类时,会根据该类的类型不同而附加额外的命名规则; - 示例:
类目 类型 命名规则描述 命名示例 普通java类 java类 大驼峰式命名法 GetTime Android相关 基类 Base + 类别 / 功能 BaseActivity / BaseFragment / BaseAdapter Activity 模块名 + Activity LoginActivity Fragment 模块名 + Fragment LoginFragment BroadcastReceiver 功能名 + Receiver BootBroadcastReceiver Service 模块名 / 功能名 + Service LoginService / BLEService 自定义对话框Dialog 功能名 + Dialog TipsDialog 自定义View Custom + 功能名 + 组件名称(继承的组件名) CustomToast / CustomLayout 自定义Widget 功能名 + Widget LoginWidget 数据适配器类 功能名 + Adapter WeatherAdapter 工具类 功能名 + Util/Manager StringUtil / DatabaseManager 帮助类 功能名 + Helper DBHelper 解析类 功能名 + Parse GsonParse 异常类 以Exception结尾 LoginException 接口 多以able或ible结尾,也可在类名前加I标明 Runnable / Accessible / ILogin 回调 功能名 + Callback LoginCallback - 命名规则:
-
变量
- 命名规则:小驼峰式命名,在具体命名变量时,会根据该变量的类型不同而附加额外的命名规则;
- 示例:
类型 命名规则描述 命名示例 变量 m + 单词名 private int mCount 静态变量 前缀添加s private static int sCount 临时变量(代码块内的) 小驼峰式命名 int count 常量 CONSTANT_作用名 CONSTANT_KEY_NAME Android UI控件 m + 控件缩写 + 功能描述 mTvTitle / mBtnLogin -
方法
- 命名规则:小驼峰式命名,在具体命名方法名时,会根据该方法名的作用不同而附加额外的命名规则;
- 示例:
功能 命名规则描述 命名示例 初始化 init + 单词 初始化布局:initView() 判断 / 校验,返回至为boolean is + 单词 / check + 单词 可见性:isVisible() / checkKey() 显示/弹出提示框 show + 单词 显示提示信息:showTips() 重置数据 reset + 单词 重置用户数据:resetUserData() 保存数据 save + 单词 保存用户名:saveUserName() 获取数据 get + 单词 获取用户名:getUserName() 清除数据 clear + 单词 清除用户名:clearUserName() 移除数据 remove + 单词 移除用户数据:removeUserData() 绘制相关 draw + 单词 绘制线条:drawLine() -
参数
- 命名规则:
小驼峰式
命名; - 示例:如userName,phoneNumber等。
- 命名规则:
-
资源
- 布局资源(布局文件单词都要小写,中间用下划线
_
隔开)
类型 命名规则描述 命名示例 activity布局 activity_单词 activity_main fragment布局 fragment_单词 fragment_main dialog布局 dialog_单词 dialog_tips popupwindow布局 pw_单词 pw_net_error 列表子项布局 item_单词 item_message - 控件ID
类型 命名规则描述 命名示例 TextView 模块名_控件缩写_功能单词名 login_tv_title EditTextView login_et_userName ImageView login_iv_userHead Button login_btn CheckBox login_cb_status RadioButton login_rb_gender ListView main_lv_message GridView main_gv_cards LinearLayout login_lt_header RelativeLayout login_rl_header FragmentLayout / TableLayout / ConstraintLayout 简写对应 fl / tl / cl - 图片资源
类目 类型 命名规则描述 命名示例 Drawable / mipmap资源 普通图标 ic_具体模块_功能 R.drawable.ic_user_login / R.drawable.ic_launcher 背景资源 bg_具体模块_功能 R.drawable.bg_login 样式选择器(selector) selector_具体模块_适用范围 R.drawable.selector_login_btn 样式形状(shape) shape_具体模块_适用范围 R.drawable.shape_login_btn - 动画资源
类型 命名规则描述 命名示例 补间动画 动画类型_方向 淡入:fade_int;淡出:fade_out 其余动画 模块名_动画名 login_jump - Values资源
类型 命名规则描述 命名示例 color 模块名_color login_color style 模块名_style login_style theme 模块名_theme login_theme string 模块名_作用名 user_name
- 布局资源(布局文件单词都要小写,中间用下划线
关于App打包命名
release版本在项目混淆、加固(目前采用360加固)的基础上,按照以下规范命名,其它情况不考虑:
【Android】apk打包命名规则交流篇