Android开发规范示范——开发必学

之前从在工作室接触工作项目开发至今,由于需要协同队友一起进行项目开发,规范编程是协同开发的基础。有时队友A写了一个类或者修改了某个类的一些成员属性或者方法,如果按照其惯有的编程风格,编写出来的代码别人也看不懂。这里拿本人开发过程中的规范实例,仅供参考。

工具及开放环境

开发工具统一使用eclispe集成Android SDK作为开发工具,工作区的编码格式使用UTF-8,ADT实时更新最新本。

Java版本统一使用JDK版本为1.7。

命名规范

(package):采用完整的英文描述符,由小写字母组成;对于全局包,将Internet域名反转换上包名

例如:

表示包下所有类只用来存放常量

[java]  view plain copy
  1. com.gdut.topview.constant     

表示包下所有类只用来存放自定义控件

[java]  view plain copy
  1. com.gdut.topview.widget   

表示包下所有类只用get和set方法来控制对象

[java]  view plain copy
  1. com.gdut.topview.entity   
存放所有用到的Activity

[java]  view plain copy
  1. com.gdut.topview.activity    

存放工具类

[java]  view plain copy
  1. com.gdut.topview.util     

(class)/接口/抽象类:采用完整的英文描述符,所有单词第一个字母大写,采用驼峰式命名。

例如:

[java]  view plain copy
  1. class Test<span style="white-space:pre">  </span>//类  
  2. interface Test<span style="white-space:pre">  </span>//接口  
  3. abstract class Test<span style="white-space:pre"> </span>//抽象类  

注意一下几种:

Android基本集成类:功能名组成+ 以Android类名
例如:
[java]  view plain copy
  1. ShowActivity<span style="white-space:pre">    </span>//Activity  
  2. DownloadService<span style="white-space:pre"> </span>//Service  
  3. DeleteReceiver<span style="white-space:pre">  </span>  
  4. MyApplication  
有共性的类使用相同的开始单词或者前缀

例如:

[java]  view plain copy
  1. class WIFIEvent   
  2. class WIFICookie  

成员函数(method):采用完成的英文描述符,函数名字以代表函数功能的英文单词组成,除首单词小写,其他单词首字母大写;一般的,函数第一个单词要求用动词;Getter函数加前缀‘get’;Setter函数加前缀‘set’;boolean型函数用‘is’作为前缀;函数参数用‘a’作为前缀;不要在方法名中加入对象名称。

例如:

[java]  view plain copy
  1. void exportHtmlSource() //Not exportHTMLSource  
  2. getFirstName()  
  3. setFirstName()  
  4. isRigth()  
  5. Boolean isDrawable(Path apath)  
  6. Line.getLength()  //Not Line.getLineLength()  

变量:采用完整的英语描述符,变量名称用描述变量用途的一个或多个英文单词组成,除首单词用小写,其余单词首字母大写。
成员变量用‘m’作为前缀。

例如:

[java]  view plain copy
  1. public String mStrPageURL  

静态成员变量用‘s’作为前缀。

例如:

[java]  view plain copy
  1. public static String sSrtAddress;  

常量的名字全部大写,单词之间用‘_’分开。

例如:

[java]  view plain copy
  1. public final static short ERROR_COMM = 1;  

枚举变量用‘em’作为前缀。

例如:

[java]  view plain copy
  1. emSelector  

Boolean类型变量使用‘is’作为前缀,不能使用否定词。

例如:

[java]  view plain copy
  1. boolean isError      // NOT isNoError  
  2. Boolean isFound      //NOT isNotFound  

形参用‘a’作为前缀。

例如:

[java]  view plain copy
  1. (Person aPerson)  

数组变量应在‘[]’之后。

例如:

[java]  view plain copy
  1. byte[] buffer   //NOT byte buffer[]  

用复数命名集合类型的变量

例如:

[java]  view plain copy
  1. Collection<Point>points  
  2. Int []           values  

Iterator类型变量用it命名

例如:

[java]  view plain copy
  1. Iterator it = points.iterator()  

基本数据类型命名规范

Integerint+描述          Charchr+描述          Booleanbln+描述 

Longlng+描述           Shortshr +描述         Doubledbl+描述

Stringstr+描述           Floatflt+描述          Singlesng+描述

DataTimedt+描述         Arrayarr+描述        Objectobj+描述     

例如:String  srtName;

基本控件命名规范

