本文共 4901 字,大约阅读时间需要 16 分钟。
简单总结了 Android 开发中的一些代码规范,供开发者参考。
大驼峰命名(UpperCamelCase):每个单词的第一个字母都大写。
小驼峰命名(lowerCamelCase):除第一个单词以外,每一个单词的第一个字母大写。
命名的基本原则:
shanghai
等通用的名称,可视同英文。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 |
m
的编码风格。控件缩写 + 逻辑名称
格式,例如 btnLogin
、etUserName
。id
命名为 控件缩写_逻辑名称
,例如 btn_login
、et_user_name
。控件 | 缩写 | 控件 | 缩写 |
---|---|---|---|
TextView | tv | ImageButton | ib |
EditText | et | CheckBox | cb |
WebView | wv | RadioButton | rb |
ImageView | iv | SeekBar | sb |
VideoView | vv | ProgressBar | pb |
MediaController | mc | Spinner | spr |
ListView | lv | SerachView | sev |
GridView | gv | Button | btn |
Gallery | gly | TimePicker | tp |
LinearLayout | ll | DatePicker | dp |
RelativeLayout | rl | ScrollView | sv |
FrameLayout | fl | RecyclerView | rv |
or
或者 and
,遵循 “ do one thing ” 原则。方法 | 说明 | 方法 | 说明 |
---|---|---|---|
initXX() | 初始化相关方法 | resetXX() | 重置数据 |
onXX() | 回调方法 | clearXX() | 清除数据 |
getXX() | 具有返回值的获取方法 | removeXX() | 移除数据或视图 |
setXX() | 设置方法 | drawXX() | 绘制 |
isXX()/hasXX()/checkXX() | 布尔型的判断方法 | displayXX()/showXX() | 展示、提示信息的方法 |
updateXX() | 更新数据 | handleXX()/processXX() | 对数据进行处理的方法 |
saveXX() | 保存数据 |
全部小写,采用下划线命名法。
以对应的类别名称为前缀,逻辑名称在后,以下划线连接。
布局类型 | 布局前缀 |
---|---|
Activity | activity_ |
Fragment | fragment_ |
Include | include_ |
Dialog | dialog_ |
PopupWindow | popup_ |
Menu | menu_ |
GridView 的item 布局文件 | item_grid_ |
ListView 的 item 布局文件 | item_list_ |
以用途缩写作为前缀,逻辑名称在后,以下划线连接,区分状态时,添加状态后缀。
drawable | 规则 |
---|---|
图标资源 | ic_ |
背景图片 | bg_ |
按钮图片 | btn_ |
分隔线 | div_ |
默认类 | def_ |
区分状态时,默认状态 | _normal |
区分状态时,按下时的状态 | _pressed |
区分状态时,选中时的状态 | _selected |
区分状态时,不可用时的状态 | _disable |
区分状态时,悬停效果 | _hovered |
区分状态时,可选状态 | _checkable |
规则:动画类型_动画方向。
名称 | 说明 |
---|---|
fade_in | 淡入 |
fade_out | 淡出 |
push_down_in | 从下方推入 |
push_down_out | 从下方推出 |
push_left | 推向左方 |
slide_in_from_top | 从头部滑动进入 |
zoom_enter | 变形进入 |
slide_in | 滑动进入 |
shrink_to_middle | 中间缩写 |
activity_home_welcome_str
。XXTheme
,控件的风格可以命名为 XXStyle
。命名格式:color_16进制颜色值
不要为某个控件指定特定颜色,比如 bg_login
,这样非常容易重复定义颜色值。
#FF432F #FF0000
22sp 12sp 40dp 4dp 60dp 40dp
类、类属性、类方法的注释必须使用 Javadoc 规范,使用/** XXX */
格式,不得使用 // XXX
方式。
类和接口统一添加 Javadoc 注释,要求至少写出创建者、创建时间以及内容简要说明。具体可以在 AS 中自己配制,Settings → Editor → File and Code Templates → Includes → File Header
,格式如下:
/** * author : xxx * e-mail : xxx@xx * time : 2017/08/28 * desc : */
下面几种方法,都必须添加 Javadoc 注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
/** 方法的一句话概述* 方法详述(简单方法可不必详述)* @param s 说明参数含义* @return 说明返回值含义* @throws IOException 说明发生此异常的条件* @throws NullPointerException 说明发生此异常的条件*/
下面几种情况下的常量和变量,都要添加注释说明,优先采用右侧 //
来注释,若注释说明太长则在上方添加注释。
//
注释。方法内部多行注释使用 /* ... */
注释。
注意与代码对齐,*
及 //
与其后文字之间空一格。
todo
、fixme
等这些注释模板,回车后便会出现如下注释:// TODO: 2017/8/28 需要实现,但目前还未实现的功能的说明// FIXME: 2017/8/28 需要修正,甚至代码是错误的,不能工作,需要修复的说明
if, else, for, do, while
语句一起使用,即使只有一条语句(或是空),也应该把大括号写上。else
或 catch
,则不换行。class MyClass { public void method() { if (condition()) { try { something(); } catch (ProblemException e) { recover(); } } }}
{}
,不需要换行。package
和import
语句,不换行。if/for/while/switch/do
等保留字与括号之间都必须加空格。ctrl + alt + L
格式化代码。转载地址:http://aikii.baihongyu.com/