【转】android 开发 命名规范
原文网址:http://www.cnblogs.com/ycxyyzw/p/4103284.html
标识符命名法
标识符命名法最要有四种:
1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。
2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写
3 下划线命名法:单词与单词间用下划线做间隔。
4 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为:<scope_> + <prefix_> + <qualifier>范围前缀,类型前缀,限定词。
个人觉得标识符命名原则:尽可能的用最少的字符而又能完整的表达标识符的含义。
英文缩写原则:
1 较短的单词可通过去掉“元音”形成缩写
2 较长的单词可取单词的头几个字母形成缩写
3 此外还有一些约定成俗的英文单词缩写.
下面为常见的英文单词缩写:
| 
 名称  | 
 缩写  | 
| 
 icon  | 
 ic (主要用在app的图标)  | 
| 
 color  | 
 cl(主要用于颜色值)  | 
| 
 divider  | 
 di(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)  | 
| 
 selector  | 
 sl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)  | 
| 
 average  | 
 avg  | 
| 
 background  | 
 Bg(主要用于布局和子布局的背景)  | 
| 
 buffer  | 
 buf  | 
| 
 control  | 
 ctrl  | 
| 
 delete  | 
 del  | 
| 
 document  | 
 doc  | 
| 
 error  | 
 err  | 
| 
 escape  | 
 esc  | 
| 
 increment  | 
 inc  | 
| 
 infomation  | 
 info  | 
| 
 initial  | 
 init  | 
| 
 image  | 
 img  | 
| 
 Internationalization  | 
 I18N  | 
| 
 length  | 
 len  | 
| 
 library  | 
 lib  | 
| 
 message  | 
 msg  | 
| 
 password-  | 
 pwd  | 
| 
 position  | 
 pos  | 
| 
 server  | 
 srv  | 
| 
 string  | 
 str  | 
| 
 temp  | 
 tmp  | 
| 
 window  | 
 wnd(win)  | 
程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。
命名规范:
1 包(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名
| 
 包名  | 
 此包中包含  | 
| 
 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服务  | 
2 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。
| 
 类  | 
 描述  | 
 例如  | 
| 
 activity 类  | 
 Aty或者Activity为后缀标识  | 
 欢迎页面类WelcomeAty.或者WelcomeActivity  | 
| 
 Adapter类  | 
 Adp或者Adapte 为后缀标识  | 
 新闻详情适配器NewtDetailAdp或则直接 NewDetailAdapter  | 
| 
 解析类  | 
 Hlr为后缀标识  | 
 首页解析类HomePosterHlr  | 
| 
 公共方法类  | 
 Tools或Manager为后缀标识  | 
 线程池管理类:ThreadPoolManager  | 
| 
 数据库类  | 
 以DBHelper后缀标识  | 
 新闻数据库:NewDBHelper  | 
| 
 Service类  | 
 以Service为后缀标识  | 
 时间服务TimeService  | 
| 
 BroadcastReceive类  | 
 以Broadcast为后缀标识  | 
 时间通知TimeBroadcast  | 
| 
 ContentProvider  | 
 以Provider为后缀标识  | 
|
| 
 直接写的共享基础类  | 
 以Base开头  | 
 BaseActivity,BaseFragment  | 
3  接口(interface):命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runna ble ;
                     interface Accessible 。
4 方法(methods):动词或动名词,采用小驼峰命名法例如:onCreate(),run()
| 
 方法  | 
 说明  | 
| 
 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保持一致。
用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表:量词后缀说明
First  一组变量中的第一个
Last   一组变量中的最后一个
Next   一组变量中的下一个变量
Prev   一组变量中的上一个
Cur    一组变量中的当前变量
 
6  常量(Constants)全部大写,采用下划线命名法.例如:MIN_WIDTH
7 资源文件(图片drawable文件夹下):全部小写,采用下划线命名法,加前缀区分
命名模式:activity名称_逻辑名称/common_逻辑名称
如果有多种形态如按钮等除外如btn_xx.xml(selector)
| 
 名称  | 
 功能  | 
| 
 btn_xx  | 
 按钮图片使用btn_整体效果(selector)  | 
| 
 btn_xx_normal  | 
 按钮图片使用btn_正常情况效果  | 
| 
 btn_xx_press  | 
 按钮图片使用btn_点击时候效果  | 
| 
 bg_head  | 
 背景图片使用bg_功能_说明  | 
| 
 def_search_cell  | 
 默认图片使用def_功能_说明  | 
| 
 icon_more_help  | 
 图标图片使用icon_功能_说明  | 
| 
 seg_list_line  | 
 具有分隔特征的图片使用seg_功能_说明  | 
| 
 sel_ok  | 
 选择图标使用sel_功能_说明  | 
命名后缀:
| 
 后缀  | 
 说明  | 
| 
 unit  | 
 在使用xml的tilemode来配图片时,element图片使用此后缀  | 
| 
 nor  | 
 图片的状态,代表普通状态  | 
| 
 hl  | 
 图片的状态,代表高亮状态  | 
| 
 press  | 
 图片的状态,代表按下状态  | 
| 
 select  | 
 图片的状态,代表其所占的view被选中  | 
| 
 unselect  | 
 图片的状态,代表其所占的view没有被选中  | 
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文件夹下):全部小写,采用下划线命名法,加前缀区分。
//前面为动画的类型,后面为方向
| 
 动画命名例子  | 
 规范写法  | 
 备注  | 
