android接口类命名规范_Android开发命名规范

本文为 Crocutax 原创 , 转载请注明出处 http://www.crocutax.com

核心原则

见名知意

严格执行命名规范

全局禁用拼音

分包规范

包名全部小写,连续的单词只是简单地连接起来,不使用下划线。 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xxx(公司名),三级包名根据应用进行命名,四级包名为模块名或层级名。 例如:com.longke.qq.activity

com.xxx.activity Activity类

com.xxx.service Service

com.xxx.receiver BroadCastReceiver

com.xxx.provider ContentProvider

com.xxx.base 基类

com.xxx.adapter ViewPager/RecyclerView等适配器

com.xxx.util 各种StringUtil,NetUtil,BitmapUtil等工具类

com.xxx.view 自定义view/第三方开源控件

com.xxx.bean 各种实体类,下面可以再细分VO,PO,DTO

com.xxx.db 数据库操作类

注意:

部分特殊的第三方SDK,比如微信支付,Zxing,讯飞语言等对如果对包位置有特殊要求的,按第三方要求来

MyApplication等全局相关的配置类,放在包名目录下

命名规范

Activity / Fragment / Adapter / Bean...

类名由一个或多个单词组成,采用 大驼峰命名法

同一界面,不同类型的类,前缀必须一样,比如:HomePageActivity,HomePageFragment,HomePageListAdapter...

Listener

Listener接口监听事件的命名规范:以On开头Listener作为后缀。

具体:On+事件描述+Listener

例如:点击事件:OnClickListener

对应的调用方法:setOnClickListener()

常量

常量命名采用 : 全大写 + 下划线方式例如:

public static final int LOGIN_FLAG = 1 ;

intent标记的key以INTENT 开头 , 各个单词以_隔开,例如:

public static final String INTENT_CAR_ID = "intentCarId";

变量

变量以小驼峰式命名法,不同类型的变量又有不同的命名方式.

私有成员变量

必须以"m"开头 + 变量名

例如:

private int mThemeId = 0;

private boolean mIsOpen;

private List mUrlList;

静态成员变量

必须以"s"开头 + 变量名

private static boolean sIsOpen = false;

局部变量

小驼峰命名法

public String getUserName(){

String userName = getUserNameFromDB();

...

}

方法

方法命名规则采用小驼峰命名法例如:

onCreate() / onResume() / onRun()

getXX()返回某个值的方法

initXX() 初始化相关方法,比如初始化布局:initView()

checkXX()和isXX()方法为boolean值的时候使用is或者check为前缀

saveXX() 保存数据

clearXX()和removeXX() 清除数据

updateXX() 更新数据

processXX() 对数据进行处理

dispalyXX() 显示某某信息

对于方法的其他一些规范

方法的参数尽可能不超过4个,多余4个考虑采用builder模式或者JavaBean形式

注意单一职责原则

方法尽量避免返回null,可以考虑抛异常或空数据,比如Collections.emptyList()

类声明规范

区块划分

建议使用注释将源文件分为明显的区块,区块划分如下

常量声明区

UI控件成员变量声明区

普通成员变量声明区

内部接口声明区

初始化相关方法区

事件响应方法区

普通逻辑方法区

重载的逻辑方法区

生命周期回调方法区

内部类声明区

类成员排列通用规则

按照发生的先后顺序排列

常量按照使用先后排列

UI控件成员变量按照layout文件中的先后顺序排列

普通成员变量按照使用的先后顺序排列

方法基本上都按照调用的先后顺序在各自区块中排列

相关功能作为小区块放在一起(或者作为一个封装体引入)

重载方法永不分离,当一个类有多个构造函数,或是多个同名方法,这些函数/方法应该按顺序出现在一起,中间不要放进其它函数/方法。

资源文件命名规范

Activity对应的布局文件命名:XxxActivity--> activity_xxx.xml,比如MainActivity.java--> activity_main.xml

XML中控件命名:控件名界面名作用,例如:tv_homepage_name ,et_login_phone

