在讲解命名规范前,先初略介绍下当前主要的标识符命名法和英文缩写规则。
标识符命名法
标识符命名法最要有四种:
- 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。
- 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写
- 下划线命名法:单词与单词间用下划线做间隔。
- 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为: + + 范围前缀,类型前缀,限定词。
标识符命名原则, 是尽可能的用最少的字符而又能完整的表达标识符的含义。
英文缩写原则:
- 较短的单词可通过去掉“元音”形成缩写
- 较长的单词可取单词的头几个字母形成缩写
- 此外还有一些约定成俗的英文单词缩写.
下面为常见的英文单词缩写:
程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。
命名规范:
1. 包(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级
2. 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。
3. 接口(interface):命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runnable ; interface Accessible
4. 方法(methods):动词或动名词,采用小驼峰命名法例如:onCreate(),run()
5. 变量(variables)采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。
用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。 量词列表:量词后缀说明 First 一组变量中的第一个 Last 一组变量中的最后一个 Next 一组变量中的下一个变量 Prev 一组变量中的上一个 Cur 一组变量中的当前变量
6. 常量(Constants)全部大写,采用下划线命名法.例如:MIN_WIDTH
7. 资源文件(图片drawable文件夹下):全部小写,采用下划线命名法,加前缀区分
命名模式:activity名称_逻辑名称/common_逻辑名称 如果有多种形态如按钮等除外如btn_xx.xml(selector)
命名后缀:
8. 资源布局文件(XML文件(layout布局文件)):
全部小写,采用下划线命名法
- contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:功能模块.xml 例如:main.xml、more.xml、settings.xml 或则:activity_功能模块.xml ```
例如:activity_main.xml、activity_more.xml
- Dialog命名:dialog_描述.xml
例如:dlg_hint.xml
- PopupWindow命名:ppw_描述.xml
例如:ppw _info.xml
- 列表项命名listitem_描述.xml
例如:listitem_city.xml
- 包含项:include_模块.xml
例如:include_head.xml、include_bottom.xml
- adapter的子布局:功能模块_item.xml
例如:main_item.xml
- 动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。
前面为动画的类型,后面为方向
9. 资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”。注意:页面控件名称应该和控件id名保持一致
strings.xml,colors.xml等中的id命名:
命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称。 strings.xml中,使用activity名称注释,将文件内容区分开来
10. layout中的id命名
命名模式为:view缩写_模块名称_view的逻辑名称 view的缩写详情如下:
11. activity中的view变量命名
命名模式为:逻辑名称+view缩写 建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view
12. styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;
13. 使用layer-list和selector
Android编码规范建议(别人弄的觉得蛮有道理)
- Java代码中不出现中文,最多注释中可以出现中文
- 局部变量命名、静态成员变量命名,只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写
- 常量命名,只能包含字母和_,字母全部大写,单词之间用_隔开
- 图片尽量分拆成多个可重用的图片
- 服务端可以实现的,就不要放在客户端
- 引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大
- 处理应用全局异常和错误,将错误以邮件的形式发送给服务端
- 图片的.9处理
- 使用静态变量方式实现界面间共享要慎重
- Log(系统名称模块名称接口名称,详细描述)
- 不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突
- activity中在一个View.OnClickListener中处理所有的逻辑
- strings.xml中使用%1$s实现字符串的通配
- 如果多个Activity中包含共同的UI处理,那么可以提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只要继承它即可
- 如果所开发的为通用组件,为避免冲突,将drawable/layout/menu/values目录下的文件名增加前缀
- 数据一定要效验,例如,字符型转数字型,如果转换失败一定要有缺省值