为了账号安全,请及时绑定邮箱和手机立即绑定

Android 编码规范整理

标签:
Android

简单总结了 Android 开发中的一些代码规范,供开发者参考。

1 命名规范

大驼峰命名(UpperCamelCase):每个单词的第一个字母都大写。

小驼峰命名(lowerCamelCase):除第一个单词以外,每一个单词的第一个字母大写。

命名的基本原则:

  • 不能以下划线或美元符号开始,也不能以下划线或美元符号结束。

  • 严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。但比如 shanghai 等通用的名称,可视同英文。

  • 除了常见的英文缩写,尽量避免缩写。

1.1 类 / 接口命名

  • 使用大驼峰命名法,用名词或者名词词组命名,每个单词的首字母大写。

  • 尽量避免大写,除非该缩写是众所周知的,比如 URL、HTML 等。

  • 接口命名规则与类一样采用大驼峰命名法,多以 able 或 ible 结尾,如 interface Runnable、interface Accessible

  • 若项目采用 MVP 架构,接口都以 I 为前缀,不加后缀,其他的接口采用上述命名规则。比如 interface IUserTest。

  • 常见类名命名规则如下:

描述举例
Activity 类以 Activity 为后缀登录页面类 LoginActivity
Fragment 类以 Fragment 为后缀新闻标题列表 NewsTitlelFragment
Service 类以 Service 为后缀下载服务 DownloadService
Adapter 类以 Adapter 为后缀新闻详情适配器 NewsDetailAdapter
工具方法类以 Utils 或 Manager 为后缀日志工具 LogUtils
数据库类以 DBHelper 为后缀新闻数据库 NewsDBHelper
解析类以 Parser 为后缀JSON 解析类 JsonParser
BroadcastReceiver 类以 Receiver 为后缀强制下线广播 ForceOfflineReceiver
自定义共享基础类以 Base 为前缀BaseActivity、BaseFragment
测试类以它要测试的类的名称开始,以 Test 结束UserTest
抽象类以 Abstract 或 Abs 为前缀AbsUserTest

1.2 变量命名

  • 成员变量 / 局部变量

  • 使用小驼峰命名。

  • 不推荐使用谷歌的前面加 m 的编码风格。

  • 控件变量

  • 使用小驼峰命名。

  • 建议使用 控件缩写 + 逻辑名称 格式,例如 btnLogin、etUserName 。

  • 对应的控件 id 命名为 控件缩写_逻辑名称,例如 btn_login、et_user_name 。

  • 常见控件缩写如下:

控件缩写控件缩写
TextViewtvImageButtonib
EditTextetCheckBoxcb
WebViewwvRadioButtonrb
ImageViewivSeekBarsb
VideoViewvvProgressBarpb
MediaControllermcSpinnerspr
ListViewlvSerachViewsev
GridViewgvButtonbtn
GalleryglyTimePickertp
LinearLayoutllDatePickerdp
RelativeLayoutrlScrollViewsv
FrameLayoutflRecyclerViewrv

1.3 常量命名

  • 单词每个字母均大写。

  • 单词之间用下划线连接,力求语义表达完整清楚,不要嫌名字长。

1.4 方法命名

  • 使用小驼峰命名。

  • 方法名通常是动词或动词短语,保证见名知义,尽量不适用 or 或者 and,遵循 “ do one thing ” 原则。

  • 一个方法尽量不要超过 50 行,如果方法太长,说明当前方法业务逻辑已经非常复杂,那么就需要进行方法拆分。

方法说明方法说明
initXX()初始化相关方法resetXX()重置数据
onXX()回调方法clearXX()清除数据
getXX()具有返回值的获取方法removeXX()移除数据或视图
setXX()设置方法drawXX()绘制
isXX()/hasXX()/checkXX()布尔型的判断方法displayXX()/showXX()展示、提示信息的方法
updateXX()更新数据handleXX()/processXX()对数据进行处理的方法
saveXX()保存数据

1.5 资源文件命名

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

1.5.1 布局文件命名(xml 文件)

