无规矩不成方圆,国家如此,社会如此,当然我们做开发的也有一定的规范。

Android开发编程规范

  •  一些约定

  •  代码规范

  •  命名规范

  ①. Java命名

  ②. 资源命名

  ③. 布局文件中的View id命名

  •  其他规范


  一些约定

  •  类中public方法在前,private在后,所有不对外的方法,变量全部使用private修饰符。类中public static final的常量在最上方,其次private static final,然后public,private等。

  •  类中定义的接口放在变量声明之后,所有方法之前。

  •  方法相关性,方法之间有调用关系的,按照先后顺序排列在一起。

  •  善用空行,方法体之间必须空行,代码逻辑块之间使用空行分隔,变量声明根据变量类型适当空行。

  •  方法体不要过长,尽量提取小方法代替逻辑块,保证代码可读性。

  •  善用TODO,对于未完成或已完成但是方案不完美需后续跟踪的,使用TODO标签标示,并写好注释。

  •  不建议注释太多,要通过方法名,变量名提高代码可读性,而非注释。但是一些非常规方法,复杂逻辑,需要详细注释说明。

  •  协作中,不要做整个代码的格式化,仅格式化自己编写的那部分。

  •  注意命名以及注释英文单词,不要写错~

  •  杜绝“Magic Number”, 所有数值根据情况提取为常量,dimen或constant。

  代码规范

  •  使用Android Studio提供的格式化规范。

  命名规范

  ①. Java命名

分类

命名方式

举例

说明

包名

全小写

com.cicaero.kite

公司域名倒序,“.”分隔,单个包名建议不超过12个字母

类名

首字母大写的驼峰

UserInfo

名词形式

接口名

首字母大写的驼峰

ServerInterface

名字形式

方法名

驼峰

getUserInfo

动词结构,含义为一个动作

常量

全大写,单词下划线分隔

MSG_UPDATE_PROGRESS

建议数值类常量从1开始,且根据功能预留数段

成员变量

m/s/is/has开头的驼峰

mImageUrl

正常成员m开头,静态s开头,布尔型is/has开头

局部变量

首字母小写的驼峰

currentPosition

名词形式,除非是循环,否则不建议使用i,j,k等简单变量名

  2. 资源命名

分类

命名方式

举例

说明

布局

全小写,单词下划线分隔

activity_main.xml

Activity以activity开头,Fragment以fragment开头,list、grid项以item开头,Dialog布局以dialog开头,自定义View以layout开头,其他被include的或公用组件,诸如title_bar,bottom_bar,根据实际含义命名

Drawable

全小写,单词下划线分隔

btn_bg.png

根据图片使用方式命名, 图标以ic_开头,背景以_bg结尾,状态drawable xml以_selector结尾。

Color

全小写,单词下划线分隔

green

尽量根据颜色值命名

String

全小写,单词下划线分隔

app_name

模块多且大的话,根据模块建立不同的String xml 文件

style

首字母大写的驼峰

NoTitleTheme

类似类名,style本身也是有类似类的集成关系

dimension

全小写,单词下划线分隔

left_padding

 

id

全小写,单词下划线分隔

user_name_tv

详细id命名规范参考以下章节

  3. 布局文件中的View id命名

View

结尾命名规则

TextView

tv

Button

btn

EditText

et

ImageView

iv

ImageButton

img_btn

RadioButton

rb

RadioGroup

rg

SeekBar

seek

ProgressBar

progress

Spinner

spinner

VideoView

vv

CheckBox

cb

ListView

lv

GridView

grid

Layout

lt

  其他规范

  Gradle引入第三方库时comment加上库地址。