Android资源命名规范

2017-12-13  本文已影响0人  丿丶奶爸

#Android编码规范

##导语

>写代码如同写文章,作为文如其人,代码可以说是开发的脸面,写出简介规范的代码对个人,对团队都是非常重要的.对个人而言,简介规范的diamante不仅体现自己的专业性和技术水平,而且能够赢得别人的赞赏;对团队而言,团队成员遵循统一的规范,能够更好的维护代码库的稳定和谐.

---

#1. 命名规范

*分包

> 一个独立的功能,或者一个独立的模块定义在同一个包中,activity界面2个及以上,建议单独存放一个包

*包名

>包名命名规范:包名一律小写,采用如下规则:【com】.【公司名/组织名】.【项目名称】.【模块名】,例如:com.bidostar.xxx

#### 常见的包分层结构如下:

1.com.xx.应用名称缩写.模块.activity    页面用到的Activity类 (activitie层级名用户界面层)

2.com.xx.应用名称缩写.模块.fragment 页面用到的fragment

3.com.xx.应用名称缩写.模块.adapter    页面用到的Adapter类 (适配器的类)

4.com.xx.应用名称缩写.模块.util    此包中包含:公共工具方法类(util模块名)命名与第三方的utils作区分

5.com.xx.应用名称缩写.模块.bean    下面可分:vo(本地类)、bo(远程类)、dto(传递引用类)

6.com.xx.应用名称缩写.模块.model    此包中包含:模型类

7.com.xx.应用名称缩写.模块.presenter    此包中包含中介类

8.com.xx.应用名称缩写.模块.view    此包中包含UI控制类

9.com.xx.应用名称缩写.模块.contract    此包中包含契约类

10.com.xx.应用名称缩写.模块.db    数据库操作类

11.com.xx.应用名称缩写.模块.widget    自定义的View类等,与app业务相关的

12.com.xx.应用名称缩写.模块.service    Service服务,后台服务

13.com.xx.应用名称缩写.模块.receiver    BroadcastReceiver服务,接收通知

#### 例如登录模块

