android代码规范
来源:互联网 发布:淘宝一元抢购在哪里 编辑:程序博客网 时间:2024/05/19 19:43
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;
格式不对
- android 编程代码规范
- Android开发代码规范
- android代码规范整理
- Android开发代码规范
- android 代码编写规范
- Android代码规范
- Android代码编写规范
- Android代码规范
- Android代码规范
- Android开发代码规范
- android代码规范
- Android代码规范
- Android代码规范
- Android代码规范
- Android代码规范
- Android代码规范
- android代码书写规范
- Android代码规范
- 通过system调用颜色函数
- Maven学习笔记(一)
- HTML5实现图片淡入淡出效果
- java使用jbarcode生成条形码
- 无需安装redis,在线练习
- android代码规范
- sqlload导入txt文件
- Encoder
- python+带附件发送邮件
- android 图片旋转处理
- 传递参数的单例模式
- android设置横屏竖屏
- 《道德经》第三十六章
- [LeetCode] 15. 3Sum