Android:规范命名,让合作更加愉快

xiaoxiao2021-02-28  95

每个程序员又有自己的习惯和代码风格,当工程比较小,或者合作的人比较少的时候都还好说,但碰见大工程,需要大家一起奋斗的时候,统一的命名规范重要性就体现出来了。 恩,学习Android一年多了,命名一直不太规范,今天特意转载了这篇命名规则,留作备忘。原文请戳Android命名规则。 本文在原作者基础上稍有改动, 添加了一些个人爱好。还请见谅。

标识符命名法最要有四种:

驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写下划线命名法:单词与单词间用下划线做间隔。匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。

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

名称缩写iconic (主要用在app的图标)colorcl(主要用于颜色值)dividerdi(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)selectorsl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)averageavgbackgroundBg(主要用于布局和子布局的背景)bufferbufcontrolctrldeletedeldocumentdocerrorerrescapeescincrementincinfomationinfoinitialinitimageimgInternationalizationI18Nlengthlenlibrarylibmessagemsgpasswordpwdpositionposserversrvstringstrtemptmpwindowwnd(win)

程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。

命名规范:

1 包(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名

包名此包中包含com.xx.应用名称缩写.activities页面用到的Activity类 (activities层级名用户界面层)com.xx.应用名称缩写.base页面中每个Activity类共享的可以写成一个i额BaseActivity类 (基础共享的类)com.xx.应用名称缩写.adapter页面用到的Adapter类 (适配器的类)com.xx.应用名称缩写.tools此包中包含:公共工具方法类(tools模块名)com.xx.应用名称缩写.bean(或则 com.xx.应用名称缩写.enity )此包中包含:元素类com.xx.应用名称缩写.db数据库操作类com.xx.应用名称缩写.view(或则 com.xx.应用名称缩写.ui )自定义的View类等com.xx.应用名称缩写.serviceService服务com.xx.应用名称缩写.broadcastBroadcast服务

2 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。

类描述例如activity 类Aty或者Activity为后缀标识欢迎页面类WelcomeAty.或者WelcomeActivityAdapter类Adp或者Adapter 为后缀标识新闻详情适配器NewtDetailAdp或则直接 NewDetailAdapter解析类Hlr为后缀标识首页解析类HomePosterHlr公共方法类Tools或Manager为后缀标识线程池管理类:ThreadPoolManager 日志工具类:LogTools数据库类以DBHelper后缀标识新闻数据库:NewDBHelperService类以Service为后缀标识时间服务TimeServiceBroadcastReceive类以Broadcast为后缀标识时间通知TimeBroadcastContentProvider以Provider为后缀标识直接写的共享基础类以Base开头BaseActivity,BaseFragment

3 接口(interface):命名规则与类一样采用大驼峰命名法,多以 able或ible结尾,如interface Runnable; interface Accessible

4 方法(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前缀标识

7 资源文件(图片drawable文件夹下):

如果有多种形态如按钮等除外如btn_xx.xml(selector)

名称功能btn_xx按钮图片使用btn_整体效果btn_xx_normal按钮图片使用btn_正常情况效果btn_xx_press按钮图片使用btn_点击时候效果bg_head背景图片使用bg功能说明def_search_cell默认图片使用def功能说明icon_more_help图标图片使用icon功能说明seg_list_line具有分隔特征的图片使用seg功能说明sel_ok选择图标使用sel功能说明

命名后缀:

后缀说明nor图片的状态,代表普通状态hl图片的状态,代表高亮状态press图片的状态,代表按下状态select图片的状态,代表其所占的view被选中unselect图片的状态,代表其所占的view没有被选中

8 资源布局文件(XML文件(layout布局文件)):

全部小写,采用下划线命名法 1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀: 例如:activity_main.xml、activity_more.xml

2).Dialog命名:dialog_描述.xml 例如:dlg_hint.xml

2).PopupWindow命名:ppw_描述.xml 例如:ppw _info.xml

3). 列表项命名listitem_描述.xml 例如:listitem_city.xml

4).包含项:include_模块.xml 例如:include_head.xml、include_bottom.xml

5).adapter的子布局:功能模块_item.xml 例如:main_item.xml、

9 动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。

//前面为动画的类型,后面为方向

动画命名例子规范写法fade_in淡入fade_out淡出push_down_in从下方推入push_down_out从下方推出push_left推向左方slide_in_from_top从头部滑动进入zoom_enter变形进入slide_in滑动进入shrink_to_middle中间缩小

10 资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写 名”+“变量名”。注意:页面控件名称应该和控件id名保持一致 strings.xml,colors.xml等中的id命名: strings.xml中,使用activity名称注释,将文件内容区分开来

11 layout中的id命名 命名模式为:view缩写_模块名称_view的逻辑名称 view的缩写详情如下:

控件缩 写LayoutViewlvRelativeViewrvTextViewtvButtonbtnImageButtonimgBtnImageViewmgView 或者 ivCheckBoxchkRadioButtonrdoBtnanalogClockanaClkDigtalClockdgtClkDatePickerdtPkEditTextedtTxtTimePickertmPktoggleButtontglBtnProgressBarproBarSeekBarskBarAutoCompleteTextViewautoTxtZoomControlszmCtlVideoViewvdoViWdbViewwebViRantingBarratBarTabtabSpinnerspnChronometercmtScollViewsclViTextSwitchtxtSwtImageSwitchimgSwtlistViewlVi 或则lvExpandableListepdLtMapViewmapVi

12.activity中的view变量命名

命名模式为:逻辑名称+view缩写

建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view

13.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中; 常用控件的缩写

控件布局文件中缩写代码中缩写LinearLayoutxxx_layoutxxxLLayoutRelativeLayoutxxx_layoutxxxRLayoutFrameLayoutxxx_layoutxxxFLayoutTextViewxxx_tvxxxTvEditTextxxx_etxxxEtButtonxxx_btnxxxBtnImageViewxxx_ivxxxIvCheckBoxxxx_chkxxxChkRadioButtonxxx_rbtnxxxRbtnProgressBarxxx_pbarxxxPbarListViewxxx_lvxxxLvWebViewxxx_wvxxxWvGridViewxxx_gvxxxGv

编码规范 * 代码中尽量不要出现中文。注释和除外。代码中通过strings.xml引用来显示中文。 * 控件声明放在activity级别,这样在activity其他地方可以使用。 * 在一个View.OnClickListener中处理所有的点击事件逻辑,这样看起来很集中和直观。 * strings.xml中使用%1sd等实现字符串的通配。 * 布局文件中的字体大小,都定义在dimens.xml中。 * 有关margin和padding的值也都放在dimens.xml中。 * 界面之间传值尽量使用intent方式。少用全局变量。 * 不建议在布局文件中添加点击事件。 * 数据类型转换一定要校验。 * 使用常量代替枚举。 * 实体不要在不同模块间共享,但是可以在统一模块下的不同页面共享 * 类注释一定要写,管家的方法也要写方法注释。常量尽量写注释。

转载请注明原文地址: https://www.6miu.com/read-22368.html

最新回复(0)