| 
 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):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”。注意:页面控件名称应该和控件id名保持一致
strings.xml,colors.xml等中的id命名:
命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称
strings.xml中,使用activity名称注释,将文件内容区分开来
11 layout中的id命名
命名模式为:view缩写_模块名称_view的逻辑名称
view的缩写详情如下:
| 
 控件  | 
 缩写  | 
| 
 LayoutView  | 
 lv  | 
| 
 RelativeView  | 
 rv  | 
| 
 TextView  | 
 tv  | 
| 
 Button  | 
 btn  | 
| 
 ImageButton  | 
 imgBtn  | 
| 
 ImageView  | 
 mgView 或则 iv  | 
| 
 CheckBox  | 
 chk  | 
| 
 RadioButton  | 
 rdoBtn  | 
| 
 analogClock  | 
 anaClk  | 
| 
 DigtalClock  | 
 dgtClk  | 
| 
 DatePicker  | 
 dtPk  | 
| 
 EditText  | 
 edtTxt  | 
| 
 TimePicker  | 
 tmPk  | 
| 
 toggleButton  | 
 tglBtn  | 
| 
 ProgressBar  | 
 proBar  | 
| 
 SeekBar  | 
 skBar  | 
| 
 AutoCompleteTextView  | 
 autoTxt  | 
| 
 ZoomControls  | 
 zmCtl  | 
| 
 VideoView  | 
 vdoVi  | 
| 
 WdbView  | 
 webVi  | 
| 
 RantingBar  | 
 ratBar  | 
| 
 Tab  | 
 tab  | 
| 
 Spinner  | 
 spn  | 
| 
 Chronometer  | 
 cmt  | 
| 
 ScollView  | 
 sclVi  | 
| 
 TextSwitch  | 
 txtSwt  | 
| 
 ImageSwitch  | 
 imgSwt  | 
| 
 listView  | 
 lVi 或则lv  | 
| 
 ExpandableList  | 
 epdLt  | 
| 
 MapView  | 
 mapVi  | 
