android自用规范一:资源命名篇

最好的规范就是没有规范,项目产出的代码如同一个人写出来的一样
为了行文流畅,先描述下常见的命名法:

  1. 驼峰(camel),首字母小写,比如: firstName
  2. 帕斯卡(Pascal)首字母大写的驼峰,比如:FirstName
  3. 驼峰下划线,一般用于区别某个元素的从属模块和当前功能,在ID命名中比较常见
  4. 小写下划线,一般用于安卓资源文件的命名,比如:zoom_in
  5. 全部小写,用于java包名

Activity、Fragment

按照Activity的作用,采用帕斯卡命名。Activity、fragment作为最后词语补充,参考下面图片
xml名字使用IDE自动生成的命名规则,无需修改

android自用规范一:资源命名篇_第1张图片
fragment以此类推

自定义控件类名

派生自View的,选择View结尾
派生自ViewGroup的,选择Layout结尾

控件ID

按照 控件缩写名_模块名_功能名,采用驼峰下划线命名
原生的控件我们采用缩写名,自定义控件参考它继承的父类名。比如自定义控件ZXCustomLayout的父类是RelativeLayout,则其前缀缩写是 rl

原生控件全名 缩写
View vw
TextView tv
EditText et
ImageButton ib
Button btn
ImageView iv
ListView lv
GridView gv
ProgressBar pb
SeekBar sb
RadioButtion rb
CheckBox cb
ScrollView sv
LinearLayout ll
FrameLayout fl
RelativeLayout rl
Recyclerview rv
WebView wv
VideoView vv
Spinner spn
ToggleButton tb

拿登陆打比方:et_login_userName、et_login_password、 btn_login_submit,这样的好处是:

  1. 命名冲突减少,我们在代码R.id.et_login_userName能直接定位到xml元素。
  2. 对应控件的作用在看代码的时候一目了然。

控件的变量名

(全局变量加m)+缩写(首字母大写)+功能名
比如 mTvUserNamemIvUserAvatar

资源文件

png文件在添加到项目之前必须经 tinyPng压缩过

android自用规范一:资源命名篇_第2张图片
此类资源涵盖res下所有文件夹。
如果项目是插件结构,也就是一个宿主,有多个插件Moudle,建议资源文件加上插件的缩写作为前缀:插件名称homeworkhw_zoom_in.xml

避免资源文件重名原因

这些文件的命名优先参考** 描述当前资源的特性 ,没啥好描述的就使用 资源在所属模块的作用,采用小写下划线**命名,下面是一些例子

  • 一个缩放动画:zoom_in.xml

  • 一个圆角方形灰边的形状:round_square_frame_gray.xml

  • 一个按钮的背景,按下变灰,不按透明:selector_transparent_gray.xml

  • 一个图片:arrow_left_gray.png,描述顺序按照特征显著程度递减
    好处是按照特征方便归类,白色朝左的箭头我们就可以在arrow_left_*下面找
    下图我们首先注意到他是一个箭头,然后朝左的,其次颜色好像是灰色的。

    一个箭头、朝左、灰色

  • 一个不好描述的图片:game_bg
    这种资源一般作用场景单一,复用模块比较少,我们就按照资源在所属模块的作用原则来描述

    android自用规范一:资源命名篇_第3张图片
    实在不知道咋形容

善用模板增加可阅读性

下面两个类,对于使用人来说,哪个更直观?


android自用规范一:资源命名篇_第4张图片
三无产品.png
android自用规范一:资源命名篇_第5张图片
头文件注释.png

在android studio 里,我们可以这样设置头文件注释

android自用规范一:资源命名篇_第6张图片
android studio设置头文件.jpg

下面是我们组里使用的头文件注释模板

  1. 功能:这个类是干啥的
  2. 描述:如何使用这个类
  3. 署名、日期:联系上作者
/**
 * 功能:
 * 描述:
 * Created by 作者名 on ${DATE}.
 */

你可能感兴趣的:(android自用规范一:资源命名篇)