Android代码规范(转)

Android代码规范

综述

为规范Android项目中的编码,方便代码的阅读及给日后维护带来便利,特制定本规范。下文从注视规范及代码书写及命名规范做如下规定。对源码中出现命名不规范的地方,希望大家互相监督、指正。

注释规范

命名规范

Java代码

Java源码中除静态常量定义外应禁止使用下划线(_)作为各种变量、函数、接口、类名等各种命名的字符,命名应尽可能不使用拼音及拼音缩写,而改用规范的英文翻译单词命名。其他具体命名规范如下:

Package

Package的名字应为全部小写单词组成,不应包含大写字母、数字等其他字符,单词应为完整的单词或规范且公认的缩写。

例:com.zjhcsoft.mobile.survey

Class

Class的名字应为大写字母开头,后面单词也需大写字母开头。

例:TaskDetailActivity

Interface

接口命名同Class

常量

常量名字所有字符均须大写,单词间使用下划线(_)做分隔符。

例:CONNECT_TIMEOUT

变量

变量的命名主要分以下两种方法:

Camel标志法:首字母是小写,接下来的单词都以大写字母开头。对于自定义的类或不常用的类对象使用该种命名法则(除下述外的类型)。

例:taskDetail

匈牙利标志法:其基础构造为scope_typeVariableName(因android中我们不使用全局变量,所以一般将scope省略),它使用1-3字符前缀来表现数据类型,3个字符的前缀必须小写,后缀的单词首字母大写,其他字母小写。前缀对照表如下:

byte b

char c

short sh

int i

long l

string s

float f

double d

[ ] arr

List lst

Vector v

StringBuffer sb

Boolean b

Byte b

Map map

Object ob

在变量命名时要注意以下几点:

选择有意义的名字,注意每个单词首字母要大写。

在一段函数中不应用同一个变量表现前后意义不同的两个数值。

i、j、k等只作为小型循环的循环索引变量。

避免用Flag来命名状况变量。

用Is来命名逻辑变量,如:blsFileIsFound。通过这种给布尔变量确定情势的命名方法,使得其它开发职员能够更为明白的懂得布尔变量所代表的意义。

假如须要的话,在变量最后附加盘算限定词,如:curSalesSum。

如果须要对变量名进行缩写时,必定要注意全部代码中缩写规矩的一致性。建议变量名中尽量不要呈现缩写。
      通过在结尾处放置一个量词,就可创立更加同一的变量,它们更轻易懂得,也更轻易搜索。例如,请使用 sCustomerFirst和sCustomerLast,而不要使用sFirstCustomer和sLastCustomer。常用的量词后缀有:First(一组变量中的第一个)、Last(一组变量中的最后一个)、Next(一组变量中的下一个变量)、Prev(一组变量中的上一个)、Cur(一组变量中确当前变量)。
为每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的履行速度,又会下降出错的可能性。用于变量的数据类型可能会影响该变量进行盘算所发生的成果。在这种情形下,编译器不会发生运行期过错,它只是迫使该值符合数据类型的请求。这类问题极难查找。
尽量缩小变量的作用域。如果变量的作用域大于它应有的范畴,变量可持续存在,并且在不再须要该变量后的很长时光内仍然占用资源。它们的重要问题是,任何类中的任何办法都能对它们进行修正,并且很难跟踪毕竟是何处进行修正的。占用资源是作用域涉及的一个主要问题。对变量来说,尽量缩小作用域将会对利用程序的可靠性发生宏大的影响。

域变量

域变量一般指bean中set/get方法使用到的变量,该类型变量一律采用上述Camel标志法命名。

数组

数组应该总是用下面的方式来命名:

byte[ ] buffer;

而不是:

byte buffer[ ];

方法

方法名字的首单词必须为全部小写,其后的单词首字母大写。

例:toString checkValid

方法的参数

方法的参数应始终采用变量的命名规则并尽量采用Camel标志法命名。

XML代码

书写规范

代码的书写规范主要从注释和书写习惯对代码进行一个规范。一段规范的代码不仅便于调试及时发现错误所在,更能给他人或者日后自己维护带来许多便利,需要注意以下几点:

  1. 注释文档
  2. 段落化
  3. 多行语句段落化
  4. 使用空格和空行
  5. 方法不能太长,遵循30秒规则
  6. 定义消息的传递,在注释中体现
  7. 简短的命令行
  8. 将比较的常数放在左方,以防止误写为赋值语句

