Android开发规范


目录


项目结构

代码结构

命名规范

● 方法

● 变量

● 类

● 文件

● 常量

注释

项目结构


由于公司有两个应用产品,然后分了一个lib存放两产品公共东西.

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.语句注释

在关键语句的右侧要做单条语句注释。

语句注释的注释范例如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • Java类类名:大驼峰命名,所有单词首写字母大写,并且类名最好为名词.正确public class People{...
    WilsonMing阅读 763评论 0 2
  • title: Android开发规范 摘要 1 前言 2 命名规范 3 资源文件规范 4 版本统一规范 5 第三方...
    大白栈阅读 1,186评论 0 16
  • 一:介绍 1:为什么需要编码规范 编码规范对于程序员而言尤为重要,有以下几个原因: 一个软件的生命周期中,80%的...
    huaerlala阅读 416评论 0 0
  • 请看完结版:Android开发规范(完结版)
    Blankj阅读 8,593评论 25 115
  • H7N9再次撩动国人的心。禽流感已是国际大敌,如何有效防控,各国有各招。除了研制疫苗、检测剂、新药的常规招数外,山...
    依然的小森林阅读 1,200评论 0 1