- 摘要
1. 前言
2. AS规范
3. 命名规范
命名规范 - 包名
- 包名全部小写,连续的单词只是简单地连接起来,不使用下划线。采用反域名命名规则,全部使用小写字母。一级包名是顶级域名,通常为com, edu, gov, net, org等,二级包名为公司名,三级包名根据应用进行命名,四级包名为模块名或层级名。
com.xx.应用名称缩写.activity 用户界面中所有的Activity类
com.xx.应用名称缩写.fragment 界面中所有的Fragment类
com.xx.应用名称缩写.base 基础共享的类
com.xx.应用名称缩写.adapter 页面用到的Adapter类 (适配器的类)
com.xx.应用名称缩写.view 自定义的View类
com.xx.应用名称缩写.util 此包中包含:公共工具方法类(util模块名)
com.xx.应用名称缩写.bean 下面可分:vo、po、dto 此包中包含:JavaBean类
com.xx.应用名称缩写.model 此包中包含:模型类
com.xx.应用名称缩写.db 数据库操作类
com.xx.应用名称缩写.view (或者 com.xx.应用名称缩写.widget ) 自定义的View类等
com.xx.应用名称缩写.service Service服务
com.xx.应用名称缩写.receiver BroadcastReceiver服务
com.xx.应用名称缩写.confing 所有的配置相关的类 - 类名
- 类名都以UpperCamelCase风格编写。
- 类名通常是名词或名词短语,接口名称有时可能是形容词或形容词短语。现在还没有特定的规则或行之有效的约定来命名注解类型。
- 名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的,比如 HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。
类 | 描述 | 例如 |
Activity 类 | Activity为后缀标识 | 欢迎页面类WelcomeActivity |
Adapter类 | Adapter 为后缀标识 | 新闻详情适配器 NewDetailAdapter |
解析类 | Parser为后缀标识 | 首页解析类HomePosterParser |
工具方法类 | Utils或Manager为后缀标识(与系统或第三方的Utils区分)或功能+Utils | 线程池管理类:ThreadPoolManager日志工具类:LogUtils(Logger也可)打印工具类:PrinterUtils |
数据库类 | 以DBHelper后缀标识 | 新闻数据库:NewDBHelper |
Service类 | 以Service为后缀标识 | 时间服务TimeServiceBroadcast |
Receiver类 | 以Receiver为后缀标识 | 推送接收JPushReceiver |
ContentProvider | 以Provider为后缀标识 | |
自定义的共享基础类 | 以Base开头 | BaseActivity,BaseFragment |
1.测试类的命名以它要测试的类的名称开始,以Test结束。例如:HashTest
2.接口(interface):命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runnable
- 方法名
- 方法名都以lowerCamelCase风格编写。
- 方法名通常是动词或动词短语。
方法 | 说明 |
initXX() | 初始化相关方法,使用init为前缀标识,如初始化布局initView() |
isXX() | checkXX() 方法返回值为boolean型的请使用is或check为前缀标识 |
getXX() | 返回某个值的方法,使用get为前缀标识 |
setXX() | 设置某个属性值 |
handleXX()/processXX() | 对数据进行处理的方法 |
displayXX()/showXX() | 弹出提示框和提示信息,使用display/show为前缀标识 |
updateXX() | 更新数据 |
saveXX() | 保存数据 |
resetXX() | 重置数据 |
clearXX() | 清除数据 |
removeXX() | 移除数据或者视图等,如removeView(); |
drawXXX() | 绘制数据或效果相关的,使用draw前缀标识 |
- 常量名
- 常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词。那,到底什么算是一个常量?
- 每个常量都是一个静态final字段,但不是所有静态final字段都是常量。在决定一个字段是否是一个常量时,考虑它是否真的感觉像是一个常量。例如,如果任何一个该实例的观测状态是可变的,则它几乎肯定不会是一个常量。只是永远不打算改变对象一般是不够的,它要真的一直不变才能将它示为常量。
其他还有参数名、局部变量、全局变量也要以lowerCamelCase风格编写!