目录
项目结构
代码结构
命名规范
● 方法
● 变量
● 类
● 文件
● 常量
注释
项目结构
由于公司有两个应用产品,然后分了一个lib存放两产品公共东西.
Common:存放两产品公共类和方法.
Manager:公共服务类,广播类. 服务类:TestService,广播类:TestReceiver.
Net:存放两产品网络请求,json解析.
Utils:存放两产品工具类和工具管理类,命名以Utils或Manager为后缀标识,线程池管理类:ThreadPoolManager,日志工具类:LogUtils.
Widget:公共自定义控件和组件,命名以View为后缀标识,例如:TestView. 如果有组件在 widget下创建组件名组件类,例如:级联组件 创建 wheel存放文件.
BaseApplication:公共Application基类.
Bean :存放实体类,返回数据实体,命名以Entity为后缀标识,例如:TestEntity。
Common:存放公共类,config类命名为AppConfig,常量类命名为Constants.
db:存放数据操作类,简单数据存储类.
Manager:公共服务类,广播类. 服务类:TestService,广播类:TestReceiver.
Net:存放网络请求,json解析.
Ui:
Activity:存放Activity ,命名以Activity为后缀标识,例如:TestActivity.
Adapter:存放适配器类,命名以apt为后缀标识,例如:TestApt
Fragment:存放适配器fragment类,命名以fragment为后缀标识,例如:TestFragment.
Widget:自定义控件和组件,命名以View为后缀标识,例如:TestView. 如果有组件在 widget下创建组件名组件类,例如:级联组件 创建 wheel存放文件.
Utils:存放工具类,命名以Utils或Manager为后缀标识,线程池管理类:ThreadPoolManager,日志工具类:LogUtils.
代码结构
@Bind(R.id.ivAddIoc)
ImageView ivAddIoc;
@Bind(R.id.tvAddAddress)
TextView tvAddAddress;
@Override
protected void onCreate(Bundle savedInstanceState) {
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.act_address_shangchao);
ButterKnife.bind(this);
initView();
}
/*
* 初始化View
*/
public void initView() {
}
/*
* 加载数据
*/
public void loadData() {
}
/*
* 更新View
*/
private Handler mHandler=new Handler() {
public void handleMessage(Message msg) {
}
};
@Override
protected void onStart() {
//TODO Auto-generated method stub
super.onStart();
loadData();
}
@Override
protected void onResume() {
//TODO Auto-generated method stub
super.onResume();
}
@Override
protected void onRestart() {
//TODO Auto-generated method stub
super.onRestart();
}
@Override
protected void onPause() {
//TODO Auto-generated method stub
super.onPause();
}
@Override
protected void onStop() {
//TODO Auto-generated method stub
super.onStop();
}
@Override
protected void onDestroy() {
//TODO Auto-generated method stub
super.onDestroy();
}
@OnClick({R.id.ivAddIoc,R.id.tvAddAddress})
public void onClick(View view) {
switch(view.getId()) {
caseR.id.ivAddIoc:
break;
caseR.id.tvAddAddress:
break;
}
}
命名规范
● 方法
动词或动名词,采用小驼峰命名法例如:onCreate(),run()
如:
initXX() 初始化相关方法,使用init为前缀标识,如初始化布局initView()
isXX() checkXX()方法返回值为boolean型和检查方法的请使用is或check为前缀标识
getXX() 返回某个值的方法,使用get为前缀标识
processXX() 对数据进行处理的方法,尽量使用process为前缀标识
displayXX() 弹出提示框和提示信息,使用display为前缀标识
saveXX() 与保存数据相关的,使用save为前缀标识
resetXX() 对数据重组的,使用reset前缀标识
clearXX() 清除数据相关的
removeXXX() 移除数据相关的
drawXXX() 绘制数据或效果相关的,使用draw前缀标识
● 变量
Camel 标记法:首字母是小写的,接下来的单词都以大写字母开头
布局文件控件命名使用Android Studio JakeWharton 的butterknife帮我们的生成控件命名点击这里查看butterknife工具操作
● 类
类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大 写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写.
如:XMLExample,还有一点命名技巧就是由于类是设计用来 代表对象的,所以在命名类时应尽量选择名词。
● 文件
资源布局文件(XML文件(layout布局文件)):
全部小写,采用下划线命名法
1). Activity默认布局,以去掉后缀的Activity类进行命名:
act_功能模块.xml
例如:act_main.xml、act_more.xml
2).Dialog命名:dialog_描述.xml
例如:dlg_hint.xml
2).PopupWindow命名:ppw_描述.xml
例如:ppw _info.xml
3).包含项:include_模块.xml
例如:include_head.xml、include_bottom.xml
4).adapter的子布局:adp_功能模块_item.xml
例如:adp _main_item.xml
● 常量
常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词
如:MAX_VALUE
注释
1.文件头注释
每一个文件的文件头都必须做文件头注释。文件头注释范例如下:
/**文件名:LoginActivity
*描 述:对用户
*作 者:
*时 间:
*版 权:*/
2.方法头注释
每一个成员方法头都必须做方法头注释。
自定义成员方法注释范例如下:
/**
*方法描述
*@param strName 参数
*@return 方法数据返回
*/
3.块注释
在实现一段阶段性功能的代码前做块注释。块注释的注释范例如下:
4.变量注释
所有的成员变量和大多数局部变量在声明时都需要为其做功能注释。
成员变量注释的注释范例如下:
局部变量注释的注释范例如下:
5.语句注释
在关键语句的右侧要做单条语句注释。
语句注释的注释范例如下: