android代码规范

Android代码规范

Android编码规范(Ver 0.1)

0 普适原则

1.直白式的代码比起注释来的更有意义

2.空格、换行相关的规范,需导入eclipse_code_formatter.xml,编辑完代码后执行格式化操作

3.Coders不能为了图方便而牺牲了代码的健壮性和可理解性

4.新增代码需完全遵守规范;老代码不符合规范,则在有相关功能时同步修改。

1 命名

1.1 命名需要富有含义,尽量能达到见名知义的程度,避免无意义的命名。

1.2 变量名详细程度,根据变量作用范围而定,成员变量 > 大函数的局部变量 > 小函数的局部变量,作用域越大,变量名则应更详细。

如对于一个类型的变量,成员变量命名为mCachedShareConfigEvent,小函数的局部变量可以命名为event。

1.3 类名

采用大驼峰命名法,尽量避免缩写。Activity、Fragment、Adapter等常见类型应添加对应的后缀标识。

类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。

1.4 方法名

- 采用小驼峰命名法,方法名通常是动词或动词短语。布尔类型函数使用谓语动词为前缀。

如initXX()、displayXX()、isXX()。

- 回调类方法,添加On前缀,如onRequestFaild(MobileErrorCodemobileErrorCode)

1.5 变量名

- 采用小驼峰命名法,成员变量以m开头。常量名命名模式为CONSTANT_CASE。

- 前缀后面,是由表意性强的一个单词或多个单词组成的名字。

- 最后,可以根据情况添加类型、量词后缀。

例外:CEvent消息及相关的实体类;@ViewById注解的控件变量;

ps:因为xml中控件的命名限制,及框架的View注入原因。控件类变量名为单词小写,单词间以下划线分割,以控制类型缩写为前缀(控件缩写表见文档末尾)。

例:mFollowingAnchorInfos,lv_following_anchors。

1.6 资源文件命名:因为资源类型需要在代码中以R文件引用,所以总体规则为:类型前缀+逻辑描述,方便查找。

类型

举例

说明

contentView

fragment_room
fragment_anchor_card_detail

Fragment的contentView必须与其类名对应,

将所有字母都转为小写,将类型和功能调换(也就是后缀变前缀)

列表项

item_following_anchors.xml

item_描述.xml

id命名

lv_following_anchors

btn_rotate_screen

view缩写_view的逻辑名称

2 注释

2.1 每个public类,及它的每个public成员变量、方法都需要添加Javadoc注释

函数的javadoc注释,需说明参数,返回值。

例外:不言自明的方法,如getter、setter方法。重载的方法。

2.2 其他需要添加注释的地方(不需用javadoc形式)

重要的private函数、变量;难于理解地方;特殊的业务逻辑、约定;

ps:注释主要是为了说明变量名、方法名无法阐述的含义,不要直接翻译。如果命名足够好,可以不写注释。

3 代码数量限制

3.1 一个函数体不要超过80(除非有充分的理由)

3.2 函数中大括号不要超过4 

3.3 三行以上(包括三行)重复三次(包括三次)以上,或五行以上(包括五行)重复两次(包括两次)以上,代码必须另写出一个函数;如果有一两个地方不同,要考虑使用参数进行概括,而使之成为共用的一段代码

4 其他

3.1 避免魔数,如if(res.result== 99)

3.2 xml布局,对于整体布局-子View有间距需求的,统一父布局做统一的上下左右间隔,不要在每个子控件去做整体布局的上下左右间距处理。

99. 附录

- 变量起名规则

维护一个开发单词与中文的对应关系字典(方案宣讲后,功能负责人更新),记录相关默认的英文单词以及特定任务的英文单词。方便开发中起名的统一性。

http://172.17.100.22/svn/starx52/x5_mobile/doc/新Android端/Android端变量命名中英文映射表.doc

对于难起名的变量需要与大家讨论,形成具体名称后更新开发单词字典,并记录在解决方案中。

- 控件缩写

控件

  缩写

    例子

LinearLayout

ll

ll_friend 或 mFriendLL

RelativeLayout

rl

rl_message 或 mMessageRL

FrameLayout

fl

fl_cart 或 mCartFL

Button

btn

btn_home 或 mHomeBtn

TextView

tv

tv_name 或 mNameTV

EditText

et

et_name 或 mNameET

ListView

lv

lv_cart 或 mCartLV

ImageView

iv

iv_head 或 mHeadIV

GridView

gv

gv_photo 或 mPhotoGV

- 不好的变量名举例

Bad

 private ClickDiminishListView cdlList;

无意义

 private ArrayList<RewardBasicItem> reList;

无意义

 private int m_gift_id = 0;

格式不对

猜你喜欢

转载自blog.csdn.net/u010652002/article/details/73650076