Android开发命名规范,有它就够了

还记得刚开始coding的时候,命名都是汉语拼音,所以有的时候想看懂它的意思,就要读一遍甚至好几遍才知道,这还是在你小学拼音过关的基础上。这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果你是独立开发还好,可是如果是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很多。

命名规范作为编码一大标准,往小了说,可以反映一个程序员的代码洁癖,往大了说可能间接影响到你的职业生涯的高度(注意这里绝逼不是危言耸听)。所以,本文就从Android的角度来谈谈代码的命名规范,希望对大家有所帮助。

良好的编码规范是不可能缺少注释的,注释是软件可读性的具体体现。程序注释量一般占程序编码量的20%,软件工程要求不少于20%。其内容主要是函数的功能、目的、算法等说明,参数说明、返回值说明等。其中公用函数、公用类的声明必须由注解说明其使用方法和设计思路,当然选择恰当的命名格式能够帮助你把事情解释得更清楚。当然了,注释一般包括类注释方法注释变量注释

我觉得这里在讲解命名规范前,有必要先粗略介绍下当前主要的标识符命名法和英文缩写规则。

标识符命名法

标识符命名法主要有四种:

1驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。

2帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写

3下划线命名法:单词与单词间用下划线做间隔。

4匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为: + + 范围前缀,类型前缀,限定词。

注意这里标识符命名有个不成文的原则:尽可能的用最少的字符而又能完整的表达标识符的含义。

英文缩写原则:

1 较短的单词可通过去掉“元音”形成缩写

2 较长的单词可取单词的头几个字母形成缩写

3 此外还有一些约定成俗的英文单词缩写.

下面为常见的英文单词缩写:


常见英文单词缩写

程序中使用单词缩写原则:尽量不要用缩写,除非该缩写是约定俗成的。

命名规范:

1(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名(如myapp),四级包名为模块名或层级名


包名命名规范

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


类名命名规范

3接口(interface):命名规则与类一样采用大驼峰命名法,多以大写的I(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布局文件)):

全部小写,采用下划线命名法

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

3).PopupWindow命名:ppw_描述.xml

例如:ppw _info.xml

4). 列表项命名listitem_描述.xml

例如:listitem_city.xml

5).包含项:include_模块.xml

例如:include_head.xml、include_bottom.xml

6).adapter的子布局:功能模块_item.xml

例如:main_item.xml、

9动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。

//前面为动画的类型,后面为方向


10资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写  名”+“变量名”。注意:页面控件名称应该和控件id名保持一致strings.xml,colors.xml等中的id命名:

命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称strings.xml中,使用activity名称注释,将文件内容区分开来

11layout中控件视图的id命名

命名模式为:view缩写_模块名称_view的逻辑名称

view的缩写详情如下:


12activity中的view变量命名

命名模式为:逻辑名称+view缩写

建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view

13styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;

14使用layer-list和selector

Android编码其他规范建议

1.java代码中不出现中文,最多注释中可以出现中文

2.局部变量命名、静态成员变量命名时只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写

3.常量命名时只能包含字母和下划线_,字母全部大写,单词之间用_隔开

4.图片尽量分拆成多个可重用的图片

5.服务端可以实现的,就不要放在客户端

6.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大

7.处理应用全局异常和错误,将错误以邮件的形式发送给服务端

8.图片的.9处理

9.使用静态变量方式实现界面间共享要慎重

10.Log(系统名称模块名称接口名称,详细描述)

11.单元测试(逻辑测试、界面测试)

12.不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突

13.activity中在一个View.OnClickListener中处理所有的逻辑

14.strings.xml中使用%1$s实现字符串的通配

15.如果多个Activity中包含共同的UI或者逻辑处理,那么可以提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只要继承它即可

16.数据一定要效验,例如字符型转数字型,如果转换失败一定要有缺省值;

以上分门别类的列举了你在Android开发中经常会用到的一些“命名规范”,之所以打上引号,就是说这些所谓的规范并不是说你不这样用程序就跑不起来,不违法也不有悖于道德,但是这些都是业内前辈们留下来的精神文明产物,所以在你有更好的解决办法之前,请先继承起来吧,毕竟我们的目标就是:撸得一手漂亮简洁高效的代码!



扫码进行关注
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容