Android 命名规范以及编码规范

时间:2021-01-13 20:06:07

1. 前言

工作以来经历几个项目组,每个人的编码风格都截然不同,总之并没有一套统一的规范去供大家参考和作为编码中的约束。很多时候我们都忽略的统一的编码规范对一个项目的重要性,有了统一的规范,代码看起来像出自一个人之手,代码的可视以及可读性会很高,不管是降低 bug 还是提高 bug 修复效率以及提升项目交接速度上都会巨大的效果。本文参考包建强前辈的《APP研发录》一书以及 李旺成前辈的 Android 编码规范

2. 命名规范

不管是类命名、变量命名、资源文件命名还是方法命名,都应该简单明了、望文生义,而不是让人对照上下逻辑去确认其代表的意思。结合实际,在此主要规范资源文件、变量、类命名以及方法命名。

2.1 Java 类命名规范

  1. Activity 命名规范:页面功能+Activity 的命名格式
  2. 自定义 View:View 功能+控件类别,如 SwitchButton
  3. Adapter 命名规范:含义+Adapter 的命名格式,如 UserListAdapter
  4. 实体类命名规范:UserEntity
  5. 工具方法类命名规范:工具大类别+Utils 或者 工具大类别+Manager
  6. Service 命名规范:含义+Service
  7. BroadcastReceiver 命名规范:含义+Receiver
  8. 数据库命名规范:含义+DB,如 UserInfoDB

2.2 资源文件命名规范

(l) layout 命名规范
1. 页面布局文件:“act_packagename_”+含义,act_usercenter_settings.xml
2. ListView 中 item 布局文件:item_含义,如 item_userlist.xml
3. Dialog 布局文件: dlg_功能名,如 dialog_payhint.xml
4. PopupWindow 布局文件:ppw_含义,如 ppw_search.xml
5. 包含项命名规范:经常我们遇到一个布局文件中包含其他布局文件,其命名:模块+位置+含义,如 act_usercenter_title.xml
6. 通用包含项命名规范:common+模块+含义,如 common_act_title.xml

(2) drawable目录下命名规范
1.全部小写,采用下划线命名法,用前缀区分,不管是图片还是xml文件都应该遵循如下规则:只在一个页面使用的资源,命名格式为:页面名类型含义为前缀,如usercenter_ic_setting.png(图标)
、usercenter_bg_red.png(背景)、usercenter_btn_red.png(按钮);对于在一个模块下多个页面使用的命名格式:模块类型含义为前缀;对于在多个模块下使用的,则命名格式:common_类型_含义
2. selector 文件命名:类型含义状态 或者 类型_含义,如 btn_setting_back_normal.xml、bg_white_five_corners.xml等等
3. 动画命名规则:模块_逻辑名,如 fade_in_from_top.xml
4. values 命名:对于颜色命名,通过现在的项目,个人不建议分模块和功能,这样容易造成重复色值的文件,所以个人建议采用:color_色值,如 color_ffffff.xml;对于 Strings,因为编译打包时候会将多个 Strings 文件合并,所以我们在项目中可以分模块建立多个 Strings 文件,页面含义_text,如 usercenter_setting_text;styles 的命名也采用:模块逻辑名

(3) 控件命名方式
首先看看常用控件的缩写,如下图:
Android 命名规范以及编码规范
控件的命名:页面命控件缩写逻辑名;同时为了方便不出错,在Activity 中定义控件变量名,可跟控件 id 名一模一样,防止出错。如 userCenterActivity_btn_setting,自定义控件也按照以上规则进行命名。

2.3 变量的命名

采用 Java 的命名规范,必须字母和下划线,首字母小写。注意:不可以用单个字母来定义变量,只有临时变量才会采用单个字母 i k j来进行命名,如 for(int i=0 ; i

2.4 方法名命名规范

如下图规则进行命名:
Android 命名规范以及编码规范
如上所示,方法名命名规范规则:操作名+操作对象 或者 操作名+含义