1、包名全部采用小写,连续的单词只是简单地连接起来,不用下划线区分单词
2、主包名采用反域名规则,一级包名为com/cn/org/edu/net,二级包名为xx(xx可以是公司或者个人的),三级包名根据应用进行命名,四级包名为通用名称/模块名称/层级名称,前三级可以统称为[主包名]
例如:和而泰C-Life美容:com.het.cbeauty
注:和而泰android项目全部以com.het.XX形式命名包括工程和库
常见通用功能部分如下表:
包名 | 含义 |
---|---|
[主包名]. activity | 页面用到的Activity类 (activitie层级名用户界面层) |
[主包名]. base | 基础共享的类 例如:BaseActivity、BaseFragment、BaseView等 |
[主包名]. adapter | 页面用到的Adapter类 (适配器的类) |
[主包名]. api | 网络接口请求相关 |
[主包名]. constant | 常量配置 |
[主包名].view/widget | 自定义View等 |
[主包名].model/bean/entity | 实体类 |
[主包名]. db | 数据库操作相关所在的包 |
[主包名]. impl | 接口实现 |
[主包名]. service | 服务相关 |
[主包名]. manager | 管理类相关 |
[主包名]. receiver | BroadcastReceiver服务 |
[主包名]. util/tools | 公共工具方法类 |
3、只需导入用到的类,不得用*导入包下所有类
例如:import foo.*; (×) import foo.Bar;(√)
- 1
- 2
4、导入类时,系统类在上方,自定义类在下方
注:如果不想太麻烦:可以用快捷键:Ctrl+Shift+o 快捷某个类/某个包/整个工程src都可以
1、 代码主要采用大/小驼峰命名法,即除首字母外,每个单词首字母大写,整体首字母大小根据其它规范决定
2、 类名、接口名、枚举名等首字母大写,若由多个单词组成,则其后每个单词首字母大写,简明扼要,望文知意原则;
例如:
class ConfigManager{}
- 1
- 2
3、 继承自安卓组件的类,采用父类名作为后缀
规则:
1) Acitivity类以Acitivity结尾;
2) Fragment类以Fragment结尾;
3) Service类以Service结尾;
4) BroadcastReceiver类以Receiver结尾;
5) ContentProvider类以Provider结尾;
6) Application类以Application结尾;
7) 自定义View类以Custom/功能**View结尾;
8) 自定义Adapter类以Adapter结尾;
9) adapter中的ViewHolder以Holder结尾;
10) 实体Bean以Model结尾;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
例如:
class LoginActivity extends Activity{}
- 1
- 2
4、 接口命名需要简单明了,长度不宜过长,建议在名称前面追加“I”
备注:
I**Listener
I**CallBack
I**;
- 1
- 2
- 3
- 4
- 5
5、 自定义异常必须以Exception结尾
6、 除for循环变量外,一律不得使用i、j、k等单字符作为变量名
定义数组时方括号紧随在原始类型之后,数组名称一般使用复数形式
例如:
int[] arrays;
- 1
- 2
7、 常量、枚举等均采用大写形式,用下划线区分各单词
例如:
static final String DEVICE_ID = "device_id"
enum CounterType {NUMBER,DECIMAL,BOTH}
- 1
- 2
- 3
- 4
8、全局变量添加所有者前缀:实例成员变量前缀m(表示member),静态字段命名以s开头(表示static)
例如:
实例变量mRun
静态变量sRun
9、控件变量添加组件前缀,顺序在所有者前缀之后
例如:
全局名称:mBtnNext
局部名称:btnNext
常见控件前缀见附件UI控件表
缩写 | 全称 | 含义 |
---|---|---|
alc | AnalogClock | 模拟时钟 |
btn | Button | 按钮 |
cal | CalendarView | 日历 |
chb | CheckBox | 复选框 |
chm | Chronometer | 秒表 |
dgc | DigitalClock | 数字时钟 |
dbk | DatePicker | 日期选择框 |
et | EditText | 编辑框 |
elv | ExpandableListView | 可扩展列表 |
glr | Gallery | 画廊 |
gv | GridView | 网格布局 |
iv | ImageView | 图片控件 |
lv | ListView | 列表控件 |
mcr | MediaController | 多媒体控制 |
npk | NumberPicker | 数字选择器 |
rdg | RadioGroup | 单选按钮 |
rl | RelativeLayout | 相对布局 |
tl | TableLayout | 表格布局 |
rdo | RadioButton | 单选按钮 |
rtb | RatingBar | 评分控件 |
scr | ScrollView | 滚动控件 |
sdr | SlidingDrawer | 滑动抽屉 |
sfc | SurfaceView | 渲染视图 |
skb | SeekBar | 进度条 |
spn | Spinner | 下拉框 |
swh | Switch | 开关 |
th | TabHost | 标签页 |
tw | TabWidget | 标签按钮 |
Tb | ToggleButton | 切换按钮 |
tp | TimePicker | 时间选择器 |
tv | TextView | 文本框 |
vdo | VideoView | 视频 |
web | WebView | 网页控件 |
ll | LinearLayout | 线性布局 |
fl | FrameLayout | 帧布局 |
ibtn | ImageButton | 图片按钮 |
10、常量一般使用final static修饰,根据需要使用可见性修饰符
例如:
public static final int VISIBLE = 0x00000000;
- 1
- 2
11、一般方法名首字母小写,若由多个单词组成,则其后每个单词首字母大写,方法名通常是动词或动词短语。
例如:
方法 | 说明 |
---|---|
initXX() | 初始化相关方法,使用init为前缀标识,如初始化布局initView() |
isXX() checkXX() | 方法返回值为boolean型的请使用is或check为前缀标识 |
getXX() | 返回某个值的方法,使用get为前缀标识 |
handleXX() | 对数据进行处理的方法,尽量使用handle为前缀标识 |
displayXX()/showXX() | 弹出提示框和提示信息,使用display/show为前缀标识 |
saveXX() | 与保存数据相关的,使用save为前缀标识 |
resetXX() | 对数据重组的,使用reset前缀标识 |
clearXX() | 清除数据相关的 |
removeXXX() | 清除数据相关的 |
drawXXX() | 绘制数据或效果相关的,使用draw前缀标识 |