命名规则
包名
包名 | 此包中包含 |
com.xx.应用名称缩写.activity | 页面用到的Activity类 (activitie层级名用户界面层) |
com.xx.应用名称缩写.fragment | 页面用到的fragment |
com.xx.应用名称缩写.base | 基础共享的类 |
com.xx.应用名称缩写.config | 通用的配置 |
com.xx.应用名称缩写.global | 全局的监听实现类等 |
com.xx.应用名称缩写.adapter | 页面用到的Adapter类 (适配器的类) |
com.xx.应用名称缩写.util | 此包中包含:公共工具方法类(util模块名)命名与第三方的utils作区分 |
com.xx.应用名称缩写.bean | 下面可分:vo(本地类)、bo(远程类)、dto(传递引用类) |
com.xx.应用名称缩写.model | 此包中包含:模型类 |
com.xx.应用名称缩写.db | 数据库操作类 |
com.xx.应用名称缩写.view | 自定义的View类等,可通用,与app业务无关的 |
com.xx.应用名称缩写.widget | 自定义的View类等,与app业务相关的 |
com.xx.应用名称缩写.service | Service服务,后台服务 |
com.xx.应用名称缩写.receiver | BroadcastReceiver服务,接收通知 |
类名
类 | 描述 | 例如 |
Activity 类 | Activity为后缀标识 | 欢迎页面类WelcomeActivity |
Adapter类 | Adapter 为后缀标识 | 新闻详情适配器 NewDetailAdapter |
解析类 | Parser为后缀标识 | 首页解析类HomePosterParser |
工具方法类 | Util或Manager为后缀标识(与系统或第三方的Utils区分)或功能+Util | 日志工具类: LogUtil(Logger也可)打印工具类:PrinterUtil |
管理类 | Manager为后缀标识 | ThreadPoolManager |
数据库类 | 以DBHelper后缀标识 | 新闻数据库:NewDBHelper |
Service类 | 以Service为后缀标识 | 时间服务TimeServiceBroadcast |
Receiver类 | 以Receiver为后缀标识 | 推送接收JPushReceiver |
ContentProvider | 以Provider为后缀标识 | |
自定义基类 | 以Base开头 | BaseActivity,BaseFragment |
实体类 | 模块 + 类型 + 后缀(BO/VO/DTO) | 例如:订单详情实体类及订单详情内的商品实体类 OrderDetailBO、OrderGoodsBO;例如:订单列表实体类及订单列表内的商品实体类 OrderBO/OrderItemBO、OrderGoodsBO/OrderItemGoodsBO;当然,如果订单详情和订单列表内的OrderGoodsBO一致,则可以单独提出来给2个实体类通用 |
自定义view | 功能描述 + View | 例如:可以展开收缩的view,CollapsibleView |
自定义widget | 模块名 + 类型(List/Info) + Widget | 例如:订单详情内的商品列表,OrderDetailGoodsListWidget; 或者:在widget内新增order目录,放order目录下的GoodsListWidget |
接口名
- 回调事件监听接口 On + 对象 + Click/Select,例如:OnItemClick/OnMenuSelect
- 其他接口 功能描述 + Impl
方法名
方法 | 说明 |
initXX() | 初始化相关方法,使用init为前缀标识,如初始化布局initView() |
isXX() checkXX() | 方法返回值为boolean型的请使用is或check为前缀标识 |
getXX() | 返回某个值的方法,使用get为前缀标识 |
handleXX() | 对数据进行处理的方法,尽量使用handle为前缀标识 |
displayXX()/showXX() | 弹出提示框和提示信息,使用display/show为前缀标识 |
saveXX() | 与保存数据相关的,使用save为前缀标识 |
resetXX() | 对数据重组的,使用reset前缀标识 |
clearXX() | 清除数据相关的 |
removeXXX() | 清除数据相关的 |
drawXXX() | 绘制数据或效果相关的,使用draw前缀标识 |
类的属性命名
1.常量名
- 常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词
- 常量一般统一放置在config目录下的AppConfig文件内
- 同类型的常量,通常放置在同一个内部类中
- 示例参考 com.xiaoq.sample.mylib.code包下面的Appconfig
2.非常量字段名
- 非公有,非静态字段命名以m开头。
int mPackagePrivate;
private int mPrivate;
protected int mProtected;
- 静态字段命名以s开头。
private static MyClass sSingleton;
- 公有非静态字段命名以p开头。
public int pField;
- 公有静态字段(全局变量)命名以g开头。
public static int gField;
- UI控件变量命名参考 附录的 UI控件缩写表
3.量词变量后缀
- First 一组变量中的第一个
- Last 一组变量中的最后一个
- Next 一组变量中的下一个变量
- Prev 一组变量中的上一个
- Cur 一组变量中的当前变量。
- 例如:mCustomerStrFirst mCustomerStrLast
4.集合添加如下后缀:List、Map、Set
5.数组添加如下后缀:Arr
6.临时变量
- 临时变量通常被取名为i,j,k,m和n,它们一般用于整型;
- c,d,e,它们一般用于字符型;
资源文件命名规范
1.资源布局文件(XML文件(layout布局文件)):
activity_main.xml
frament_main.xml
- Dialog命名:
dialog_描述.xml,例如:dialog_hint.xml
- PopupWindow命名:
ppw_描述.xml,例如:ppw_info.xml
- 列表项命名:
item_描述.xml
- 通用列表项:
item_city.xml
- listview:
list_item_city.xml
- gridview:
grid_item_city.xml
- recyclerview:
recycler_item_city.xml
- 自定义类似listview:TabLayout:
tab_item_city.xml
- 包含项命名:
模块_(位置).xml
- 位置:top、 btm、 left、 right
例如:activity_main_btm.xml、fragment_main_top.xml
- 通用的包含项命名采用:
base_(位置)_项目名称缩写_描述.xml
- 描述:title、 content、 header、 footer
- 例如:
base_top_xxxx_title.xml、base_btm_xxxx_header.xml
- 例如:
全项目通用 base_top.xml base_btm.xml
- 自定义Widget(布局命名)
widget_ + View功能描述/模块 + 类型(list/info) + .xml
例如:订单详情内的商品列表 widget_order_detail_goods_list.xml
- 特殊自定义组件/控件
- 例如: com.xiaoq.widget.tips.TipsManager的loading布局/empty布局/重试布局
- 通用:
base_tips_loading.xml、base_tips_empty、base_tips_retry
- 各个activity内:
activity_描述_tips_loading.xml、activity_main_tips_loading.xml
- fragment:
fragment_main_tips_loading.xml
- view:
activity_main_xxx_view_tips_loading.xml、fragment_main_xxx_view_tips_loading.xml
,xxx 为view的描述
2.资源文件(图片mipmap及drawable文件夹下):
- 全部小写,采用下划线命名法,加前缀区分
- 通用规则
名称 | 功能 |
bg_head | 背景图片使用bg_功能_说明 |
def_search_cell | 默认图片使用def_功能_说明 |
ic_more_help | 图标图片使用ic_功能_说明 |
seg_list_line | 具有分隔特征的图片使用seg_功能_说明 (false)不可用效果 |
sel_ok | 选择图标使用sel_功能_说明 |
- 命名模式:可加后缀 _small 表示小图, _big 表示大图,逻辑名称可由多个单词加下划线组成
- 采用以下规则:
- 用途_模块名_逻辑名称
- 用途_模块名_颜色
- 用途_逻辑名称
- 用途_颜色
- 说明:用途也指控件类型(具体见UI控件缩写表)
- 例如:
- btn_main_home.png 按键
- divider_maket_white.png 分割线
- btn_red.png 红色按键
- btn_red_big.png 红色大按键
- divider_white.png 白色分割线
- 如果有多种形态如按钮等除外如 btn_xx.xml(selector)
- normal、pressed、disbled、checked 较常用
名称 | 功能 |
btn_xx | 按钮图片使用btn_整体效果(selector) |
btn_xx_normal | 按钮图片使用btn_正常情况效果 |
btn_xx_pressed | 按钮图片使用btn_点击时候效果 |
btn_xx_focused | state_focused聚焦效果 |
btn_xx_disabled | state_enabled (false)不可用效果 |
btn_xx_checked | state_checked选中效果 |
btn_xx_selected | state_selected选中效果 |
btn_xx_hovered | state_hovered悬停效果 |
btn_xx_checkable | state_checkable可选效果 |
btn_xx_activated | state_activated激活的 |
btn_xx_windowfocused | state_window_focused |
3.动画文件(anim文件夹下):
- 全部小写,采用下划线命名法,加前缀区分。
- 具体动画采用以下
- 规则:
模块名_逻辑名称
- 例如:
refresh_progress.xml
market_cart_add.xml
market_cart_remove.xml
- 普通的tween动画采用如下表格中的命名方式,前面为动画的类型,后面为方向
动画命名例子 | 规范写法 |
fade_in | 淡入 |
fade_out | 淡出 |
push_down_in | 从下方推入 |
push_down_out | 从下方推出 |
push_left | 推向左方 |
slide_in_from_top | 从头部滑动进入 |
zoom_enter | 变形进入 |
slide_in | 滑动进入 |
shrink_to_middle | 中间缩小 |
4.styles.xml文件的命名
- 规则:模块名+逻辑名称
main_tabBottom
order_detail_goodsItem
order_list_goodsImg
5. layout中的id命名
- 命名模式为:
View缩写_view的逻辑名称
,可以使用AndroidStudio的插件Android Studio Prettify 自动生成findViewById - 例如:tv_Sender_Mobile(展示联系人手机的TextView)
- 可参考 com.xiaoq.sample.mylib.code.CodeActivity
- 当然,全部小写的命名是最标准的,不过为了要适应Prettify插件自动生成满足要求的局部变量,调整为小驼峰命名法,并用下划线分割
附录
注意
其他未在文档内标准的规范则以AndroidStudio自动生成的为准
UI控件缩写表
控件 | 缩写 | 例子 |
LinearLayout | ll | llFriend或者mFriendLL |
RelativeLayout | rl | rlMessage或mMessageRL |
FrameLayout | fl | flCart或mCartFL |
TableLayout | tl | tlTab或mTabTL |
Button | btn | btnHome或mHomeBtn |
ImageButton | ibtn | btnPlay或mPlayIBtn |
TextView | tv | tvName或mNameTV |
EditText | et | etName或mNameET |
ListView | lv | lvCart或mCartLV |
ImageView | iv | ivHead或mHeadIV |
GridView | gv | gvPhoto或mPhotoGV |
常见英文单词缩写
名称 | 缩写 |
icon | ic (主要用在app的图标) |
color | cl(主要用于颜色值) |
divider | di(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线) |
selector | sl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector) |
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 | wnd(win) |