以对应的类别名称为前缀,逻辑名称在后,以下划线连接。

布局类型布局前缀
Activityactivity_
Fragmentfragment_
Includeinclude_
Dialogdialog_
PopupWindowpopup_
Menumenu_
GridView 的item 布局文件item_grid_
ListView 的 item 布局文件item_list_

1.5.2 drawable 文件命名

以用途缩写作为前缀,逻辑名称在后,以下划线连接,区分状态时,添加状态后缀。

drawable规则
图标资源ic_
背景图片bg_
按钮图片btn_
分隔线div_
默认类def_
区分状态时,默认状态_normal
区分状态时,按下时的状态_pressed
区分状态时,选中时的状态_selected
区分状态时,不可用时的状态_disable
区分状态时,悬停效果_hovered
区分状态时,可选状态_checkable

1.5.3 动画文件命名(anim 文件夹下)

规则:动画类型_动画方向。

名称说明
fade_in淡入
fade_out淡出
push_down_in从下方推入
push_down_out从下方推出
push_left推向左方
slide_in_from_top从头部滑动进入
zoom_enter变形进入
slide_in滑动进入
shrink_to_middle中间缩写

1.5.4 values 中 name 命名

1.5.4.1 strings.xml

  • 命名格式:xx 界面 + 逻辑功能 ,如 activity_home_welcome_str。

  • 建议把同一个界面的所有 String 都在一起,方便查找。

1.5.4.2 styles.xml

  • 使用大驼峰命名法,主题可以命名为XXTheme ,控件的风格可以命名为 XXStyle 。

1.5.4.3 colors.xml

  • 命名格式:color_16进制颜色值

  • 不要为某个控件指定特定颜色,比如 bg_login ,这样非常容易重复定义颜色值。

<resources><colorname="red_FF432F">#FF432F</color><colorname="red_FF0000">#FF0000</color></resources>

1.5.4.4 dimens.xml

  • 可以和 colors.xml 中命名格式类似

  • 必要时也可用”逻辑名称_功能“ 命名

<resources><!--fontsizes--><dimenname="font_22">22sp</dimen><dimenname="font_12">12sp</dimen><!--typicalspacingbetweentwoviews--><dimenname="spacing_40">40dp</dimen><dimenname="spacing_4">4dp</dimen><!--typicalsizesofviews--><dimenname="button_height_60">60dp</dimen><dimenname="button_height_40">40dp</dimen></resources>

2 注释规范

类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /** XXX */ 格式,不得使用 // XXX 方式。

2.1 类和接口注释

类和接口统一添加 Javadoc 注释,要求至少写出创建者、创建时间以及内容简要说明。具体可以在 AS 中自己配制,Settings Editor File and Code Templates Includes File Header,格式如下:

/***author:xxx*e-mail:xxx@xx*time:2017/08/28*desc:*/

2.2 方法注释

下面几种方法,都必须添加 Javadoc 注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。

  • 接口中定义的所有方法

  • 抽象类中自定义的抽象方法

  • 抽象父类的自定义公用方法

  • 工具类的公用方法

/**方法的一句话概述*方法详述(简单方法可不必详述)*@params说明参数含义*@return说明返回值含义*@throwsIOException说明发生此异常的条件*@throwsNullPointerException说明发生此异常的条件*/

2.3 变量和常量注释

下面几种情况下的常量和变量,都要添加注释说明,优先采用右侧 // 来注释,若注释说明太长则在上方添加注释。

  • 接口中定义的所有常量

  • 公有类的公有常量

  • 枚举类定义的所有枚举常量

  • 实体类的所有属性变量

2.4 方法体内代码的注释

  • 方法内部单行注释,在被注释语句上方另起一行,使用 // 注释。

  • 方法内部多行注释使用 /* ... */ 注释。

  • 注意与代码对齐,* 及 // 与其后文字之间空一格。

  • 不要在方法内部使用 Javadoc 形式的注释。

原文链接:http://www.apkbus.com/blog-822415-72756.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消