众所周知,好的命名可以大大提高代码的可读性,同时也是面试时考察一个程序员水平高低的一个指标。本文就总结下自己及他人的Android工程命名规范。
命名法:
1、小驼峰命名法:除首单词外,其他单词首字母大写
2、大驼峰命名法:所有单词首字母大写
3、下划线命名法:单词间用下划线隔开(单词要么全部大写,要么全部小写)
关于缩写:
1、约定熟成的:如button-btn,dialog-dlg,password-pwd
2、较长的单词可以取单词前几个字母作为缩写
3、较短的单词可以取前三个辅音字母作为缩写
一些常见的单词及缩写
单词 | 缩写 |
---|---|
icon | ic(多用于app图标) |
average | avr |
background | bg |
buffer | buf |
control | ctrl |
delete | del |
document | doc |
error | err |
infomation | info |
initial | init |
image | img |
length | len |
library | lib |
password | pwd |
position | pos |
server | srv |
string | str |
命名规范
1、包:
采用反域名命名规则,全部小写。命名规则:一级包名为com或edu(公司或教育机构缩写),二级包名为xx(公司、单位名称),三级包名为应用名,四级包名为模块名或层级名。例如:名为coerscnu的教学机构开发某应用中文名为爱托克,英文名为italk。
包名 | 此包中包含 |
---|---|
edu.coerscnu.italk.activities | 页面用到的Activity类 |
edu.coerscnu.italk.service | Service服务 |
edu.coerscnu.italk.broadcast | Broadcast服务 |
edu.coerscnu.italk.adapter | 用到的适配器类 |
edu.coerscnu.italk.bean | 元素类 |
edu.coerscnu.italk.db | 数据库类 |
edu.coerscnu.italk.view | 自定义的View类 |
edu.coerscnu.italk.utils | 公共工具方法类 |
2、类:
采用大驼峰命名法,尽量避免缩写,除非总所周知的缩写,如HTTP,URL等,若类名中包含单词缩写,则缩写的每个字母均要大写。
类 | 描述 | 例如 |
---|---|---|
Activity类 | 以Activity为后缀 | SplashActivity(欢迎界面)、MainActivity(主界面) |
Adapter类 | 以Adapter为后缀 | MsgAdapter(聊天消息适配器) |
Service类 | 以Service为后缀 | TimeService(时间服务) |
BroadcastReceive类 | 以Broadcast为后缀 | HeadhookBroadcast(接收耳机按键广播) |
ContentProvider类 | 以Provider为后缀 |
3、接口:
采用大驼峰命名法,多以able或ible结尾,如Interface Runnable、Interface Accessible。
4、方法:
采用小驼峰命名法,用动词或动名词居多。
方法 | 说明 |
---|---|
initXX() | 初始化相关方法,如initView(),初始化布局 |
isXX()或check() | 返回boolean,如isLogin()判断是否登录 |
getXX() | 返回某个值的方法,如getUsername(),获取用户名 |
displayXX() | 显示相关 |
clearXX() | 清除数据相关 |
drawXX() | 绘制相关 |
5、变量:
采用小驼峰命名法,类中控件与xml布局文件中id一致(可参考11)。
6、常量:
采用下划线命名法,单词字母全部大写,如APP_KEY。
7、资源文件(drawable文件下):
采用下划线命名法,单词字母全部小写,命名规则:控件名_模块名_逻辑名_形态名。
名称 | 功能 |
---|---|
btn_login_login.png | LoginActivity中的登录按钮 |
btn_login_register.png | LoginActivity中的注册按钮 |
btn_login_login_normal.png | LoginActivity中的登录普通状态按钮(一般用在selector属性中) |
btn_login_login_pressed.png | LoginActivity中的登录按下状态按钮(一般用在selector属性中) |
8、资源布局文件:
采用下划线命名法,单词字母全部小写
命名例子 | 说明 |
---|---|
acitvity_main.xml | 主界面 |
activity_login.xml | 登录界面 |
dialog_xx.xml | 对话框界面 |
9、动画文件(anim文件下):
采用下划线命名法,单词字母全部小写
命名例子 | 说明 |
---|---|
fade_in_left.xml | 左边划入 |
fade_out_right.xml | 右边划出 |
10、layout中的id命名:
采用下划线命名法,单词字母全部小写,命名规则:view缩写_模块名_逻辑名(可参考第7点)。
控件 | 缩写 |
---|---|
LinearLayout | ll |
RelativeLayout | rl |
TextView | tv |
Button | btn |
EditText | et |
ImageView | iv |
ListView | lv |
spinner | spn |
11、Activity类中的view变量命名:
采用小驼峰命名法,命名规则:(m+)逻辑名称+view缩写。
变量名 | 描述 |
---|---|
mLoginBtn或loginBtn | 登录按钮 |
mRegisterBtn或registerBtn | 注册按钮 |
mMsgEt或msgEt | 消息输入框 |