前言
为增加开发过程代码的强壮性、可读性、易维护性,减少有经验和无经验的开发人员编程所需的脑力工作,在项目范围内统一代码风格是为软件的良好维护性打下好的基础。通过人为以及自动的方式对编程时有一致格式可遵循,每个编程人员编写的代码能够被其他人理解,使新的开发人员快速适应项目氛围是规范代码的必要性。
1.项目命名规则
首先,指出Android Studio中的两个概念。 Project 和 Module,在Android Studio中, Project 的真实含义是工作空间, Module 为一个具体的项目,所以项目命名其实是给Module命名,而Module又分为两种;一种是Library Module,另一种是Application Module。
为区分两种Module:
Application Module 命名以 app_Xxx 的方式;
Library Module 命名以 library_Xxx 的方式;
2.包命名规则
包命名能快速指引开发人员寻找需要找寻的类位置,所以命名规范也就能提高开发工作的效率;
一般包命名以com开头,第二个以代表本公司的字母或者单词,第三个是项目名或者是终端类型,这是一个固定的开头命名,然后往下细分就是功能模块的包命名,都以小写字母;
可参考如下图;com.space.app.power
3.类命名规则
类命名规则需要直观易懂,从命名就能大致理解其作用,提高工程结构的可读性;
类命名首字母应大写,如果由多个单词组成,那么每个单词的首字母需要大写,其他字母小写,结尾应当有体现该类的大致功能作用单词描述;
类 | 描述 | 示例 |
---|---|---|
Activity 类 | Aty或者Activity为后缀标识 | WelcomeAty或WelcomeActivity |
Adapter类 | Adp或者Adapte 为后缀标识 | NewtDetailAdp或NewdetailAdapter |
Service类 | 以Service为后缀标识 | TimeService |
Utils类 | 以Utils为后缀标识 | TimeUtils |
BroadcastReceive类 | 以Broadcast为后缀标识 | TimeBroadcast |
ContentProvider | 以Provider为后缀标识 | TimeProvider |
公共方法类 | Tools或Manager为后缀标识 | LogTools |
共享基础类 | 以Base开头 | BaseActivity,BaseFragment |
4.变量命名规则
- 变量命名采用驼峰命名法规则,及第一个字母小写,后面单词首字母大写;
- 非公共的、非静态的域、非布局控件变量用m前缀;
- 静态域变量用s前缀;
- 集合类型的变量使用复数形式,若多种集合类型的变量存储的是相同类型的对象,除了根据功能区分,也可以简单通过集合类型来区分;
- 常用View控件应当带有描述空间的单词或者缩写;
5.布局文件命名规则
name是模块的名称或功能的描述,单词必须全部小写,单词之间用下划线隔开
类型 | 模板 | 示例 |
---|---|---|
Acivity | activity_name.xml | activity_main.xml |
Tab | tab_name.xml | tab_home.xml |
Dialog | dialog_name.xml | dialog_login.xml |
Item | item_name.xml | item_contact.xml |
Fragment | fragment_name.xml | fragment_map.xml |
6.ID命名规则
组成名称的单词必须全部小写,单词之间用下划线隔开,名称不需要复杂的层级定位,只需要准确描述所代表控件的功能作用即可,名称前使用控件类型的缩写前缀来避免重复起名的麻烦。
类型 | 模板 | 示例 |
---|---|---|
TestView | @+id/tv_name | @+id/tv_title |
EditText | @+id/et_name | @+id/et_mail |
RelativeLayout | @+id/rl_name | @+id/rl_login |
LinearLayout | @+id/ll_name | @+id/ll_login |
7.控件类型缩写对应表
控件类型 | 源文件中缩写 | 资源文件中缩写 |
---|---|---|
View | V | v |
Button | Btn | btn |
ImageButton | Ib | ib |
RadioButton | Rb | rb |
CheckBox | Cb | cb |
TextView | Tv | tv |
EditText | Et | et |
ImageView | Iv | iv |
ListView | Lv | lv |
ProgressBar | Pbar | pbar |
ScrollView | Sv | sv |
RelativeLayout | Rlyt | rlyt |
LinearLayout | Llyt | llyt |
TableLayout | Tlyt | tlyt |
FrameLayout | Flyt | flyt |
8.图片的命名
Name是模块的名称或者功能描述
图片名称一般由模块名称/功能描述 + 后缀组成,后缀是可选的
前缀 | 描述 | 示例 |
---|---|---|
ic_ | 图标 | ic_launcher.png |
bg_ | 背景 | bg_title.png |
sl_ | 状态图片 | sl_button.png |
后缀 | 描述 | 示例 |
---|---|---|
无 | 普通状态 | login.png |
_p | 按下状态 | longin_p.png |
_c | 选中状态 | login_c.png |
_d | 不可用状态 | login_d.png |
9.常见的英文单词缩写
名称 | 缩写 | 说明 |
---|---|---|
Icon | ic 主要用在APP图标 | |
Color | cl | 主要用于颜色 |
Divider | di | 主要用于分割线 |
Selector | sl | 主要用于某view多状态 |
Average | avg | |
Backcground | bg | 主要用于布局的背景 |
Buffer | buf | |
Conntrol | ctrl | |
delete | del | |
Error | err | |
Image | img | |
Length | len | |
Message | msg | |
Password | pwd | |
String | str | |
Temp | tmp |
10.其他资源命名
遵循见名知意的原则,组成名称的单词必须全部小写,单词之间用下划线隔开。