Android命名规范

参考:
http://blog.csdn.net/vipzjyno1/article/details/23542617
http://www.jb51.net/article/38796.htm
http://www.cnblogs.com/shortboy/archive/2012/06/20/2556217.html
http://angrycode.cn/archives/669

在一个资源文件比较多的Android项目中,能否对标识符进行正确的命名关系到项目以后的可读性和可维护性,这点在团队开发中尤其重要。刚开始学习Android的时候,总是喜欢随意命名,对自己来说可能问题还不是很大,而对那些想去阅读自己代码的人会造成不小的麻烦。甚至在一个月两个月过后,连自己都不知道当初定义的资源文件代表什么意思。以下是个人认为一种比较好的命名方式:

1. layout命名方式

  • ContentView(使用setContentView()) :
    对于Activity:activity_功能模块.xmlactivity_功能模块_逻辑或描述.xml。例如登录页面activity_login.xml,关于页面activity_about.xml
    对于Fragment:fragment_功能模块fragment_功能模块_逻辑或描述.xml。例如fragment_login.xml,fragment_main_news.xml
  • 列表项:
    list_item_功能模块_逻辑或描述.xml。例如主页中的新闻列表页,list_item_main_news.xml;新闻收藏列表,list_item_user_favorite.xml。
  • PopupWindow:
    ppw_功能模块_逻辑或描述.xml。例如主页底部仿IOS弹出框,ppw_main_more_share.xml
  • Dialog:
    dialog_功能模块.xmldialog_功能模块_逻辑或描述.xml。例如通用对话框,dialog_common.xml
  • 包含项:
    include_功能模块.xmlinclude_功能模块_逻辑或描述.xml。如果是十分通用的比如说自定义样式的titlebar 可以采用include_common_titlebar.xml

2. layout中的id命名方式

View缩写_模块名称_View的逻辑名称

常用的view缩写如下表所示:

View缩写
LinearView,LinearLayoutlv
RelativeView,RelativeLayoutrv
FrameLayoutfv
TextViewtv
WebViewwv
ImageViewiv
ImageButtonibtn
Buttonbtn
CheckBoxckb
RadioButtonrbtn
RadioGrouprg
ListViewlist
GridViewgv
SeekBarsbar
ProgressBarpbar
EditTextedt

3. Drawable、Anim命名方式

  • 静态:
    背景:bg_模块_描述.png,这种图片一般那些比较大的图片,如作为某个activity的背景等
    按扭:btn_模块_描述.png,这种图片一般用在按扭上,而且这种按扭没有其它状态,游戏开发用得比较多
    图标:ic_模块_描述.png,这种图片一般用于单个图标,如九宫格上的图标,listview上的小图标等

    例如:
    icon_main_pwd.png:登录页面密码输入框前面的icon标识,相当于label
    bg_common.png:一张通用背景图

  • 动态:
    sel_模块_逻辑或描述.png(也可以用bg_描述_状态1[_状态2]这种格式)

    例如:
    sel_common_btn.xml,表示通用的按钮点击效果,这个selector使用到的两张静态图片用命名方式为:
    ic_模块_逻辑或描述_normal.png
    ic_模块_逻辑或描述_focused.png
    ic_模块_逻辑或描述_pressed.png

  • 动画
    anim_模块_逻辑或描述.xml

    例如:
    anim_common_slide_left.xml

常用的Drawable缩写如下表所示:

Drawable缩写说明
iconic主要用于app的图标
backgroundbg布局和子布局的背景
selectorsel按钮或ListView中的多种点击效果
dividerdiv分隔线
colorcolor颜色值

4. 包(Package)命名方式

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

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

5. 类(Class)命名方式

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

描述举例
Activity类以Activity为后缀标识欢迎页面类WelcomeActivity
Adapter类以Adapter为后缀标识新闻详情适配器NewDetailAdapter
公共方法类以Tools或Manager为后缀标识线程池管理类ThreadPoolManager,日志工具类LogTools
数据库类以DBHelper为后缀标识新闻数据库类NewDBHelper
Service类以Service为后缀标识时间服务TimeService
BroadcastReceiver类以Broadcast为后缀标识时间通知TimeBroadcast
ContentProvider类以Provider为后缀标识
直接写的共享基础类以Base开头BaseActivity,BaseFragment

6. 接口(Interface)命名方式

命名规则与类一样采用大驼峰命名法,多以ableible结尾

例:
Interface Runnable
Interface Accessible

7. 方法(Methods)命名方式

动词或动名词,采用小驼峰命名法。例如:onCreate(),run()。

方法说明
initXX()初始化相关方法,使用init为前缀标识,如初始化布局initView()
isXX() 或 checkXX()方法返回值为boolean型的使用is或check为前缀标识
getXX()返回某个值的方法,使用get为前缀标识
processXX()对数据进行处理的方法,尽量使用process为前缀标识
displayXX()弹出提示框和提示信息,使用display为前缀标识
saveXX()与保存数据相关的,使用save为前缀标识
resetXX()对数据重组的,使用reset前缀标识
clearXX() 或 removeXXX()清除数据相关的
drawXXX()绘制数据或效果相关的,使用draw前缀标识

8. 变量(Variables)命名方式

  • 采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。
  • 用统一的量词。通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。
    例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表说明
First一组变量中的第一个
Last一组变量中的最后一个
Next一组变量中的下一个
Prev一组变量中的上一个
Current一组变量中的当前变量

9. 常量(Constants)命名方式

全部大写,采用下划线命名法。

例如:
MIN_WIDTH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值