规范的原则:尽可能的用最少的字符而又能完整的表达标识符的含义。
目的:简洁,易懂。换句话说,一眼看上去不讨厌。
常用的命名方法,有三种:
1,驼峰命名法(小驼峰命名法):字符除首字母单词小写外,其余单词均大写。如sumApples
2,帕斯卡命名法(大驼峰命名法);字符中每个单词的首字母均大写的。如OrangleFactory
3,下划线命名法:字符中所有字母小写,每个单词使用下划线分开。如banana_tree
在Android开发中,常用命名的有:包,类,方法,变量,资源文件。
包:采用反域名规则,建议采用如下规则:
【com】.【公司名/组织名】.【项目名称】.【模块名】如:com.hansuo.fruit.module
而创建模块包时,则根据公司要求来分,模块是按照类别分,还是功能分,还是先结构后模块分,都可以。模块包名小写简洁即可。如:(Clean结构)
类:使用大驼峰命名法,如:
PearInteractor,PearBean,PearParam,PearRepository
PearContract,PearPersenterImpl
PearRepositoryImpl,PearActivity,PearFragment,PearDialog,PearService,PearPresenter,PearUtil
PineAppleReceiver(广播接收者),PineAppleDBHelper(数据库)
定义控件多以继承的控件为后缀,如SuperTextView,ScaleListView
方法:使用驼峰命名法,如:
Cantaloupe getCantaloupe()
void setCantaloupe(Cantaloupe cantaloupt)
boolean isCantaloupe()
void eatCantaloupe()
变量:可分为静态(statics),常量(constants),成员变量(member variables),普通变量(variables)
一般静态、常量、成员变量的命名以他们各自的英文首字母为首个字符的方式命名,如
static int sWatermelon, final int cWatermelon, int mWatermelon
最常用的就是普通变量,所以不做固定的样式,但还是以简洁易懂为原则命名,如
int watermelon表示数量,而List watermelons表示西瓜的集合。
如果是视图的控件,则添加后缀View或者Layout,这是一种方式;第二种方式使用控件的简写作为后缀,一般是字母的简写,如
TextView grapeTv或grapeView
Button grapeBtn或grapeView
SwiperRefreshLayout swiperRefreshLayout或grapeLayout
RecyclerView recyclerView或grapeLayout
FrameLayout grapeFl或grapeLayout
LinearLayout grapeLl或grapeLayout
除此之外,还有一些结合体,静态+常量,一般是字符全部大写,只用下划线分开每个单词,有时常量也会这样使用,如:
static final String LIKE_WATERMELON = "watermelon"
final String FLAG_WATERMELON = "watermelon"
资源文件:图片,布局,strings.xml,color.xml,dimens.xml采用下划线命名方式,style.xml采用大驼峰命名法
图片:包含美工直接做成的图片(.png,.jpg),点9图片,shape,selector,layer-list,svg
对png,jpg,点9图片,使用ic_XX_XX的命名规则,如:
ic_durian.png, ic_durian.jpg, ic_durian.9.X
对selector,shape,,layer-list,svg使用它们的类型作为前缀,如:
selector_durian.xml,shape_durian.xml,layer_durian.xml,svg_durian.xml
布局:包含布局中控件id的命名,布局的命名主要是根据使用的场景来明确样式,如:
activity_strawberry,fragment_strawberry,dialog_strawberry
item_strawberry(ListView,RecyclerView),
view_strawberry(自定义控件),layout_strawberry(局部的布局,包含include,meger,ViewStub)
布局中id命名,控件的简写_功能的描述,如:
TextView tv_grape
Button btn_grape
ImageView iv_grape
Spinner spinner
FrameLayout fl_grape或frame_layout
LinearLayout ll_grape或linear_layout
ListView lv_grape或list_view
RecyclerView rv_grape或recycler_view
string.xml,color.xml,dimens.xml,是最常用的属性值的集合,没有固定的样式,而且需要有灵活性,可随主题设置的设置而变化。目前分为两部分:共同的部分和界面特有的部分。
共同的部分:
string.xml直接使用中文的英文翻译做标识
确定 confirm(yes表示交流中的确定,submit表示提交,agree表示同意)
取消 cancel(no表示交流中的否定,quit表示放弃,disagree表示不同意)
用户名 username
密码 password
color.xml建议参考Android色板来取色,每一个颜色数量等级对应着一种颜色
所有背景颜色 backgound_grey_400(grey400对应的颜色);
所有标题栏背景颜色 toolbar_bg_blue_300
大文字标题颜色:title_large_yellow_600
中文字标题颜色:title_middle_yellow_500
文本颜色:content_yellow_400(content_text_yellow_400)
dimen.xml文字大小使用单位sp,除文字外大小使用单位dp,取值时最好去2的倍数
条目的高度:item_height_46或item_heigh(46dp)
长按钮的宽度:btn_long_width_48或btn_long_width(48dp)
短按钮的宽度:btn_short_width_24或btn_short_width(24dp)
大文字标题: title_large_20或title_large(20sp)
中问题标题:title_middle_16或title_middle(16sp)
普通文本:text_content_14或text_content(14sp)
不同的部分,尽量遵守原则:where_what_how_X(哪里_什么_怎样_属性),如:
string.xml
LemonActivity的标题为:柠檬的果园 lemon_title
LemonActivity中获取柠檬的数量:暂时没有一个柠檬了 lemon_error_nothing
LemonActivity中文本:欢天喜地吃柠檬 lemon_happ_with_lemon
color.xml
柠檬树叶子的颜色 lemon_tree_leaf_green_100
dimen.xml
每颗树之间的高度 lemon_tree_height(18dp)
界面标题的大小 lemon_text_title_size(18sp)
style.xml,主题可以命名为XXTheme,控件的风格可以命名为XXStyle,如
FruitTheme,FruitStyle
我的Github项目,欢迎watch。