Android命名规范(提高代码可以读性)_第1页
Android命名规范(提高代码可以读性)_第2页
Android命名规范(提高代码可以读性)_第3页
Android命名规范(提高代码可以读性)_第4页
Android命名规范(提高代码可以读性)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、刚接触android的时候,命名都是按照拼音来,所以冇的时候想看懂命 名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的 话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果就是 我一个人开发,一个人维护的话还好,可是如果一个项冃是团队分工合 作,这样让你的同事去看你的代码就更加吃力了,因为人家之间的编程 方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团 队中统一好大家命名方法,这样对于h后的工作会轻松很多。在面试的时候,审核一个程序员的编程水平的时候,命名规范也 是一大标准,所以,下面我就总结下我从网上别人的经验和自己的感悟 中收集总结的android命名规范

2、,希望对犬家有所帮助。提醒:在命名规范的统一下,在加上注释,这样日后维护会高效 快捷好多。先初略介绍下当前主要的标识符命名法和英文缩写规则:(这段别人那边借鉴的)在讲解命名规范前,先初略介绍下当前主要的标识符命名法和英文缩写规则。标识符命名法标识符命名法最要有四种:1驼峰(camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母人写。2帕斯卡(pascal)命名法:又称人驼峰命名法,所有单词的第一个字母人写3下划线命名法:单词与单词间用下划线做间隔。4匈牙利命名法:广泛应用于微软编程环境屮,在以pascal命名法的变最前附加小写序列说 明该变量的类型。量的取名方式为:vsco

3、pe_> + vprefix_> +qualifier范围前缀,类型前 缀,限定词。个人觉得标识符命名原则:尽可能的用最少的字符而又能完整的表达标识符的含义。英文缩写原则:1较短的单词可通过去掉“元音”形成缩写2较长的单词可取单词的头儿个字母形成缩写3此外还有一些约定成俗的英文单词缩写.下而为常见的英文单词缩写:名称缩写iconic (主要用在app的图标)colorcl (主要用于颜色值)dividerdi (主要用于分隔线,不仅包括listview中的divider,还包括普通布局屮的线)selectorsi (主要用于某一 view多种状态,不仅包括listview中的 se

4、lector,述包括按钮的selector)averageavgbackgro undbg (主要用于布局和子布局的背景)bufferbufcontrolctrldeletedeldocumentdocerrorerrescapeescin crementincinfomatio ninfoinitialinitimageimginternationalizationi18nlengthlenlibrarylibmessagemsgpassword-pwdpositionposserversrvstringstrtemptmpwindowwnd(win)程序小使川单洞缩写原则:不要用缩写,除非

5、该缩写是约定俗成的。命名规范:1包(packages):采用反域名命名规则,全部使用小写字母。一级包名为com,二级包 名为xx (可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名 或层级名包名此包中包含包名此包中包含com.xx应用名称缩写.activities页|ri川到的activity类(activities层级名川户界面层)com.xx.应用名称缩写.base页而中每个activity类共享的可以写成一个i额baseactivity类(基础共享的类)com.xx应用名称缩写.adapter页面用到的adapter类(适配器的类)com.xx应用名称缩此包屮包含:

6、公共工具方法类(tools模块名)写.toolscom.xx应用名称缩写.bea n(或则com.xx.应用名称缩写.unity)此包中包含:元素类com.xx应用名称缩写.db数据库操作类com.xx应用名称缩写.view(或则com.xx.应用名称缩写.ui)自定义的view类等com.xx.应用名称缩service 服务写.servicebroadcast 服务com. xx 应用名称缩丐.broadcast2类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的,比 如html,url,如果类名称屮包含单词缩写,则单词缩写的每个字母均应人写。类描述例如act

7、ivity 类aty或者activity为后缀标识欢迎页面类welcomeaty.或者welcomeactivityadapter 类adp或者adapte为后缀标识新闻详情适配器newtdetailadp或则肓 接 newdetailadapter解析类hlr为后缀标识首页解析类homeposterhir公共方法类tools 或 manager 为后缀标识线程池管理类:threadpoolmanager 日志工具类:logtools数据库类以dbhelper后缀标识新闻数据库:newdbhelperservice 类以service为后缀标识时间服务timeservicebroadcastr

8、eceive类以broadcast为后缀标识时间通知 timebroadcastcon tentprovider以provider为后缀标识直接写的共享基础类以base开头baseactivity,basefragment3接口 (interface):命名规则与类-样采用大驼峰命名法,多以able或ible结尾,如 interface runna ble ;interface accessible 4方法(methods):动词或动名词,釆用小驼峰命名法例如:oncreate(),run()方法说明initxx()初始化相关方法,使用init为前缀标识,如初始化布局initview()isx

9、x()checkxx()方法返回值为boolean型的请使用is或check为前缀标识getxxo返回某个值的方法,使用get为前缀标识processxx()对数据进行处理的方法,尽量使用process为前缀标识displayxx()弹出提示框和提示信息,使用display为前缀标识savexx()与保存数据相关的,使用sav为e前缀标识resetxx()对数据重组的,使用reset前缀标识clearxx()清除数据相关的removexxx()清除数据相关的drawxxx()绘制数据或效果相关的,使用draw前缀标识5变量(variables)釆用小驼峰命名法。类中控件名称必须与xml布局id

10、保持致。用统一的量词通过在结尾处放置一个量词,就门j创建更加统一的变量,它们更容易理解,也 更容易搜索。例如,谙使用strcustomerfirst和strcustomerlast,而不要使用 strfirstcustomer 和 strlastcustomer。量词列表:量词后缀说明first 一组变量中的第一个last 一组变量中的最后一个next 一组变量中的下一个变量prev 一组变量中的上一个cur 组变量中的当前变量6常量(constants)全部大写採用下划线命名法.例如:min width7资源文件(图片drawable文件夹下):全部小写,采用下划线命名法,加前缀区分 命名模

11、式:activity名称_逻辑名称/common_逻辑名称如果有多种形态如按钮等除外如btn_xx.xml (selector)名称功能btn xx按钮图片使用btn 整体效果(selector)btn xx n ormal按钮图片使用btn j£常情况效果btn xx press按钮图片使用btn点击吋候效果bg head背景图片使用bg 功能说明def search cell默认图片使用def 功能 说明icon more help图标图片使用匕0门 功能 说明segist line具有分隔特征的图片使用seg 功能说明sel ok选择图标使用sel 功能 说明命名后缀:后缀说明

12、unit在使用xml的tilemode来配图片时,element图片使用此后缀nor图片的状态,代表普通状态hl图片的状态,代表高亮状态press图片的状态,代表按下状态select图片的状态,代表其所占的view被选中un select图片的状态,代表其所占的view没有被选中8 资源布局文件(xml文件(layout丽局文件): 全部小写,采用下划线命名法1). contentview命名,activity默认布局,以去掉后缀的activity类进行命名。不加后缀: 功能模块.xml仮!)女口: main.xmk more.xmk settings.xml 或则:activity.功能模块

13、.xml例如:activity_main.xmk activity_more.xml2) . dialog 命名:dialog.描述.xml例如:dlg_hint.xml2) . popupwindow 命名:ppw_描述.xml例如:ppw jnfo.xml3) .列表项命名listiterti描述.xml例如:listitem_city.xml4) .包含项:include.模块.xml例如:include_head.xml、include_bottom.xml5) . adapter的子布局:功能模块tem.xml例如:maintem.xml、9动画文件(anim文件夹卜):全部小写,采

