标识符命名法最要有四种 :
1 驼峰 (Camel) 命名法 : 又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。
2 帕斯卡 (pascal) 命名法 : 又称大驼峰命名法,所有单词的第一个字母大写
3 下划线命名法 : 单词与单词间用下划线做间隔。
4 匈牙利命名法 : 广泛应用于微软编程环境中,在以 Pascal 命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为: <scope_> + <prefix_> + <qualifier> 范围前缀,类型前缀,限定词。
个人觉得标识符命名原则:尽可能的用最少的字符而又能完整的表达标识符的含义。
命名规范:
1 包(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名
此包中包含
com.xx.应用名称缩写.activity 页面用到的Activity类 (activity包下根据功能模块再分包)
com.xx.应用名称缩写.fragment 页面用到的Fragment类 (fragment层级名用户界面层)
com.xx.应用名称缩写.base 页面中每个Activity类共享的可以写成一个i额BaseActivity类 (基础共享的类)
com.xx.应用名称缩写.adapter 页面用到的Adapter类 (适配器的类)
com.xx.应用名称缩写.utils 此包中包含:公共工具方法类
com.xx.应用名称缩写.bean 此包中包含:实体类
com.xx.应用名称缩写.db 数据库操作类
com.xx.应用名称缩写.view 自定义的View类等
com.xx.应用名称缩写.service Service服务
com.xx.应用名称缩写.broadcast Broadcast服务
2 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。
类 | 描述 | 例如 |
activity 类 | Activity为后缀标识 | 欢迎页面类WelcomeActivity |
Adapter类 | Adapte 为后缀标识 | 新闻详情适配器 NewDetailAdapter |
解析类 | Hlr为后缀标识 | 首页解析类HomePosterHlr |
公共方法类 | Utils或Manager为后缀标识 | 线程池管理类:ThreadPoolManager |
数据库类 | 以DBHelper后缀标识 | 新闻数据库:NewDBHelper |
Service类 | 以Service为后缀标识 | 时间服务TimeService |
BroadcastReceive类 | 以Broadcast为后缀标识 | 时间通知TimeBroadcast |
ContentProvider | 以Provider为后缀标识 |
|
直接写的共享基础类 | 以Base开头 | BaseActivity,BaseFragment |
3 接口( interface ):命名规则与类一样采用大驼峰命名法.
方法 | 说明 |
initXX() | 初始化相关方法,使用init为前缀标识,如初始化布局initView() |
isXX() | checkXX()方法返回值为boolean型的请使用is或check为前缀标识 |
getXX() | 返回某个值的方法,使用get为前缀标识 |
processXX() | 对数据进行处理的方法,尽量使用process为前缀标识 |
displayXX() | 弹出提示框和提示信息,使用display为前缀标识 |
saveXX() | 与保存数据相关的,使用sav为e前缀标识 |
resetXX() | 对数据重组的,使用reset前缀标识 |
clearXX() | 清除数据相关的 |
removeXXX() | 清除数据相关的 |
drawXXX() | 绘制数据或效果相关的,使用draw前缀标识 |
5 变量( variables )采用小驼峰命名法。类中控件名称必须与 xml 布局 id 保持一致。
根据变量类型加相应的前缀,后接变量含义的英文单词。相关前缀如下:
此包中包含
6 常量( Constants )全部大写 , 采用下划线命名法 . 例如: MIN_WIDTH
命名模式:activity名称_逻辑名称/common_逻辑名称
如果有多种形态如按钮等除外如btn_xx.xml(selector)
名称 | 功能 |
btn_xx | 按钮图片使用btn_整体效果(selector) |
btn_xx_nor | 按钮图片使用btn_正常情况效果 |
btn_xx_press | 按钮图片使用btn_点击时候效果 |
bg_head | 背景图片使用bg_功能_说明 |
def_search_cell | 默认图片使用def_功能_说明 |
ic_more_help | 图标图片使用ic_功能_说明 |
seg_list_line | 具有分隔特征的图片使用seg_功能_说明 |
sel_ok | 选择图标使用sel_功能_说明 |
8 资源布局文件(XML文件(layout布局文件)):
全部小写,采用下划线命名法
1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:
activity_功能模块.xml
例如:activity_main.xml、activity_more.xml
2).Dialog命名:dialog_描述.xml
例如: dialog__hint.xml
2).PopupWindow命名:ppw_描述.xml
例如:ppw _info.xml
3). 列表项命名:item_描述.xml
例如:item_city.xml
4).包含项:include_模块.xml
例如:include_head.xml、include_bottom.xml
5). 其他: layout_描述
例如:layout_line
9 动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。
//前面为动画的类型,后面为方向
动画命名例子 | 规范写法 | 备注 |
fade_in | 淡入 |
|
fade_out | 淡出 |
|
push_down_in | 从下方推入 |
|
push_down_out | 从下方推出 |
|
push_left | 推像左方 |
|
slide_in_from_top | 从头部滑动进入 |
|
zoom_enter | 变形进入 |
|
slide_in | 滑动进入 |
|
shrink_to_middle | 中间缩小 |
|
10 资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”
11 layout中的id命名
命名模式为:view缩写_模块名称_view的逻辑名称
view的缩写详情如下:
控件 | 缩写 |
LinearLayout | ll |
RelativeLayout | rl |
TextView | tv |
Button | btn |
ImageButton | ib |
ImageView | iv |
CheckBox | cb |
RadioButton | rb |
RadioGroup | rg |
FrameLayout | fl |
DatePicker | dp |
EditText | et |
TimePicker | tp |
toggleButton | tb |
ProgressBar | pb |
SeekBar | sb |
AutoCompleteTextView | autoTxt |
RecycleView | rcv |
VideoView | v v |
WdbView | wv |
RantingBar | rtb |
Tab | tab |
Spinner | spn |
Chronometer | cmt |
ScollView | sv |
TextSwitch | ts |
GridView | gv |
listView | lv |
ExpandableList | eplv |
MapView | mv |
12.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;
此包中包含
com.xx.应用名称缩写.activities
页面用到的Activity类 (activities层级名用户界面层)
com.xx.应用名称缩写.base
页面中每个Activity类共享的可以写成一个i额BaseActivity类 (基础共享的类)
com.xx.应用名称缩写.adapter
页面用到的Adapter类 (适配器的类)
com.xx.应用名称缩写.tools
此包中包含:公共工具方法类(tools模块名)
com.xx.应用名称缩写.bean
(或则 com.xx.应用名称缩写.unity )
此包中包含:元素类
com.xx.应用名称缩写.db
数据库操作类
com.xx.应用名称缩写.view
(或则 com.xx.应用名称缩写.ui )
自定义的View类等
com.xx.应用名称缩写.service
Service服务
com.xx.应用名称缩写.broadcast
Broadcast服务