序言
刚上大学那会开始写程序的时候,变量名都是a,b,x,y这些,写着简单,但是看起来很累,尤其是别人看你的代码的时候,简直了。后来lz进了学校的ACM校队,在那学习期间,命名被强制改好了许多,开始使用英文单词作为变量名了,比如student,teacher,两个单词拼凑在一起时就用下划线,等等,这样看起来通熟易懂多了,也提高了代码的可读性。后来学习Java的时候,有了包名,类名,还有一系列的命名。
问题
为什么我们在写代码的时候需要正确的命名规范呢?
答:因为在真正的项目开发中我们不是一个人在开发,而是一个团队,如果没有一个命名规范的话,那别人读你的代码就像是天书一样。
下面我们就来介绍一下Android的一些命名规范:
1、包名:采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名
例如:com.公司名称简写.项目名称简写.模块名

2、类名:采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。
例如:LoginActivity

3、接口:命名规则与类一样采用大驼峰命名法,多以able或ible结尾
例如:interface Runna ble;interface Accessible。
4、方法:动词或动名词,采用小驼峰命名法
例如:onCreate(),run()

5、变量:采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。
用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表:量词后缀说明
First 一组变量中的第一个
Last 一组变量中的最后一个
Next 一组变量中的下一个变量
Prev 一组变量中的上一个
Cur 一组变量中的当前变量
6、常量:全部大写,采用下划线命名法。
例如:MIN_WIDTH,MAX_HEIGHT
7、资源文件(图片drawable文件夹下):全部小写,采用下划线命名法,加前缀区分
命名模式:activity名称逻辑名称/common逻辑名称,如果有多种形态如按钮等除外如btn_xx.xml(selector)


8、资源布局文件(XML文件(layout布局文件)):全部小写,采用下划线命名法
1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:
功能模块.xml
例如:main.xml、more.xml、settings.xml
或则:activity_功能模块.xml
例如:activity_main.xml、activity_more.xml
2).Dialog命名:dialog_描述.xml
例如:dlg_hint.xml
2).PopupWindow命名:ppw_描述.xml
例如:ppw _info.xml
3). 列表项命名listitem_描述.xml
例如:listitem_city.xml
4).包含项:include_模块.xml
例如:include_head.xml、include_bottom.xml
5).adapter的子布局:功能模块_item.xml
例如:main_item.xml、
9、动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。
注:前面为动画的类型,后面为方向

10、资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”。
注:页面控件名称应该和控件id名保持一致
strings.xml,colors.xml等中的id命名:
命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称。
strings.xml中,使用activity名称注释,将文件内容区分开来。
11、 layout中的id命名:view缩写_模块名称_view的逻辑名称
view的缩写详情如下:

12、activity中的view变量命名
命名模式为:逻辑名称+view缩写
建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view
仅供参考,具体还是得根据需求来

网友评论