1 类声明
-
1.1 区块划分
建议使用注释将源文件分为明显的区块,区块划分如下
常量声明区
UI控件成员变量声明区
普通成员变量声明区
内部接口声明区
初始化相关方法区
事件响应方法区
普通逻辑方法区
重载的逻辑方法区
发起异步任务方法区
异步任务回调方法区
生命周期回调方法区(出去onCreate()方法)
内部类声明区
-
1.2 块缩进
4个空格 -
1.3 块缩进
80或100 -
1.4 方法名
方法名都以 LowerCamelCase 风格编写。
方法名通常是动词或动词短语。
方法 说明
initXX() 初始化相关方法,使用init为前缀标识,如初始化布局initView()
isXX() checkXX() 方法返回值为boolean型的请使用is或check为前缀标识
getXX() 返回某个值的方法,使用get为前缀标识
handleXX() 对数据进行处理的方法,尽量使用handle为前缀标识
displayXX()/showXX() 弹出提示框和提示信息,使用display/show为前缀标识
saveXX() 与保存数据相关的,使用save为前缀标识
resetXX() 对数据重组的,使用reset前缀标识
clearXX() 清除数据相关的
removeXXX() 清除数据相关的
drawXXX() 绘制数据或效果相关的,使用draw前缀标识 -
1.5 常量名
常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词。 -
1.6 常量名
非常量字段名以LowerCamelCase风格的基础上改造为如下风格:
基本结构为scopeVariableNameType,
scope:范围
非公有,非静态字段命名以m开头。
静态字段命名以s开头。
公有非静态字段命名以p开头。
公有静态字段(全局变量)命名以g开头。
public static final 字段(常量) 全部大写,并用下划线连起来。
例子:
public class MyClass {
public static final int SOME_CONSTANT = 42;
public int pField;
private static MyClass sSingleton;
int mPackagePrivate;
private int mPrivate;
protected int mProtected;
public static int gField;
}
使用1字符前缀来表示作用范围,1个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。
量词列表:量词后缀说明
First 一组变量中的第一个
Last 一组变量中的最后一个
Next 一组变量中的下一个变量
Prev 一组变量中的上一个
Cur 一组变量中的当前变量。
说明:
集合添加如下后缀:List、Map、Set
数组添加如下后缀:Arr
2 资源文件命名规范
1. 资源布局文件(XML文件(layout布局文件)):
全部小写,采用下划线命名法
contentview 命名
必须以全部单词小写,单词间以下划线分割,使用名词或名词词组。
所有Activity或Fragment的contentView必须与其类名对应,对应规则为:
将所有字母都转为小写,将类型和功能调换(也就是后缀变前缀)。
例如:activity_main.xmlDialog命名:dialog_描述.xml
例如:dialog_hint.xmlPopupWindow命名:ppw_描述.xml
例如:ppw_info.xml列表项命名:item_描述.xml
例如:item_city.xml包含项命名:模块(位置)描述.xml
例如:activity_main_head.xml、activity_main_bottom.xml
注意:通用的包含项命名采用:项目名称缩写描述.xml
例如:xxxx_title.xml
2. 资源文件(图片drawable文件夹下):
全部小写,采用下划线命名法,加前缀区分
命名模式:可加后缀 small 表示小图, big 表示大图,逻辑名称可由多个单词加下划线组成,采用以下规则:
用途模块名逻辑名称
用途模块名颜色
用途逻辑名称
用途颜色
说明:用途也指控件类型(具体见UI控件缩写表)
例如:
btn_main_home.png 按键
divider_maket_white.png 分割线
ic_edit.png 图标
bg_main.png 背景
btn_red.png 红色按键
btn_red_big.png 红色大按键
ic_head_small.png 小头像
bg_input.png 输入框背景
divider_white.png 白色分割线
如果有多种形态如按钮等除外如 btn_xx.xml(selector)
名称 功能
btn_xx 按钮图片使用btn_整体效果(selector)
btn_xx_normal 按钮图片使用btn_正常情况效果
btn_xx_pressed 按钮图片使用btn_点击时候效果
btn_xx_focused state_focused聚焦效果
btn_xx_disabled state_enabled (false)不可用效果
btn_xx_checked state_checked选中效果
btn_xx_selected state_selected选中效果
btn_xx_hovered state_hovered悬停效果
btn_xx_checkable state_checkable可选效果
btn_xx_activated state_activated激活的
btn_xx_windowfocused state_window_focused
bg_head 背景图片使用bg_功能说明
def_search_cell 默认图片使用def功能说明
ic_more_help 图标图片使用ic功能说明
seg_list_line 具有分隔特征的图片使用seg功能说明
sel_ok 选择图标使用sel功能说明
3. 动画文件(anim文件夹下):
全部小写,采用下划线命名法,加前缀区分。
具体动画采用以下规则:
模块名逻辑名称
逻辑名称
refresh_progress.xml
market_cart_add.xml
market_cart_remove.xml
普通的tween动画采用如下表格中的命名方式
// 前面为动画的类型,后面为方向
动画命名例子 规范写法
fade_in 淡入
fade_out 淡出
push_down_in 从下方推入
push_down_out 从下方推出
push_left 推向左方
slide_in_from_top 从头部滑动进入
zoom_enter 变形进入
slide_in 滑动进入
shrink_to_middle 中间缩小
4. values中name命名
类别 命名 示例
strings strings的name命名使用下划线命名法,采用以下规则:模块名+逻辑名称 main_menu_about 主菜单按键文字friend_title 好友模块标题栏friend_dialog_del 好友删除提示login_check_email 登录验证
dialog_title 弹出框标题
button_ok 确认键 loading 加载文字
colors colors的name命名使用下划线命名法,采用以下规则:模块名+逻辑名称 颜色 friend_info_bg friend_bg transparent gray
styles styles的name命名使用 Camel命名法,采用以下规则:模块名+逻辑名称 main_tabBottom
5. layout中的id命名
命名模式为:view缩写_view的逻辑名称
使用 AndroidStudio 的插件 ButterKnife Zelezny,生成注解非常方便。
如果不使用 ButterKnife Zelezny,则建议使用 view 缩写做后缀,如:username_tv(展示用户名的TextView)
Android代码规范
https://www.jianshu.com/p/1e8dcaa2d64e
Android:你不能忽略的代码命名规范
https://www.jianshu.com/p/b7a644ea0d25