Android资源命名规范

#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. 注释

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

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

*行注释

*代码块注释

*文档注释

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,591评论 18 139
  • 文章来自https://github.com/Blankj/AndroidStandardDevelop#安卓开发...
    小庄bb阅读 747评论 0 1
  • 还记得刚开始coding的时候,命名都是汉语拼音,所以有的时候想看懂它的意思,就要读一遍甚至好几遍才知道,这还是在...
    leo62阅读 8,830评论 2 19
  • Android 编码规范 1. 前言 这份文档是 Google Java Code Style 的译文,并稍有添加...
    人失忆阅读 442评论 0 3
  • Android编码规范 源文件基础 文件名 源文件以其最顶层的类名来命名,大小写敏感,文件扩展名为.java。 文...
    呼呼哥阅读 930评论 0 0