美文网首页规范Android技术知识Android开发
Android开发命名规范及部分图标准则

Android开发命名规范及部分图标准则

作者: kuwork | 来源:发表于2017-01-09 13:40 被阅读1612次

这里统一使用的命名规则作为开发组内进行沟通使用,约定俗成,仅供参考。

英文缩写原则

  1. 较短的单词可通过去掉"元音"形成缩写
  2. 较长的单词可取单词的头几个字母形成缩写
  3. 此外还有一些约定成俗的英文单词缩写.

若是缩减的单词容易造成误解的,应保留完整单词。

下面为常见的英文单词缩写:

名称 缩写 备注
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中

XXXHDPI 192×192 XXHDPI 144×144 XHDPI 96×96 HDPI 72×72 MDPI 48×48

Notification Icons 放在drawable中

Paste_Image.png Paste_Image.png
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

相关文章

  • Android开发命名规范及部分图标准则

    这里统一使用的命名规则作为开发组内进行沟通使用,约定俗成,仅供参考。 英文缩写原则 较短的单词可通过去掉"元音"形...

  • Android 开发规范总结

    个人总结的 Android 开发规范,其中控件缩写及 Android 资源文件命名部分不是很确定,有待商榷。Jav...

  • Android编码规范

    Android开发代码规范相关系列文章: Android命名规范 Android编码规范 Android编码规范有...

  • Android 编码规范

    1 命名规范 1.1 Android包命名规范 因为Android包目录的命名会直接影响到整个App工程后期的开发...

  • android开发编码规范

    命名规范 android包命名规范 因为android包目录的命名会直接影响到整个APP项目工程后期的开发效率和拓...

  • Android命名规范

    Android开发代码规范相关系列文章: Android命名规范 Android编码规范 俗话说:无规矩不成方圆,...

  • [iOS-Practice] 图片资源的管理

    iOS 及 Android 应用开发中,怎样命名和管理切图资源最科学?iOS 切图文件命名规范 移动应用作为面向用...

  • Android开发规范

    Android开发规范 一、命名规范 JAVA类和变量命名 1.命名使用英文单词拼接,驼峰命名法,不可使用拼音 2...

  • 技能积累

    [TOC] Android 文集 安卓开发规范(updating)1 前言2 AS规范3 命名规范4 资源文件规范...

  • 大家网Android开发规范

    大家网Android开发规范 一、命名规范 命名 遵循前缀表明类型的习惯,形如type_foo_bar.xml。例...

网友评论

    本文标题:Android开发命名规范及部分图标准则

    本文链接:https://www.haomeiwen.com/subject/skxxbttx.html