代码命名规范:
无规矩不成方圆,一个项目必须有一个统一的命名规范,只有这样才是一个团队做出来的产品。命名规范需要注意一下几点:
- 命名规范不能太别扭
- 要清晰准确,望文知义。
- 命名规范千万不要指定太多,要做到简单易记,适可而止
具体规则如下:
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的编码规范有一下几点:
- 所有的Adapter,都要放在adapter这个包里
- Adapter绑定的数据,一律使用ArrayList<自定义序列化实体>
- 在Adapter中创建适合列表的ViewHolder实体类,并且该类统一命名为ViewHolder
- 实体类不要再不同的模块间共享,但是可以再同一个模块下的不同界面间共享。
- 为了节省内存,使用ArrayList<自定义实体类> 而不是HashMap
- 图片的处理统一使用ImageLoader或者Fresco来进行异步加载
- 简单的配置信息,比如页面的各种开关都可以保存在SharedPreferences中,对于复杂的对象,比如全局变量或者城市基础数据都要保存在本地文件中
- 尽量使用ApplicationContext代替context,否则可能会引起内存泄漏
- 数据类型转换一定要进行校验。
- 使用常量代替枚举
统一代码格式:
- 需要统一代码格式,不然在从版本控制器中拉代码的时候会出现很多错误。这个需要程序员们自己设置生成。