14、用f划线命名法,加前缀区分。前面为动画的类型,后面为方向动画命名例子规范写法备注fade i n淡入fade out淡出push dow n in从下方推入push down out从下方推出pusheft推像左方slidej n fro m top从头部滑动进入zoom enter变形进入slidej n滑动进入shrink to middle中间缩小10资源id (resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为 “资源控件的缩写名”+“变量名”。注意:页面控件名称应该和控件id名保持一致strings.xml colors.xml 等中的 id 命名:命名模

15、式:activity名称功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名 称strings.xml屮,使用activity名称注释,将文件内容区分开来 11 layout中的id命名命名模式为:view缩写模块名称_view的逻辑名称 view的缩写详情如下:控件缩写layoutviewivrelativeviewrvtextviewtvbuttonbtnimagebuttonimgbtnimageviewmgview 或则 ivcheckboxchkradiobutt onrdobtnanalogclockanacikdigtalclockdgtcikdatepi

16、ckerdtpkedittextedttxttimepickertmpktogglebuttontglbtnprogressbarprobarseekbarskbarautocompletet extviewautotxtzoomc on trolszmctlvideoviewvdoviwdbviewwebviran tingbarratbartabtabspinnerspnchronometercmtscollviewscivitextswitchtxtswtimageswitchimgswtlistviewivi或则ivexpa ndablelistepdltmapviewmapvi12.

17、 activity屮的view变量命名命名模式为:逻辑名称+view缩写建议:如果layout文件很复杂,建议将layout分成多个模块,侮个模块定义一个 moduleviewholder,其成员变量包含所属view13. styles.xml:将layout屮不断重现的style提炼岀通用的style通用纽.件,放到styles.xml 中;14. 使用 layer-list 和 selectorandroid编码规范建议(别人弄的觉得蛮冇道理)1 .java代码中不出现中文,最多注释中可以出现中文2局部变量命名、静态成员变量命名只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写

18、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. 使用 button+activitgroup 实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论