android命名规范

来源:互联网 发布:tensorflow可视化界面 编辑:程序博客网 时间:2024/04/30 15:29

安卓命名规范


转摘于csdn博文http://m.blog.csdn.net/article/details?id=23542617

标识符命名法

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

基本原则:尽可能用最少的字符而又能完整的表达标识符的含义。

英文缩写原则:

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

下面是一些常见的英文单词缩写:

icon——>ic
color——>cl
divider——>di
selector——>sl
average——>avg
background——>bg
buffer——>buf
control——>ctrl
delete——>del
document——>doc
error——>err
escape——>esc
increment——>inc
infomation——>info
initial——>init
image——>img
lenth——>len
library——>lib
message——>msg
password——>pwd
position——>pos
server——>srv
string——>str
temp——>tmp
window——>wnd(win)

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

命名规范

包(packages):采用反向域名命名规则,全部使用小写字母。一级包名为域名后缀,二级包名为域名名称,三级包名应该是应用的名称,司机包名为模块名或层级名。

常见的包

com.xx.应用名.activities——>页面用到的activity类com.xx.应用名.base——>页面中每个activity类共享的可以写成一个baseActivity类com.xx.应用名.adapter——>页面用到的Adapter类com.xx.应用名.tools——>公共工具方法类com.xx.应用名.unity(bean)——>元素类com.xx.应用名.db——>数据库操作类com.xx.应用名.view(ui)——>自定义view类com.xx.应用名.service——>service服务com.xx.应用名.broadcast——>Broadcast服务

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

activity类——>Activity(Aty)为后缀标识adapter类——>Adapter(Adp)为后缀标识解析类——>Hlr为后缀标识公共方法类——>Tools或Manager为后缀标识数据库类——>DBHelper为后缀标识service——>Service为后缀标识broadcastReceive——>Broadcast为后缀标识ContentProvider——>Provider为后缀标识直接写的共享基础类——>以Base开头

接口(interface):大驼峰命名法,多以able或ible结尾。

方法(method):动词或动名词,采用小驼峰命名法。

常见的方法形式
>
- initXX()——>初始化的相关方法
- isXX()——>一般返回值为boolean型
- getXX()——>返回某个值
- processXX()——>对数据进行处理
- saveXX()——>与保存数据相关的方法
- resetXX()——>对数据重组的方法
- clearXX()——>清除相关数据
- removeXX()——>清除数据
- drawXX()——>绘制数据或者效果相关的方法

变量(variable):采用小驼峰命名法。类中控件名称必须与布局id保持一致。

常量(constant):全部大写,采用下划线命名法

资源文件(drawable文件夹下):全部小写,采用下划线命名法,加前缀区分。

命名模式:activity名称_逻辑名称/common_逻辑名称

如果有多种形态如按钮等除外:

btn_xx——>按钮图片的整体效果(selector)btn_xx_normal——>按钮图片的正常情况btn_xx_press——>按钮图片的点击的效果bg_head——>背景使用db_功能_说明def_search_cell——>默认图片使用def_功能_说明icon_more_help——>图标图片使用icon_功能_说明seg_list_line——>具有分隔特征的图片使用seg_功能_说明sel_ok——>选择图标使用sel_功能_说明

资源布局文件(layout布局文件):全部小写,采用下划线命名法。

  1. contentView命名:activity默认布局,去掉后缀的activity类进行命名。不加后缀:

    功能模块.xml
    如:main.xml
    或则:activity_功能模块.xml
    如:activity_main.xml

  2. Dialog命名:dialog_描述.xml
  3. PopupWindow命名:ppw_描述.xml
  4. 列表项命名listitem_描述.xml
  5. 包含项:include_模块.xml
  6. adapter的子布局:功能模块_item.xml

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

形式:动画类型_方向

动画类型:fade(淡入淡出)、push、slide、zoom、shrink等
方向:in、out、down、left、top、enter(进入)、middle等

资源ID(resourceId):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件缩写名+变量名”。页面控件名称应该和空间id名保持一致

strings.xml、colors.xml等中的id命名:
命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称

strings.xml中,使用activity名称注释,将文件内容区分开来

layout中id命名

命名模式:view缩写_模块名称_view的逻辑名称

view缩写:

LayoutView——>lvRalativeView——>rvTextView——>tvButton——>btnImageButton——>imgBtnImageView——>ivCheckBox——>chxRadioButton——>rdoBtnanalogClock——>anaClkDigtalClock——>dgtClkDatePicker——>dtPkEditText——>ediTxtTimePicker——>tmPktoggleButton——>tglBtnProgressBar——>proBarSeekBar——>skBarAutoCompleteTextView——>autoTxtZoomControls——>zmCtlVideoView——>vdoViWebView——>webViRantingBar——>ratBarTab——>tabSpinner——>spnChronometer——>cmtScollView——>sclviTextSwitch——>txtSwtImageSwitch——>imgSwtListView——>lvExpandListView——>epdLtMapview——>mapVi

activity中的view变量的命名

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

安卓编码建议


  1. java代码中不出现中文,最多注释中可以出现中文
  2. 局部变量命名,静态成员变量命名只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写。
  3. 常量命名只能包含字母和,字母全部大写,单词之间用隔开。
  4. 图片尽量拆分成多个可重用的图片。
  5. 引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大。
  6. 处理应用全局异常和错误,将错误以邮件的形式发送给服务器
  7. 服务器端可以实现的,就不要放在客服端。
  8. 图片的.9处理。
  9. 使用静态变量方式实现界面间的共享要慎重。
  10. Log(系统名称模块名称和接口名称,详细描述)。
  11. 单元测试(逻辑测试、界面测试)。
  12. 不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否会导致message.what冲突。
  13. strings.xml中使用%1$实现字符串的通配。
  14. 如果多个activity中包含共同的ui处理,则可以提炼一个comminActivity,把通用部分交由它来处理,其他activity只要继承它就可以了。
  15. 使用button+activitygroup实现tab效果是,使用Button.setSelected(true),确保按钮处于选择状态,并使activitygroup的当前activity与该Button对应。
  16. 如果所开发的为通用组件,为避免冲突吗,将drawable/layout/menu/values目录下的文件名增加前缀。
  17. 数据一定要校验,例如,字符型转数字型,如果转换失败,一定要有缺陷值;服务器响应数据是否有效判断。
原创粉丝点击