TextView:tv_+描述            Button :btn _+描述            EditText :et_+描述

WebView :wv_+描述            ImageView:iv _+描述            VideoView :vv _+描述

MediaController :mc_+描述             ListView :lv _+描述            GridView :gv _+描述

Gallery :gly _+描述            ImageButton: ib _+描述            CheckBox :cb _+描述

RadioButton: rb _+描述            SeekBar: sb _+描述            ProgressBar pb _+描述

Spinner :spr _+描述            SearchView: sv _+描述            DatePicker :dp_+描述

AnalogClock: ac _+描述            TimePicker:tp _+描述

例如:

[java]  view plain copy
  1. private Button mBtn_show;  
  2. private Static String sStrName;  

缩进折行

  • 函数或者过程的开始,结构的定义,循环、判断语句中的代码都要采用缩进风格,统一用Tab键进行缩进代码
  • 每一行代码都不要超过100个字符
  • 一对花括号之间必须折行
  • ifforwhile的主体即使只有一行,也要用花括号包括
  • 如果一个表达式或者语句无法在一行中写完:在逗号之后折行;在运算符之前折行;尽量让同级表达式处在同一行

例子:

[java]  view plain copy
  1. function (longExpression1, longExpression2, longExpression3,  
  2. longExpression4, longExpression5);  
  3.    //NOT longName1 = longName2 * (longName3 + longName4  
  4. - longName5) + 4 * longname6;  

空格空行

  • 空格使用:逗号前面空一格空格;所有运算符(“.”“++”“—”除外)、赋值符号前后必须空一格;行尾不能有空格
  • 空行使用:
  1. packageimport之间要空一行
  2. import组之间要空一行
  3. import语句与类、接口声明之间空一行
  4. 实例变量定义与方法定义之间空一行
  5. 方法与方法之间空一行
  6. 代码块之间空一行
  7. 文件结尾后空一行
  8. 超过15行代码考虑用空行分割,否则有阅读困难
  9. 除非有特殊考虑,不要有一行以上空行

代码注释

文件头范例
例如:

[java]  view plain copy
  1. /** 
  2. *  Copyright<year> topviewAndroid  Inc. 
  3. */  

/接口范例 (必须注明类/接口的编写目的、用途)
例如:

[java]  view plain copy
  1. /** 
  2. *  类或接口的作用描述 
  3. *  @author XXX<email> 
  4. * @version xxxx-xx-xx.a(xxxx-xx-xx为年月日 a为第几次修改 
  5. */  

方法头范例
  • 说明方法的作用
  • 说明方法的参数
  • 说明方法的返回值
  • 说明方法抛出的异常

例如:

[cpp]  view plain copy
  1. /** 
  2. *  方法的描述 
  3. *  @param 参数的描述 
  4. *  @return 返回类型的描述 
  5. *  @exception 异常信息的描述 
  6. */  

[java]  view plain copy
  1. /** 
  2. * Return lateral location of the specified position. 
  3. * If the position is unset, NaN is returned. 
  4. * 
  5. * @param x X coordinate of position. 
  6. * @param y Y coordinate of position. 
  7. * @param zone Zone of position. 
  8. * @return Lateral location. 
  9. * @throws IllegalArgumentException If zone is <= 0. 
  10. */  
  11. public double computeLocation(double x, double y, int zone)  
  12. throws IllegalArgumentException {  
  13. ...  
  14. }  

方法体范例
  • 控制流结构说明
  • 变量说明
  • 复杂代码说明
  • 处理顺序说明

[java]  view plain copy
  1. Public void example(){  
  2.    //使用双斜杠进行注释  
  3. }  

资源文件

xml布局文件命名

这类文件划分为两类,一类是直接或间接被某个组件加载,一类是资源定义,比如selector等等。

如果是第一类:加载组件名_功能描述.xml

例如:

[java]  view plain copy
  1. mainactivity_show.xml  

如果是第二类("oo"只是一个标志,用于区分而已,可以根据自己的开放实际情况而定):oo_类型_功能描述.xml

例如:

[java]  view plain copy
  1. oo_selector_buttonchange.xml  

xml布局id命名

所在xml布局名_基本控件命名规范

例如在mainactivity_show.xml中的一个显示结果的一个textView

[html]  view plain copy
  1. android:id="@+id/maiinactivity_show_tv_showresult"  

更多补充将会持续更新...

转载自:http://blog.csdn.net/u010794180/article/details/43955277


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值