注释

外部注释

外部注释指对文件、类、方法等添加注释头,可以利用Eclipse的注释模板功能快速的添加注释,注释模板设置方法,Eclipse->Windows->Preferences->Java->Code Style->Code Templates->Comments现统一规定如下:

Files:

/**

*@Title:  ${file_name}

*@Package  ${package_name}

*@Description:  ${todo}

*@author     finger

*@date  ${date} ${time}

*@version  V1.0

*/

Types:

/**

*@title         ${type_name}

*@descript ${todo}

*@author finger

*@date ${date}  ${time}

*@version V1.0

*/

Fields:

/**

*@Fields  ${field} ${todo}

*/

Constructors:

/**

*<p>Title:  </p>

*<p>Description:  </p>

*${tags}

*/

Methods:

/**

*@title  ${enclosing_method}

*@descript ${todo}

*@param ${tags}

*@return  ${return_type}

*@throws

*/

Overriding methods:

/*(non Javadoc)

*<p>Title: ${enclosing_method}</p>

*<p>Description: </p>

*${tags}

*${see_to_overridden}

*/

Delegate methods:

/**

*${tags}

*${see_to_target}

*/

Getters:

/**

*@return the ${bare_field_name}

*/

Setters:

/**

*@param ${param} the ${bare_field_name} to set

*/

外部注释需在必要的地方补充完整以下信息

@descript 描述成员方法的功能及存在的原因

@author 名称   后加上相应的作者

@version 文本  插入指定文本的版本信息

@param 参数-名称描述

@return返回值描述

@exception 完整的类名称 描述信息

@throws 完整的类名称 描述信息

@see 引用其他类,格式如下:@see 类名

@see 完整类名

@see 完整类名#方法名

{@link引用}

@Override 重载函数必须在函数头添加重载标示

内部注释

  1. 在方法内部的开始部分统一注释方法的逻辑
  2. 控制结构,结构性语句的起始位置需要注明,控制结构的尾部
  3. 注明局部变量
  4. 注释结束括号}
  5. 注释要适当,使代码段落分明,一目了然。

书写习惯

缩进

