Android 命名规范和编码规范

时间:2021-01-23 20:05:43

代码命名规范:

无规矩不成方圆,一个项目必须有一个统一的命名规范,只有这样才是一个团队做出来的产品。命名规范需要注意一下几点:

  • 命名规范不能太别扭
  • 要清晰准确,望文知义。
  • 命名规范千万不要指定太多,要做到简单易记,适可而止

具体规则如下:

Java类文件命名规范:

  • Activity命名规范,以Activity作为后缀。如AddCustomActivity
  • Adapter命名规范,以Adapter作为后缀。如AddCustomAdapter
  • Entity命名规范,大多以Entity作为后缀,但是注意的是类似User是全局变量不受此约束。

资源文件命名规范

layout目录下的文件命名规范:

  • 页面布局文件:已act_为前缀,以Activity所在的Package作为中缀,以Activity的名称去掉Activity之后作为后缀。小写
  • ListView中的item布局文件:以item_作为固定前缀,列表项名称作为后缀。小写
  • Dialog布局文件:以dlg_作为固定前缀,Dialog的功能名称为后缀。小写

drawable目录下的文件命名规范:

  • 对于只在一个界面使用的资源,就该以该界面的名称作为前缀
  • 对于只在一个模块下多个页面使用的资源,就该以该模块作为前缀
  • 对于在各个模块,各个界面都有可能使用到的资源,就该以common作为前缀

Java类中的孔家对象命名规范

  • 控件类型缩写+控件的逻辑名称(首字母大写)

控件缩写如下图:

控件缩写
LayoutView lv
RelativeView rv
TextView tv
Button btn
ImageButton img
ImageView iv
CheckBox chk
RadioButton rb
DatePicker dp
EditText et
TimePicker tp
toggleButton tb
ProgressBar pb
WebView wb
RantingBar rb
Tab tab
ListView lv
MapView mv


Layout中的控件对象的命名规范:

  • 和Java中相对应的控件名称保持一致。

string.xml中常量的命名规范:

  • 用该常量的Activity名称作为前缀,控件名称作为后缀。如果string中的常量要在java代码中使用,可能出现在代码的任何地方,并可能涉及和公共模块和孔家相关,则以common_作为前缀
  • 最好每一模块有一个对应的string.xml文件,命名规则如下:string_作为前缀,模块作为后缀

常量命名:

  • 只能包含字母和下划线,字母全为大写,单词之间要用下划线隔开

Android编码规范:

  • 要分门别类的存放各种类
  • 要把控件声明在Activity级别
  • Layout中使用的常量要在string.xml中定义
  • Layout中所有控件的字体大小,都要定义在dimens.xml中
  • 在Activity中定义新的周期,将onCreate分为:1.初始化变量,2.加载Layout布局文件和初始化控件,3.调用MobileAPI。实现单一原则
  • 坚持使用一种JSON解析工具,fastJSON
  • 页面之间传值,坚持使用Intent携带序列化实体数据进行传递,禁止使用全局变量进行传值
  • 为控件添加事件,统一格式,不实现各种接口,只允许使用控件单独实现接口的方式
  • Activity中不要嵌套内部类,尽量独立出来,并且根据功能放到特定的包里
  • Adapter的编码规范有一下几点:
  1. 所有的Adapter,都要放在adapter这个包里
  2. Adapter绑定的数据,一律使用ArrayList<自定义序列化实体>
  3. 在Adapter中创建适合列表的ViewHolder实体类,并且该类统一命名为ViewHolder
  • 实体类不要再不同的模块间共享,但是可以再同一个模块下的不同界面间共享。
  • 为了节省内存,使用ArrayList<自定义实体类> 而不是HashMap
  • 图片的处理统一使用ImageLoader或者Fresco来进行异步加载
  • 简单的配置信息,比如页面的各种开关都可以保存在SharedPreferences中,对于复杂的对象,比如全局变量或者城市基础数据都要保存在本地文件中
  • 尽量使用ApplicationContext代替context,否则可能会引起内存泄漏
  • 数据类型转换一定要进行校验。
  • 使用常量代替枚举

统一代码格式:

  • 需要统一代码格式,不然在从版本控制器中拉代码的时候会出现很多错误。这个需要程序员们自己设置生成。