开发规范
文章目录
- 1. 开发规范
- 1.1. 1. 打印调试Log
- 1.2. 2. 代码缩进,使用四个空格代替一个Tab
- 1.3. 3. 命名类(classes)
- 1.4. 4. 命名接口(interface)
- 1.5. 5. 命名方法(methods)
- 1.6. 6. 命名变量(variables)
- 1.7. 7. 命名常量(constants)
- 1.8. 8. 命名资源文件(drawable folder)
- 1.9. 9. 命名布局文件(XML layout)
- 1.10. 10. 命名动画文件(anim folder)
- 1.11. 11. 命名资源ID(resourcesid)
- 1.12. 12. 命名layout中的id命名
- 1.13. 13. 命名styles.xml
- 1.14. 14. 命名colors.xml
- 1.15. 15. 约定俗成的英文缩写
- 1.16. 16.监听器使用匿名内部类
- 1.17. 17. 参考链接
Android 开发中类、方法、变量、资源等命名规则。
开发规范
- 1.打印调试Log
- 2.代码缩进,使用四个空格代替一个Tab
- 3.命名类(classes)
- 4.命名接口(interface)
- 5.命名方法(methods)
- 6.命名变量(variables)
- 7.命名常量(constants)
- 8.命名资源文件(drawable folder)
- 9.命名资源布局文件(XML layout)
- 10.命名动画文件(anim folder)
- 11.命名资源ID(resourcesid)
- 12.命名layout中的id命名
- 13. 命名styles.xml
- 14.命名colors.xml
- 15.约定俗成的英文缩写
- 16.监听器使用匿名内部类
- 17.参考链接
1. 打印调试Log
DEBUG模式下打印调试log时,TAG的值统一使用如下格式
public static final String TAG = MyInfoAty.class.getSimpleName();
打印log时,格式如下
XLog.d(TAG, “上传图片返回=” + strMsg);
注意
d
表示打印debug信息,e
表示打印error信息,相应地还有v
, i
, wtf
等2. 代码缩进,使用四个空格代替一个Tab
3. 命名类(classes)
采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写
| 类 | 描述 | 例如 |
| —————– | —————— | ————————————— |
| activity 类 | Activity为后缀标识 | 欢迎页面类WelcomeActivity |
| fragment类 | Fragment为后缀标识 | 首页列表类HomeListFragment |
| Adapter类 | Adapte 为后缀标识 | 新闻详情适配器NewDetailAdapter |
| 解析类 | Hlr为后缀标识 | 首页解析类HomePosterHlr |
| 公共方法类 | Tools或Manager为后缀标识 | 线程池管理类:ThreadPoolManager,日志工具类:LogTools |
| 数据库类 | 以DBHelper后缀标识 | 新闻数据库:NewDBHelper |
| Service类 | 以Service为后缀标识 | 时间服务TimeService |
| BroadcastReceive类 | 以Broadcast为后缀标识 | 时间通知TimeBroadcast |
| ContentProvider类 | 以Provider为后缀标识 | 日记DiaryProvider |
| 直接写的共享基础类 | 以Base开头 | BaseActivity,BaseFragment |
4. 命名接口(interface)
命名规则与类一样采用大驼峰命名法,多以Listener结尾,例如:interface LogoutDialogClickListener。
5. 命名方法(methods)
动词或动名词,采用小驼峰命名法例如:
onCreate()
, run()
| 方法 | 说明 |
| ———– | —————————————- |
| initXX() | 初始化相关方法,使用init为前缀标识,如初始化布局initView() |
| isXX() | checkXX()方法返回值为boolean型的请使用is或check为前缀标识 |
| getXX() | 返回某个值的方法,使用get为前缀标识 |
| processXX() | 对数据进行处理的方法,尽量使用process为前缀标识 |
| displayXX() | 弹出提示框和提示信息,使用display为前缀标识 |
| saveXX() | 与保存数据相关的,使用sav为e前缀标识 |
| resetXX() | 对数据重组的,使用reset前缀标识 |
| clearXX() | 清除数据相关的 |
| removeXXX() | 清除数据相关的 |
| drawXXX() | 绘制数据或效果相关的,使用draw前缀标识 |
6. 命名变量(variables)
采用小驼峰命名法。类中控件名称与xml布局id去掉了Activity名称之后的部分保持一致。(组件缩写_view的逻辑名称)
比如: 组件
tv_share_coupon_detailed_txt_part_one
对应的变量名tvDetailedTxtPartOne
,其中share_coupon是ShareCouponAcitivity中去掉Activity之后的类名。7. 命名常量(constants)
全部大写,采用下划线命名法。例如:
MIN_WIDTH
其中常量名开头部分有如下约定
bundle中传入数值的键值,以
EXTRA_
开头
startActivityForResult- 传入的
REQUEST_CODE
参数,以REQUEST_
开头- 返回的结果使用系统默认的常量值即可
APIKey文件中的常量以
KEY_
开头
网络请求助手类- 请求API的方法中
params
参数中的键值以PARAM_
开头- 返回结果码(一般是整型)常量以
RESULT_
开头,比如RESULT_ERROR
刷新的常量以
REFRESH_
开头以TYPE
结尾
默认值常量名以DEFAULT_
开头8. 命名资源文件(drawable folder)
全部小写,采用下划线命名法,加前缀区分。
命名模式:activity名称逻辑名称/common逻辑名称
如果有多种形态(如按钮等)除外,如btn_xx.xml(selector)
| 名称 | 功能 |
| ————— | ———————— |
| btnxx | 按钮图片使用btn整体效果(selector) |
| btn_xxnormal | 按钮图片使用btn正常情况效果 |
| btn_xxpress | 按钮图片使用btn点击时候效果 |
| bghead | 背景图片使用bg功能_说明 |
| def_searchcell | 默认图片使用def功能_说明 |
| icon_morehelp | 图标图片使用icon功能_说明 |
| seg_listline | 具有分隔特征的图片使用seg功能_说明 |
| selok | 选择图标使用se功能说明 |
命名后缀
| 后缀 | 说明 |
| ——– | ———————————– |
| unit | 在使用xml的tilemode来配图片时,element图片使用此后缀 |
| nor | 图片的状态,代表普通状态 |
| hl | 图片的状态,代表高亮状态 |
| press | 图片的状态,代表按下状态 |
| select | 图片的状态,代表其所占的view被选中 |
| unselect | 图片的状态,代表其所占的view没有被选中 |
9. 命名布局文件(XML layout)
全部小写,采用下划线命名法
1. Contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:activity功能模块.xml,例如:activity_main.xml、activity_more.xml、activitysettings.xml。
2. Fragment命名:fragment描述.xml,例如:fragmentmain.xml。
3. Dialog命名:dialog描述.xml,例如:dialoghint.xml。
4. PopupWindow命名:ppw描述.xml,例如:ppw_info.xml。
5. 列表项命名:listitem描述.xml,例如:list_itemcity.xml。
6. 包含项:include模块.xml,例如:include_head.xml、include_bottom.xml。
10. 命名动画文件(anim folder)
全部小写,采用下划线命名法,加前缀区分
| 动画命名例子 | 规范写法 |
| —————– | ——- |
| fade_in | 淡入 |
| fade_out | 淡出 |
| push_down_in | 从下方推入 |
| push_down_out | 从下方推出 |
| push_left | 推向左方 |
| slide_in_from_top | 从头部滑动进入 |
| zoom_enter | 变形进入 |
| slide_in | 滑动进入 |
| shrink_tomiddle | 中间缩小 |
11. 命名资源ID(resourcesid)
全部小写,采用下划线命名法
* strings.xml,dimen.xml等中的id命名
- 命名模式:activity名称功能模块名称逻辑名称/activity名称逻辑名称/common逻辑名称 (activity名称是指去掉了Acitivty字眼之后的名称)
- 最好可以使用common逻辑名称,因为可以被共用
- dimen.xml中,使用activity名称注释,将文件内容区分开来
- strings.xml中,使用activity名称注释,将文件内容区分开来
12. 命名layout中的id命名
命名模式为:组件缩写_模块名称_view的逻辑名称
(目前java类中组件使用的是小驼峰命名法)
组件缩写详情如下
| 组件 | 缩写 |
| ——————– | ————– |
| TextView | tv |
| ImageView | iv |
| Button | btn |
| listView | lv |
| CheckBox | chk |
| RadioButton | rb |
| LineaLayout | ll |
| RelativeLayout | rl |
| ImageButton | imgbtn |
| EditText | et |
| ExpandableList | expandablelist |
| toggleButton | togglebtn |
| Spinner | spinner |
| ProgressBar | progressbar |
| WdbView | webview |
| LayoutView | lv |
| RelativeView | rv |
| analogClock | analogclock |
| DigtalClock | digtalclock |
| DatePicker | datepicker |
| TimePicker | timepicker |
| SeekBar | seekbar |
| AutoCompleteTextView | autocompletetv |
| ZoomControls | zoomctls |
| VideoView | videoview |
| RantingBar | rantingbar |
| Tab | tab |
| ScrollView | scrollview |
| MapView | mapview |
13. 命名styles.xml
将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中
14. 命名colors.xml
- 将layout中不断重现的color提炼出来,直接以颜色名称命名,从而方便共用和自定义主题样式
- 每个layout中特定使用的color值的命名,使用activity名称_颜色名称命名
15. 约定俗成的英文缩写
程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。
下面为常见的英文单词缩写:
名称 | 缩写 |
---|---|
average | avg |
background | bg(主要用于布局和子布局的背景) |
buffer | buf |
control | ctrl |
delete | del |
document | doc |
error | err |
escape | esc |
increment | inc |
infomation | info |
initial | init |
image | img |
Internationalization | i18n |
length | len |
library | lib |
message | msg |
password- | pwd |
position | pos |
server | srv |
string | str |
temp | tmp |
window | win |