图片命名,资源文件,控件id命名:activity名称+功能名称(背景bg,按钮bt,图片控件iv等)+自己名称

RecyclerView / ListView中的item布局文件命名规范:以item_list作为前缀,以页面名称作为中缀,以列表描述作为后缀。具体:"item_list_"+页面名称+列表描述,例如:item_list_login_users.xml

Dialog布局文件命名规范:以dialog作为前缀,如果是通用的dialog则以common作为中缀以功能描述作为后缀。如果是对应页面定制的dialog,以页面描述作为中缀,dialog描述作为后缀。

具体:

通用的dialog:dialog+common+功能描述,例如dialog_common_hint.xml

指定页面的dialog:dialog+页面名称+功能描述,例如dialog_login_pwd_error.xml

values下文件命名

strings.xml

直接以对应的内容的英文单词组合命名.例如:

购票

景区列表

colors.xml

具体:页面+"_"+描述+颜色名称,例如:

登录页面登录按钮字体颜色

#000000

当然还有一些APP主题色,规范为:common_描述 ,例如:

#33AACC

dimens.xml文件命名

16dp

16dp

drawable目录下资源文件命名规范:

selector文件

以selector作为前缀,以某个页面的作为中缀如果是多个页面就以模块名称作为中缀或者是项目通用的就以common作为中缀,以功能描述作为后缀。

具体:

selector+页面名称+功能描述

selector+模块名称+功能描述

selector+common+功能描述

例如:

登陆页面的确认按钮:selector_login_confirm_btn.xml(login为页面名称)

所有支付模块购买的按钮:selector_pay_buy_btn.xml(buy为模块名称)

所有通用按钮的背景:selector_common_btn_bg.xml

shape图形

以shape 作为前缀,如果是通用的以common作为中缀,如果是单独页面的以页面名称作为中缀,或者以模块名称作为中缀,以功能描述作为后缀。

具体形式和selector一样。

图片资源

图片资源命名规范 全部小写,采用下划线命名法,加前缀区分 命名模式:可加后缀 _small 表示小图, _big 表示大图,逻辑名称可由多个单词加下划线组成,采用以下规则:

用途_模块名_逻辑名称

用途_模块名_颜色

用途_逻辑名称

用途_颜色

icon图片资源以ic开头;

具体: 前缀+""+页面名称+""+描述 (如果页面和描述一致的则不用重复)

欢迎页面背景图 bg_welcome.png

登录页面 登录按钮背景 bg_login_btn.png

btn_main_home.png 按键

divider_maket_white.png 分割线

ic_edit.png 图标

bg_main.png 背景

btn_red.png 红色按键

btn_red_big.png 红色大按键

ic_head_small.png 小头像

bg_input.png 输入框背景

divider_white.png 白色分割线

anim目录

全部小写,采用下划线命名法,加前缀区分。具体动画采用以下规则:

模块名_逻辑名称

逻辑名称

refresh_progress.xml

market_cart_add.xml

market_cart_remove.xml

普通的tween动画采用如下命名方式:

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

动画命名例子 描述

fade_in 淡入

fade_out 淡出

push_down_in 从下方推入

push_down_out 从下方推出

push_left 推向左方

slide_in_from_top 从头部滑动进入

zoom_enter 变形进入

slide_in 滑动进入

shrink_to_middle 中间缩小

其他注意事项

定义类或者接口 首行留空格,末尾不留;其次每个逻辑分区都要留单行空格(除普通常量定义外)

定义类或者接口变量时,请使用基类或者顶层接口定义变量

自行控制类、接口、及其成员的访问权限,尽量缩小访问权限

类如果不是为扩展而设计的请加final修饰符

遇到switch语句时,酌情考虑将每个case语句拆分成单个函数调用

接口定义不加“I”前缀,实现添加"impl"后缀,如果有必要请提供默认的实现和其它实现 (默认实现:Default+接口名+impl,其它实现 :具体扩展功能 + 接口 + impl)

具有controller功能的类或者接口定义 都以 功能+“manager” 形式定义

所有表示层设计的实体定义形式为 : 功能+“model”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值