![登录功能](https://i.imgur.com/pxwN6D8.png)

*类名

##类名命名规范

>类名一律采用驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。

1.Activity 类    Activity为后缀标识 例如:欢迎页面类WelcomeActivity

2.Adapter类  Adapter 为后缀标识 例如:新闻详情适配器 NewDetailAdapter

3.工具方法类 Util为后缀标识(与系统或第三方的Utils区分)或功能+Util  例如:日志工具类 LogUtil(Logger也可)

4.管理类   Manager为后缀标识 例如:  LocationManager

5.数据库类    以DBHelper后缀标识 例如:新闻数据库NewDBHelper

6.Service类  以Service为后缀标识   例如:时间服务JPushService

7.Receiver类 以Receiver为后缀标识  例如:推送接收JPushReceiver

8.ContentProvider 以Provider为后缀标识

9.自定义基类 以Base开头   例如:BaseActivity,BaseFragment

10.实体类   模块 +  Bean 例如:UserBean

11.自定义view   功能描述 + View 例如:可以展开收缩的view,CollapsibleView

12.接口类 以I开头  例如:IUserLogin

13.实现类 以Impl结尾 例如:UserLoginImpl

#### 例如登录模块

![类名命名](https://i.imgur.com/zlvptjf.png)

*方法名

> 方法名通俗易懂

1.initXX()    初始化相关方法,使用init为前缀标识,如初始化布局initView()

2.isXX() checkXX()    方法返回值为boolean型的请使用is或check为前缀标识

3.getXX() 返回某个值的方法,使用get为前缀标识

4.handleXX()  对数据进行处理的方法,尽量使用handle为前缀标识

5.displayXX()/showXX()    弹出提示框和提示信息,使用display/show为前缀标识

6.saveXX()    与保存数据相关的,使用save为前缀标识

7.resetXX()   对数据重组的,使用reset前缀标识

8.clearXX()   清除数据相关的

9.removeXXX() 清除数据相关的

10.drawXXX()   绘制数据或效果相关的,使用draw前缀标识

*类属性名

>类属性名:

1.常量名

常量名命名模式为CONSTANT_CASE,全部字母大写,用下划线分隔单词

同类型的常量,通常放置在同一个内部类中

2.非常量字段名

非公有,非静态字段命名以m开头。 例如:int mUserAge;

3.JavaBean中的字段必须声明Private,并且定义getter/setter方法

4.静态字段命名以s开头。 private static UserBean sUserBean

5.集合添加如下后缀:List、Map、Set 例如:UserList

6.数组添加如下后缀:Arr 例如 UserArr

*xml文件名

>XML文件名

1.layout布局文件 activity_模块以activity开头 例如:用户列表activity_login.xml

2.fragment模块以fragment开头 例如用户信息:fragment_user_info.xml

3.Dialog命名:dialog描述.xml,例如:dialog_hint.xml

4.PopupWindow命名:ppw_描述.xml,例如:ppw_info.xml

5.列表项命名:模块item描述.xml

6.通用列表项:base_item_city.xml

7.listview:模块描述_list_item.xml

8.gridview:模块描述_grid_item.xml

9.recyclerview:模块描述_recycler_item_city.xml

10.自定义类似listview:TabLayout:模块描述_tab_item.xml

*资源文件名

>资源文件名全部小写,采用下划线命名法,加前缀区分,如果有多种形态 btn_xx.xml(normal、press、unselect、select)

>

>资源文件一定要放入规定的文件夹下,宽高/大小在dimens.xml文件中定义,字符串在strings.xml文件中定义,颜色值colors.xml文件中定义

>

> 命名模式:可加后缀 _small 表示小图, _big 表示大图,逻辑名称可由多个单词加下划线组成

1. ic:主要用于布局和子布局的图标 ic_模块描述 例如:ic_back.png

2. anim:用于定义动画文件 anim_描述xxx.xml 例如:anim_top_in.xml

3. selector:状态选择器或者shape文件:描述selector_xxx.xml

4. background背景文件:bg_描述_xxx.xml 例如:bg_round_blue.xml

5. image:主要用于静态图片 img_描述.png 例如:img_user_header.png

6. dimens:用于定义view控件的宽高,字体大小 宽高用dp,字体用sp,例如:dp_2/sp_2

7. color:用于定义颜色值 color_颜色值 例如:color_FFFFFF

*layout中id名

> layout中的id命名一律采用小写字母,view缩写+逻辑名称

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

| -----------------:|----------------------:|----------:|

| LinearLayout      | ll                     |mLlFriend     |

| RelativeLayout    | rl                      |mRlMessage |

| FrameLayout         | fl                      |mFlCart     |

| TableLayout         | tl                      |mTlCart     |

| Button         | btn                      |mBtnCart     |

| TextView         | tv                      |mTvCart     |

| EditText         | et                      |mEtCart     |

| ListView         | lv                      |mLvCart     |

| GridView         | gv                      |mGvCart     |

...以此类推

*library库名

> library库名 第三方库统一采用xxxLibrary格式命名 例如:ZxingLibrary

> library的定义:第三方的依赖库,或者是自行写的提供一些共用API

1.library统一管理,例如即时判项目,所有的library都在librarys文件夹中定义

*module模块名

> module模块名模块统一采用xxxModule格式命名 例如:CarModule

> module定义:根据模块的独立性,或者模块中包含功能的多少来适当的抽取

1.所有的module统一管理,例如即时判项目所有的module都在mudules文件夹中定义

#2. 注释

> 注释就是让编码器不编译(不执行),在代码的编写过程中我们需要对一些程序进行注释,除了自己方便阅读,更为别人更好理解自己的程序,所以我们需要进行一些注释,可以是编程思路或者是程序的作用,总而言之就是方便自己他人更好的阅读。

####按照阿里编码规约

*行注释

*代码块注释

*文档注释

上一篇下一篇

猜你喜欢

热点阅读