缩进一般参照Eclipse默认Format的缩进,Eclipse使用Ctrl+Shift+F快捷键来快速格式化当前文件代码,默认缩进为1个Tab即4个空格的字符长度。语句块的{},其中{要跟在分块开始语句之后,如:函数定义、if条件和循环语句等末尾,else语句不单独另起一行。

例:

if (“abcd”.equals(sName)){

……

}else{

……

}

空格

原则上变量、类、常量数据和函数在其类型,修饰名称之间适当空格并据情况对齐。关键字原则上空一格,如:if ( ... ) 等。运算符的空格规定如下:"::"、"->"、"["、"]"、" "、"--"、"~"、"!"、" "、"-"(指正负号)、"&"(引用)等几个运算符两边不加空格(其中单目运算符系指与操作数相连的一边),其它运算符(包括大多数二目运算符和三目运算符"?:"两边均加一空格,在作函数定义时还可据情况多空或不空格来对齐,但在函数实现时可以不用。","运算符只在其后空一格,需对齐时也可不空或多空格。不论是否有括号,对语句行后加的注释应用适当空格与语句隔开并尽可能对齐。

对齐

原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在","处或运算符处,换行后最好以运算符打头,并且以下各行均以该语句首行缩进,但该语句仍以首行的缩进为准,即如其下一行为“{”应与首行对齐。变量定义最好通过添加空格形成对齐,同一类型的变量最好放在一起。如下例所示:
int Value;

int Result;

int Length;

Object currentEntry;

空行

不得存在无规则的空行,比如说连续十个空行。程序文件结构各部分之间空两行,若不必要也可只空一行,各函数实现之间一般空两行,由于每个函数还要有函数说明注释,故通常只需空一行或不空,但对于没有函数说明的情况至少应再空一行。

代码长度

对于每一个函数建议尽可能控制其代码长度为53行左右,超过53行的代码要重新考虑将其拆分为两个或两个以上的函数。函数拆分规则应该一不破坏原有算法为基础,同时拆分出来的部分应该是可以重复利用的。对于在多个模块或者窗体中都要用到的重复性代码,完全可以将起独立成为一个具备公用性质的函数,放置于一个公用模块中。

页宽

页宽应该设置为80字符。源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进2个字符。

变量初始化

对变量最好始终进行定义初始化,以减小不容易调试的bug的产生。

去除警告

对文件中的警告,应尽量或极力去消除警告,对于暂时长时不使用的函数,可以使用添加@SuppressWarnings("unused")来去除警告或在配置库(VSS、CVS、SVN)保存有备份的情况下暂时删除该方法。

其他

对于比较应把常量放在前面,以免误写为赋值语句或者造成不必要的空指针错误。

例:

while (0 == flag){

……

}

if (“abcd”.equals(sName)){

……

}

减少不必要的语句和局部变量定义或冗余的写法

例:

冗余的写法:

boolean bResult = false;

if ( a == b){

bResult = true;

}else{

bResult = false;

}

return bResult;

正确的写法:

return a == b;

冗余的写法:

if (bIsFile == fasle) {

……

}

正确的写法:

if (! bIsFile) {

……

}

时间: 2024-10-10 16:27:51

Android代码规范(转)的相关文章

Java&amp;Android代码规范

项目中直接导入Square的代码风格文件.(不导入Google的原因是Square同时提供了Java和Android两套统一风格,Google只提供了一套) Square Code Styles Goolge Code Styles 导入后会有很多好处,如注释规范化,import规范,方法排序,统一自动断行(PC屏幕较宽,建议断行字符数设置为120[File->Setting–>Code Style,右边Right Margin Columns])等 而在编码保存或提交时还能自动格式化代码,删

android代码规范和studio配置CodeStyle

studio配置CodeStyle可以很好的帮助我们检测代码规范性,保持大家的代码统一,来看看怎么配置和使用吧 代码规范,自己公司的一套 代码规范 一.      简介 A.    目的 本文提供一整套编写高效可靠的 Java代码的标准.约定和指南.它们以安全可靠的软件工程原则为基础,使代码易于理解.维护和增强.而且,通过遵循这些程序设计标准,你作为一个 Java软件开发者的生产效率会有显著提高.经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多.最后,遵循一

最佳实践之 Android代码规范

命名规范 包命名规范 采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为com,二级包名为xxx(可以是公司域名或者个人命名),三级包名根据应用进行命名,四级包名为模块名或层级名.如: com.isa.crm.activity | com.isa.crm.adapter JAVA类命名规范 采用大驼峰式命名法,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称包含单词缩写,则单词缩写的每个字母均应大写.如: Product | Produ

Android代码规范----按钮单击事件的四种写法

[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法. 一.第一种写法:在XML文件中指定(很少用) 在XML文件中显式指定控件的onClick属性,点击按钮时会利用反射的方式调用对应Activity中的onClick()方法. (1)xml文件代码如下: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2

Android代码规范

文章转载禁止用于商业用途,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处莫高雷草原以及作者@JiongBull. 开始之前请详细阅读并遵守Android开发者代码风格指南 不要使用拼音命名 名称应简洁而富于描述,使用完整单词,避免使用缩写(除非该缩写被更广泛使用,例如URL.HTML) 代码中不要出现中文标点字符,例如:','.':' 注释中可以书写中文标点字符,便于阅读 注释遵循英文写作习惯,标点符号后空一格,避免句子紧凑 颜色色值的字母必须全部大写 命名规则 1. 包命名 包名由小

[转] Android 命名规范 (提高代码可以读性)

Android命名规范编码习惯 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的 审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就 更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很 多. 在面试的时候,审核一个程序员

【Android 应用开发】 Android 相关代码规范 更新中 ...

. 简介 : Android 常用的代码结构, 包括包的规范, 测试用例规范, 数据库模块常用编写规范; 参考 : 之前写的一篇博客 [Android 应用开发] Application 使用分析 ; -- Application 分析 : Application 概念, 声明周期, 组件间传递数据作用, 数据缓存作用; -- 源码分析 : 分析 Application 结构接口源码; -- 使用示例 : 自定义 Application 注册, 保存崩溃日志到文件, 监听Activity声明周期

Android 命名规范 (提高代码可以读性)

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

Android 命名规范 (提高代码可以读性)(转)

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