12.activity中的view变量命名
命名模式为:逻辑名称+view缩写
建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view
13.styles.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.使用button+activitgroup实现tab效果时,使用Button.setSelected(true),确保按钮处于选择状态,并使activitygroup的当前activity与该button对应
17.如果所开发的为通用组件,为避免冲突,将drawable/layout/menu/values目录下的文件名增加前缀
18.数据一定要效验,例如
字符型转数字型,如果转换失败一定要有缺省值;
服务端响应数据是否有效判断
【转】android 开发 命名规范的更多相关文章
- 你不可不看的Android开发命名规范
		
标识符命名法最要有四种: Camel(骆驼)命名法:除首单词外,其余所有单词的第一个字母大写,如:fooBar; Pascal命名法:所有单词的第一个字母大写,如:FooBar: 下划线命名法:单词与 ...
 - 【转载】Android 开发 命名规范
		
原文地址:http://www.cnblogs.com/ycxyyzw/p/4103284.html 标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外, ...
 - android 开发 命名规范
		
标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写. 2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字 ...
 - Android 开发 命名规范(基础回顾)
		
标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写. 2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字 ...
 - Android开发代码规范(转)
		
Android开发代码规范 1.命名基本原则 在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的.比如,大小写的区分,使用不同字母开头等等.但究其本,追其源,在为一个资源其名称 ...
 - Android开发编码规范(自用)
		
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境 ...
 - ym——Android开发编码规范(自用)
		
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境下J ...
 - Android资源命名规范
		
Android资源命名规范 命名模板为:缩写_主界面_功能部分(一) 缩写:ic ----------------------iconbg---------------------background ...
 - java开发命名规范(转载)
		
java开发命名规范 使用前注意事项: 1. 由于Java面向对象编程的特性, 在命名时应尽量选择名词 2. 驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而 ...
 
随机推荐
- Spring MVC在接收复杂集合参数
			
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是applica ...
 - Android编程之ActivityManager: Segmentation fault
			
今天运行代码时,出现了一个不能运行的故障问题:ActivityManager: Segmentation fault 是的,这个原因网上有诸多解释:包名不能是中文或者非法字符,或者重启新的avd来解决 ...
 - solr 3.5 配置及server设置
			
一.solr 的简单介绍 Apache Solr 是一个开源的搜索server.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.Apache Solr 中 ...
 - Android应用开发-小巫CSDN博客client之嵌入有米广告
			
Android应用开发-小巫CSDN博客client之嵌入有米广告 上一篇博客给大家介绍怎样集成友盟社会化组件,本篇继续带来干货,教大家怎样嵌入广告到应用中去.小巫自称专业对接30年,熟悉各大渠道SD ...
 - ViewController详解
			
一.生命周期 当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc 创建对象,分配空间2.init (initWit ...
 - Hibernate项目里配置环境时,jar包配置不当会对测试结果产生影响。
			
问题情况: 如下图所示,该图中,显示了一堆错误的jar包.这是导致了Junit4测试通过了,数据库却没反应的原因. 原因: 之所以出现这种情况,eclipse其实已经告诉了我们原因.如下图所示,这些j ...
 - python challenge 待续中
			
网址:http://www.pythonchallenge.com/解答好文:http://story.iteye.com/blog/730466 0:2^38 reduce(lambda x,y:x ...
 - "sfc/scannow" 修复系统,提示 "windows资源保护无法启动修复服务"(win7)
			
原因: ArcGIS9.3安装后对注册空间进行了限制. 解决方案: 1,输入 regeidt 打开注册表. 2,找到 HKEY_LOCAL_MACHINE\System\CurrentControlS ...
 - 如何让MyEclispe中英文切换
			
我们通过网上的一些汉化办法汉化了我们的MyEclipse,可是我们有时候想切回英文版怎么办? 方法一:我们可以通过修改MyEclipse配置文件的办法来从中文恢复到英文, -Duser.languag ...
 - Catel(翻译)-为什么选择Catel
			
1. 介绍 这篇文章主要是为了说明,我们为什么要使用Catel框架作为开发WPF,Silverlight,和Windows phone7应用程序的开发框架. 2. 通用功能 2. ...