最好的规范就是没有规范,项目产出的代码如同一个人写出来的一样
为了行文流畅,先描述下常见的命名法:
- 驼峰(camel),首字母小写,比如: firstName
- 帕斯卡(Pascal)首字母大写的驼峰,比如:FirstName
- 驼峰下划线,一般用于区别某个元素的从属模块和当前功能,在ID命名中比较常见
- 小写下划线,一般用于安卓资源文件的命名,比如:zoom_in
- 全部小写,用于java包名
Activity、Fragment
按照Activity的作用,采用帕斯卡命名。Activity、fragment作为最后词语补充,参考下面图片
xml名字使用IDE自动生成的命名规则,无需修改
自定义控件类名
派生自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,这样的好处是:
- 命名冲突减少,我们在代码R.id.et_login_userName能直接定位到xml元素。
- 对应控件的作用在看代码的时候一目了然。
控件的变量名
(全局变量加m)+缩写(首字母大写)+功能名
比如 mTvUserName
、mIvUserAvatar
资源文件
png文件在添加到项目之前必须经 tinyPng压缩过
如果项目是插件结构,也就是一个宿主,有多个插件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 studio 里,我们可以这样设置头文件注释
下面是我们组里使用的头文件注释模板
- 功能:这个类是干啥的
- 描述:如何使用这个类
- 署名、日期:联系上作者
/**
* 功能:
* 描述:
* Created by 作者名 on ${DATE}.
*/