这里统一使用的命名规则作为开发组内进行沟通使用,约定俗成,仅供参考。
英文缩写原则
- 较短的单词可通过去掉"元音"形成缩写
- 较长的单词可取单词的头几个字母形成缩写
- 此外还有一些约定成俗的英文单词缩写.
若是缩减的单词容易造成误解的,应保留完整单词。
下面为常见的英文单词缩写:
名称 | 缩写 | 备注 |
---|---|---|
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 | (主要用于布局ID) |
document | doc | |
error | err | (主要用于String.xml) |
escape | esc | |
increment | inc | |
infomation | info | |
initial | init | |
image | img | (主要用于资源ID) |
Internationalization | I18N | |
length | len | |
library | lib | |
message | msg | |
password | pwd | |
position | pos | |
server | srv | |
string | str | |
temp | tmp | |
window | wnd(win) |
包(packages)
全部使用小写字母。一级包名常见的有:com/cn/org/net,二级包名以公司或个人来命名,三级包名根据应用进行命名,四级包名为模块名或层级名。
例如: com.classic.stock com.classic.stock.user
类(classes)
采用大驼峰命名法,所有单词的首字母大写,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。
例如:
类 | 描述 | 例如 |
---|---|---|
activity 类 | Activity为后缀标识 | 欢迎页面类WelcomeActivity |
Adapter类 | Adapter 为后缀标识 | 新闻详情适配器 NewDetailAdapter |
解析类 | Hlr为后缀标识 | 首页解析类HomePosterHlr |
公共方法类 | Tools、Utils或Manager为后缀标识 | 线程池管理类:ThreadPoolManager |
日志工具类:DateTools、LogUtils
数据库类 | 以DBHelper后缀标识 | 新闻数据库:NewDBHelper
Service类 | 以Service为后缀标识 | 时间服务TimeService
BroadcastReceiver类 | 以Receiver为后缀标识 | 时间通知TimeReceiver
数据共享类 | 以Provider为后缀标识 | ContentProvider
共享基础类 | 以Base开头 | BaseActivity,BaseFragment,BaseAdapter
接口(interface)
接口名称以 I 开头,如果有多个单词,每个单词首字母大写,命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runnable ;
功能 | 描述 | 例如 |
---|---|---|
协议操作 | 实现协定的方法,以I开头 | IContract |
回调 | 当做参数传入回调,多以Callback结尾 | xUtils:RequestCallback |
子进程操作 | 作为线程的事件执行,多以Runnable结尾 | DealContractRunnable |
事件监听器 | 以On开头,以Listener结尾 | 单击事件:OnClickListener |
列表单击事件OnItemClickListener
方法(methods)
采用小驼峰命名法,除首单词外,其余所有单词的首字母大写。
方法 | 描述 |
---|---|
initXX() | 初始化相关方法,使用init为前缀标识,如初始化布局initView() |
isXX() | checkXX()方法返回值为boolean型的请使用is或check为前缀标识 |
getXX() | 返回某个值的方法,使用get为前缀标识 |
processXX() | 对数据进行处理的方法,尽量使用process为前缀标识 |
showXX() | 弹出提示框和提示信息,使用show为前缀标识 |
saveXX() | 与保存数据相关的,使用save为前缀标识 |
resetXX() | 对数据重组的,使用reset前缀标识 |
clearXX() | 清除数据相关的 |
removeXXX() | 删除数据相关的 |
drawXXX() | 绘制数据或效果相关的,使用draw前缀标识 |
getXXX()、setXXX() | 成员变量的Getter、Setter方法,不含有成员变量前缀m |
参数(parameter)
采用小驼峰命名法 ,除首单词外,其余所有单词的首字母大写,尽量避免使用单字母变量,变量名表面意思能够让人知晓用途,建议用JavaDoc在前面进行注释。
类 | 描述 |
---|---|
page | 页码 |
pageSize | 每一页含有的条数 |
userName | 用户名 |
变量(variables)
采用小驼峰命名法 ,除首单词外,其余所有单词的首字母大写。
类 | 描述 | 例如 |
---|---|---|
局部变量 | 采用小驼峰命名法 | page |
全局变量(成员变量) | 采用小驼峰命名法,以m开头 | mPageSize |
常量(constants)
全部大写,单词之间用下划线分割。对于通知类,界面传递变量的常量KEY,尽量使用同一常量类进行管理,避免常量值相同造成混淆。
常量 | 描述 |
---|---|
DB_VERSION | 数据库版本 |
DB_NAME | 数据库名 |
SERVER_URL | 服务器地址 |
资源文件
用途 | 描述 | 例如 |
---|---|---|
图标图片 | 前缀+模块+描述,以ic开头 | ic_main_search.png |
背景图片 | 前缀+模块+描述,以bg开头 | bg_banner.png |
Activity Layout布局 | 前缀+模块+描述 | activity_main.xml |
fragment_main.xml
dialog_single_input.xml
Layout布局 | 模块名称+逻辑名称 | books_comment.xml
popup_listview_item.xml
Shape文件 | 前缀+模块+逻辑名称,
放在drawable文件夹下 | 按下前:
btn_login_normal.xml
按下时:
btn_login_pressed.xml
默认:
btn_login_default.xml
不可用:
btn_login_disable.xml
Selector文件 | 前缀+模块,
放在drawable文件夹下 | selector_login.xml
Layout中的id命名
建议用layout文件名称做view+逻辑名称缩写,同一布局内不要重复,使用不易混淆的已使用过的ID(避免给aaa,bbb,ccc,过短的或者没意义的命名方式),尽量使用长名称,均以"@+id"开头,页面控件名称应该和控件id名保持一致,由于使用ButterKnife工具导入,建议使用小驼峰法命名,才符合变量命名
用途 | 描述 | 例如 |
---|---|---|
图片ImageView | 控件缩写+属性+(逻辑模块,多页面使用可无) | @+id/imgHeaderListViewItem |
文本TextView | 控件缩写+属性+(逻辑模块,多页面使用可无) | @+id/tvListViewItem |
复选框CheckBox | 控件缩写+属性+(逻辑模块,多页面使用可无) | @+id/checkBoxListViewItem |
LinearLayout | 控件缩写+属性+(逻辑模块,多页面使用可无) | @+id/ll_content/@+id/layoutContent |
RelativeLayout | 控件缩写+属性+(逻辑模块,多页面使用可无) | @+id/rl_content/@+id/layoutContent |
资源文件夹的使用
手机常见分辨率:
分辨率 | 描述 |
---|---|
4:3 | |
VGA | 640*480 (Video Graphics Array) |
QVGA | 320*240 (Quarter VGA) |
HVGA | 480*320 (Half-size VGA) |
SVGA | 800*600 (Super VGA) |
5:3 | |
WVGA | 800*480 (Wide VGA) |
16:9 | |
FWVGA | 854*480 (Full Wide VGA) |
HD | 1920*1080(High Definition) |
QHD | 960*540 |
720p | 1280*720 标清 |
1080p | 1920*1080 高清 |
dpi范围 | �密度 | 分辨率 | 倍数 |
---|---|---|---|
0dpi ~ 120dpi | ldpi | HVGA | 0.75x |
120dpi ~ 160dpi | mdpi | HVGA | 1x |
160dpi ~ 240dpi | hdpi | WVGA/FWVGA/QHD | 1.5x |
240dpi ~ 320dpi | xhdpi | 720P | 2x |
320dpi ~ 480dpi | xxhdpi | 1080P | 3x |
480dpi ~ 640dpi | xxxhdpi | 1440P | 4x |
项目一般提供3x,2x图,放在响应的文件夹内,新项目使用mipmap文件夹。
图片放错容易产生的问题是? 如果将一张图片放在低密度文件夹下,那么在高密度设备上显示图片时就会被自动放大,而如果将一张图片放在高密度文件夹下,那么在低密度设备上显示图片时就会被自动缩小。 一张原图片被缩小了之后显示其实并没有什么副作用,但是一张原图片被放大了之后显示就意味着要占用更多的内存了。
例如:将android_logo.png图片移动不同位置
情况一 | 情况二 |
---|---|
drawable-xxhdpi | drawable-mdpi |
图标大小
DENSITY | SIZE | LOCATION | RATIO | SCREEN | MARGIN |
---|---|---|---|---|---|
XXXHDPI | 192×192 | drawable-xxxhdpi | 4 | 640 DPI | 12 to 16 pixels |
XXHDPI | 144×144 | drawable-xxhdpi | 3 | 480 DPI | 8 to 12 pixels |
XHDPI | 96×96 | drawable-xhdpi | 2 | 320 DPI | 6 to 8 pixels |
HDPI | 72×72 | drawable-hdpi | 1.5 | 240 DPI | 4 to 6 pixels |
MDPI | 48×48 | drawable-mdpi | 1 | 160 DPI | 3 to 4 pixels |
MDPI | 48×48 | drawable (Cupcake) | 1 | 160 DPI | 3 to 4 pixels |
LDPI | 36×36 | drawable-ldpi | 0.75 | 120 DPI | 2 to 3 pixels |
NA | 512×512 | Google Play | NA | NA | As required |
Launcher Icons 放在mipmap中
Notification Icons 放在drawable中
DENSITY | SIZE | LOCATION | RATIO | SCREEN | MARGIN |
---|---|---|---|---|---|
XXHDPI | 75×75 | drawable-xxhdpi | 3 | 480 DPI | 15 to 17 pixels |
XXHDPI | 48×75 | drawable-xxhdpi-v9 | 3 | 480 DPI | 5 to 19 pixels |
XXHDPI | 72×72 | drawable-xxhdpi-v11 | 3 | 480 DPI | 8 to 11 pixels |
XHDPI | 50×50 | drawable-xhdpi | 2 | 320 DPI | 3 to 4 pixels |
XHDPI | 32×50 | drawable-xhdpi-v9 | 2 | 320 DPI | 3 to 12 pixels |
XHDPI | 48×48 | drawable-xhdpi-v11 | 2 | 320 DPI | 5 to 6 pixels |
HDPI | 38×38 | drawable-hdpi | 1.5 | 240 DPI | 3 pixels |
HDPI | 24×38 | drawable-hdpi-v9 | 1.5 | 240 DPI | 2 to10 pixels |
HDPI | 36×36 | drawable-hdpi-v11 | 1.5 | 240 DPI | 3 to 5 pixels |
MDPI | 25×25 | drawable-mdpi | 1 | 160 DPI | 2 pixels |
MDPI | 16×23 | drawable-mdpi-v9 | 1 | 160 DPI | 1 to 6 pixels |
MDPI | 24×24 | drawable-mdpi-v11 | 1 | 160 DPI | 3 pixels |
ActionBar or Tab Bar Icons 放在drawable中
DENSITY | SIZE | LOCATION | RATIO | SCREEN | MARGIN |
---|---|---|---|---|---|
XXHDPI | 96×96 | drawable-xxhdpi | 3 | 480 DPI | 17 to 19 pixels |
XHDPI | 64×64 | drawable-xhdpi | 2 | 320 DPI | 10 to 13 pixels |
HDPI | 48×48 | drawable-hdpi | 1.5 | 240 DPI | 8 to 9 pixels |
MDPI | 32×32 | drawable-mdpi | 1 | 160 DPI | 6 to 7 pixels |