Jul 28, 2016
Android 命名规范
团队开发中,统一命名规范,可以减少组员之间交接和沟通的成本,代码规范没有严格的好与坏,只要做到见名知义,方便梳理即可。下面是我个人和团队沿用的代码规范。其中 Android 资源命名规范,当时参考了很多资料,没留底,如有雷同,还请多多包涵。
Java 文件
采用驼峰命名法
类或接口注释
1 | /** |
Activity
以 Activity
作为后缀,如:OrderActivity
Fragment
以 Fragment
作为后缀,如:NewsFragment
Adapter
以 Adapter
作为后缀,如:NewsAdapter
常量
全部大写,单词之间用下划线分开,如:
1 | public final String CACHE_PATH = "xxx"; |
静态变量
首字母小写,加前缀s,如:
1 | public static String sName; |
成员变量
首字母小写,加前缀m,如:
1 | private int mAge; |
局部变量
首字母小写,不用加前缀,如:
1 | int age; |
控件变量
Android的控件变量,采用“逻辑功能+控件缩写”的形式,如:登陆按钮 loginBtn
常见的控件缩写对照表
组件名称 | 缩写 |
---|---|
TextView | Tv (tv) |
ListView | Lv (lv) |
EditText | Edt (edt) |
CheckBox | Chk (chk) |
Button | Btn (btn) |
ImageButton | Ibtn (ibtn) |
ToggleButton | Tbtn (tbtn) |
RadioButton | Rbtn (rbtn) |
ImageView | Iv (iv) |
ProgressBar | Pbar (pbar) |
ScrollView | Sclv (sclv) |
LinearLayout | Llyt (llyt) |
RelativeLayout | Rlyt (rlyt) |
TableLayout | Tlyt (tlyt) |
FrameLayout | Flyt (flyt) |
这里有个小细节,变量声明一般这样,static 变量放在最前面,控件变量放中间,普通成员变量放在后面,示例如下:
1 | // static 变量 |
Android 资源文件
layout
1. 布局文件
格式:界面类型_模块.xml / 界面类型_模块_描述.xml
如:activity_login.xml
, fragment_login.xml
, dialog_login.xml
2. 列表项
格式:item_控件类型_功能描述 / item_控件类型_模块_功能描述
如:item_listview_order.xml
, item_gridview_main_photo.xml
3. 包含项
格式:包含类型_模块_描述 / 包含类型_控件类型_描述
如: merge_detail_footer.xml
, include_refreshview_header.xml
4. 控件id
格式:模块名_控件类型_描述
activity_category.xml 文件下显示姓名的 TextView,其命名为 android:id="@+id/category_tv_name"
drawable
1. 静态图片
格式:
类型_common_描述:多个模块共用
类型_模块_描述:单个模块共用
类型_模块_描述_状态:配合动态风格使用
ic_common_delete.png (删除按钮,多个模块共用)
ic_accont_head.png(账户模块下的头像)
ic_theme_add_nomal.png (添加主题按钮的正常状态)
ic_theme_add_pressed.png (添加主题按钮的被按下状态)
2. 动态风格
格式:
common_描述:多个模块共用
模块_描述:单个某块共用
common_delete.xml (共用)
theme_add.xml (添加主题按钮)
string.xml
Java 文件和布局文件中,除了注释可以是中文,其他文字性说明都要放入 string.xml 中统一管理,它们在 string.xml 中的命名规范如下:
1. xml
格式:
控件id:控件有声明 id
模块_描述:控件无声明 id
1 | <string name=”account_btn_login”>登录</string> |
2. Java
格式:模块_描述
新闻详情页,用户点击收藏时提示「已收藏」:
1 | ToastUtil.show(getString(R.string.detail_collected)); |
colors.xml
只定义颜色表,colors.xml文件中只是映射颜色的一个RGBA值,而没有其它的
糟糕的例子
1 | <resources> |
使用这种格式,你会非常容易的开始重复定义RGBA值,这使如果需要改变基本色变的很复杂。同时,这些定义是跟一些环境关联起来的,如 button, 应该放到一个按钮风格中,而不是在color.xml文件中。
好的例子
1 | <resources> |
dimens.xml
像对待colors.xml一样对待dimens.xml文件,看个好的例子:
1 | <resources> |
style.xml
Android中,styles这个文件名称并没有作用,起作用的是在文件里xml的 <style>
标签。因此你可以有多个style文件,如:
- styles.xml
- style_home.xml
- styles_forms.xml