Android代码规范文档
来源:互联网 发布:广西广电网络高清机顶盒 编辑:程序博客网 时间:2024/05/21 23:31
命名规范
1. 包命名
规则:包名全部小写,才用反域名命名规则,一级包名是顶级域名,通常为com, edu, gov, net, org等,二级包名,通过为公司名或部门名或者个人名,三级包名通常为项目名,四级包名为模块名或者层级名。以下是从层级包名来划分android项目中采用的包划分结构
com.xxx.view //V层com.xxx.presenter//P层com.xxx.model //M层com.xxx.ui //用户界面中所有的类 com.xxx.activity //Activity类 com.xxx.fragment //Fragment类 com.xxx.adapter //Adapter类(适配器类) com.xxx.widget //自定义的View类com.xxx.service //后台Service类com.xxx.utils //项目中常用的公共工具类(网络, IO, 日志等)com.xxx.bean //实体模型类com.xxx.dao //数据库操作相关的类com.xxx.api //网络api接口相关de 类
2. 类命名
规则:采用大驼峰式命名法,首字母大写,尽量避免缩写,除非该缩写是众所周知的,比如HTML,URL,如果类名称包含单词缩写,则单词缩写的每个字母均应大写。以下列举的是android中几种最为常用的类的命名。
class LoginActivity; //activity类class SportFragment; //fragment类class LocalService; //service类class PictureListAdapter; //adapter类class DateUtils; //工具类class UserInfoBean; //模型类class ApiImpl; //接口实现类
3. 接口命名
规则:命名规则与类命名一样采用大驼峰式命名法,首字母大写,多以able, ible, er结尾
interface Comparable;interface OnClickListener;
4. 方法
规则:采用小驼峰命名法,首字母小写,方法名采用动词或动名词结构。方法的命名应该与方法的真正行为具有对应关系,下面给出一些方法名的动词前缀标示的建议。
方法名 描述
getXX() 获取某个属性的返回值setXX() 设置某个属性值initXX() 初始化方法,如初始化布局initView()isXX() 判断是否true的方法;checkXX() 与isXX意义等价processXX() 处理数据updateXX() 更新数据saveXX() 保存数据addXX() 添加数据deleteXX() 删除数据resetXX() 重置数据clearXX() 清除数据removeXX() 移除数据或者视图等,如removeView();drawXX() 绘制数据或者视图
5. 变量
规则:采用小驼峰命名法,首字母小写。变量名应简短且能描述其用途,尽量避免拼音,无意义地缩写。除非是临时变量,否则不建议使用单个字符的变量名,如i, j, k。对于变量命名,还有一种风格是google的以字母m为前缀(m为member缩写),在android 源码中随处可见。
private int userName; //java的一般性风格private int mUserName; //google的成员变量风格,m为member的缩写
6. 常量
规则:常量使用全大写字母加下划线的方式命名。
public static final int TAG= "tag";public static final int START_CLASS_NOT_FOUND = -2;
7. 控件变量名
规则:首先需要满足第5条变量的规则, 模式:view缩写+逻辑名
Button btnSendNews;TextView tvPassword;
8. 控件ID
规则:view缩写模块名逻辑名
android:id="@+id/btn_news_send" //样例
view缩写如下:
View 缩写TextView tvEditText etButton btnImageButton ibtnImageView ivListView lvRadioGroup rgRadioButton rbProgressBar pbSeekBar sbCheckBox cbSpinner spTableLayout tlTableRow trLinearLayout llRelativeLayout rlScrollView svTabHost thTabWidget tw
9. 资源文件名
9.1 layout的文件命名
规则:全部小写,采用下划线命名法。
layout文件命名:组件类型_{模块_}功能.xmlactivity_news_title.xml //样例
命名规范 组件类型activity_{模块_}功能 Activity命名格式fragment_{模块_}功能 Fragment命名格式dialog_{模块_}功能 Dialog命名格式popup_{模块_}功能 PopupWindow命名格式item_list_{模块_}功能 ListView的item命名格式item_grid_{模块_}功能 GridView的item命名格式
9.2 drawable的文件命名
模式:前缀{_控件}{_范围}{_后缀},控件、范围、后缀可选
bg_login_pressed.png //样例drawable 命名细则图标类 添加ic前缀背景类 添加bg前缀分隔类 添加div前缀默认类 添加def前缀区分状态时,默认状态 添加normal后缀区分状态时,按下时的状态 添加pressed后缀区分状态时,选中时的状态 添加selected后缀区分状态时,不可用时的状态 添加disable后缀多种状态的 添加selector后缀
9.3 动画的文件命名
规则:
{范围_}动画类型_动画方向。login_fade_in.xml //样例
动画命名 描述fade_in 淡入fade_out 淡出push_down_in 从下方推入push_down_out 从下方推出slide_in_from_top 从头部滑动进入zoom_enter 变形进入shrink_to_middle 中间缩小
10. 资源内的name命名
10.1 strings.xml
模式:
类简写名_{范围_}逻辑名<string name="la_username">用户名</string> //LoginActivity 用户名
10.2 colors.xml
模式:
前缀{_控件}{_范围}{_后缀}, 控件、范围、后缀可选,<color name="bg_login">#FFFFFF</color> //样例
colors命名细则背景颜色添加bg前缀文本颜色添加text前缀分割线颜色添加div前缀区分状态时,默认状态的颜色添加normal后缀区分状态时,按下时的颜色添加pressed后缀区分状态时,选中时的颜色添加selected后缀区分状态时,不可用时的颜色添加disable后缀代码风格原则不要直接忽略Exceptions面的示例,永远不要这样做,无法预测未来可能的变化
void setServerPort(String value) { try { serverPort = Integer.parseInt(value); } catch (NumberFormatException e) { } }
正确的做法应该如下:
void setServerPort(String value) throws ConfigurationException { try { serverPort = Integer.parseInt(value); } catch (NumberFormatException e) { throw new ConfigurationException("Port " + value + " is not valid."); } }
import采用完全限定名不提倡: import foo.*;正确做法: import foo.Bar;括号风格:不提倡: if (condition) body();正确做法: if (condition) { body(); }
使用空格来缩进
使用4个空格缩进来代表块,而绝不使用tab键; 使用8个空格来代表行包裹,包括函数调用。
注释
类注释
每个类完成后应该有作者姓名和联系方式的注释,对自己的代码负责
/**作者: zgkxzx时间: 16-12-20 19:25描述: 用户登录联系方式: zgkxzx@163.com */ public class Login{ … }
方法注释
每一个成员方法(包括自定义成员方法、覆盖方法、属性方法)的方法头都必须做方法头注释
/*方法名:功 能:参 数:返回值:无 */
块注释
private class MessageObserver extends ContentObserver { public MessageObserver() { super(mainHandler); } public void onChange(boolean hasChanged) { // 发送更新UI的消息 mHandler.sendMessage(mHandler.obtainMessage(0x2)); } }
资源文件注释
<!--登陆颜色--><color name="bg_login">#FFFFFF</color> //样例
- Android代码规范文档
- android 代码规范文档(命名规范)
- 华为代码规范文档
- Java代码规范文档
- Java代码规范文档
- Java代码规范文档
- 代码规范文档
- Android.mk 文档规范
- Android.mk 文档规范
- Android.mk文档规范
- Android.mk文档规范
- Android.mk文档规范
- Android.mk文档规范
- Android.mk文档规范
- Android.mk文档规范
- Android.mk文档规范
- Android.mk文档规范
- Android开发规范文档
- 说说 freemarker 的自定义指令
- Java中static关键字用法总结
- windows 下alexnet模型的总结
- Android入门:通过JSON数据与服务器进行通信
- Java笔记
- Android代码规范文档
- 山东省赛 C Firework (杨辉三角组合数逆元)
- 使用了ng-repeat 后的样式显示 ng-class 、ng-hide ng-show ng-if ng-style
- 转盘抽奖插件概率实现
- Java如何连接数据库
- vue+express:搭建个人博客(1)
- searchInsert
- WHMCS 升级带来的问题
- 再说流性布局 display:flex ,以及看到的其他一些css 细节