目录
[TOC]
开发工具
- 尽量使用最新版的IDE进行开发
- 编码格式统一为UTF-8
- 文件编辑完后:
- .java、.xml等文件后一定要格式化
- 基本格式方面使用 AS 默认模板即可
- .java文件需删除多余的import,减少警告出现
- 进行代码规范检查
- 插件:Alibaba Java Coding Guidelines
- 代码Review
- .java、.xml等文件后一定要格式化
包命名规范
- 包名全部小写字母,连续的单词只是简单地连接起来,不使用下划线,
- 一级包名为顶级域名,通常为com,edu,gov,net,org等,
- 二级包名,可以是公司域名或者个人命名,
- 三级包名根据应用进行命名,
- 四级包名为模块名或层级名。
- 注意:全部使用小写字母
编码规范
- 架包引入
- 去除重复包
- 进行二次封装
- 命名
- 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
- 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
- 注意:
- 即使纯拼音命名方式也要避免采用。但alibaba、taobao、youku、hangzhou等国际通用的名称,可视同英文。
- 类编辑规范
- 注释
-
类注释
/** * @projectName ${PROJECT_NAME} * @packageName ${PACKAGE_NAME} * @className ${NAME} * @date ${DATE} * @author coderName * @desc */
-
方法注释
/** * */
-
行内注释
//desc /*desc*/
-
- 命名规范
-
class 类
- Application类
- 以Application为后缀,
- eg:BaseApplication
- activity类,
- 以Activity为后缀,
- eg:LoginActivity
- fragment类,
- 以Fragment为后缀,
- eg:TabFragment
- service类,
- 以Service为后缀,
- eg:DownloadService
- BroadcastReceiver类
- 以Broadcast为后缀,
- eg:DownloadBroadcast
- ContentProvider类
- 以Provider为后缀,
- eg:DownloadProvider
- adapter类,
- 以Adapter为后缀,
- eg:UserMsgAdapter
- 工具类,
- 以Utils为后缀,
- eg:StringUtils
- 管理类,
- 以Manager为后缀,
- eg:ThreadPoolManager
- 接口类,
- 以I为前缀,
- eg:IApi
- 接口实现类,
- 以Impl为后缀,
- eg:ApiImpl
- 基础类,
- 以Base为前缀,
- eg:BaseActivity
- 实体类,
- 以Bean为后缀,
- eg:UserBean
- 以Entity为后缀,
- eg:UserEntity
- 监听类,
- 以On为前缀,Listener为后缀
- eg:OnClickListener
- 常量类
- 以Constant为后缀
- eg:UserConstant
- 注意:
范围型的常量用枚举类定义,而不要直接用整型或字符,这样可以减少范围值的有效性检查
-
eg:
public enum CouponType { // 现金券 @SerializedName("1") CASH, // 抵用券 @SerializedName("2") DEBIT, // 折扣券 @SerializedName("3") DISCOUNT }
- Application类
-
variable 变量
- 公开常量:
- 定义为静态final,名称全部大写。
- eg:
- public static final String KEY_XXX="";
- public static final String VALUE_XXX="";
- 静态变量:
- 以s开头
- eg:
- private static int sAge = 0;
- 非静态的私有变量、protected的变量:
- 以m开头
- eg:private Intent mItent;
- 以m开头
- View变量:
- 以mView名称/mView缩写为前缀,
- 基本格式:m + 类型名称/缩写 + 功能
- eg:private Button mBtnCancel;
- 方法参数:
- 以p开头
- eg:private void getData(int pUserId){};
- 以p开头
- 公开常量:
-
method 方法
- 布尔型判断的方法,
- 以is或has为前缀
- eg:isAdmin()
- 以is或has为前缀
- 初始化方法,
- 以init为前缀,
- eg:initView()
- 以init为前缀,
- 弹出信息\提示框
- 以display开头,
- eg:displayError()
- 以display开头,
- 按钮点击方法,
- 以to开头,
- eg:toLogin()
- 以to开头,
- 设置方法,
- 以set开头,
- eg:setData()
- 以set开头,
- 具有返回值的获取方法,
- 以get开头,
- eg:getData()
- 以get开头,
- 通过异步加载数据的方法,
- 以load开头,
- eg:loadData()
- 以load开头,
- 保存数据方法
- 以save为前缀,
- eg:saveData()
- 以save为前缀,
- 对数据重组的方法
- 以reset为前缀,
- eg:resetData()
- 以reset为前缀,
- 清除数据的方法
- 以clear\remove为前缀
- eg:
- clearData()
- removeData()
- eg:
- 以clear\remove为前缀
- 绘制的方法
- 以draw为前缀
- eg:drawBipmap()
- 以draw为前缀
- 布尔型判断的方法,
-
class 类
- 注释
资源文件规范
-
布局
- 命名规范
-
layout
- 全部小写,采用下划线命名法
- activity布局
- activity_模块_功能(描述)
- fragment布局
- fragment_模块_功能(描述)
- dialog布局
- dlg_功能(描述)
- PopupWindow布局
- Popupwin_功能(描述)
- adapter项布局
- item_adapter名称_功能(描述)
- 包含项
- include_功能(描述)
-
Id
- View名称或View缩写模块功能(描述)
- eg:
- btn_login_commit
- eg:
- View名称或View缩写模块功能(描述)
-
layout
- 命名规范
-
res 资源文件
-
value
- string
- 命名规范
- 基本格式:模块str类型_功能(描述)
- eg:
- 页面标题,
- 命名格式为:模块str_title功能(描述)
- 按钮文字,
- 命名格式为:模块str_btn功能(描述)
- 标签文字,
- 命名格式为:模块str_label标签文字简述
- 选项卡文字,
- 命名格式为:模块str_tab选项卡文字
- 消息框文字,
- 命名格式为:模块str_toast消息简述
- 编辑框的提示文字,
- 命名格式为:模块str_hint提示信息简述
- 描述文字,
- 命名格式为:模块str_desc文字
- 对话框的文字,
- 命名格式为:模块str_dialog文字
- 页面标题,
- 命名规范
- color
- 命名规范
- 基本格式:模块cl类型_功能(描述)
- eg:
- user_cl_txt_功能(描述)
- user_cl_edit_功能(描述)
- user_cl_hint_功能(描述)
- user_cl_bg_功能(描述)
- user_cl_btn_功能(描述)
- 命名规范
- string
- layout
- 文字大小的单位统一用sp
- View大小的单位统一用dp
- 字符串统一在strings.xml中定义,然后在代码和布局文件中引用
- 颜色值统一在colors.xml中定义,然后在代码和布局文件中引用
- drawbale
- 资源类型:
- png、jpeg、gif、9-Patch、xml等资源文件
- 命名规范:
- 基本格式:类型_描述
- 图标
- ic_描述
- icon_描述
- 图片
- img_描述
- 9-Patch
- 9patch_描述
- shape
- shape_描述
- selector
- selector_描述
- sl_描述
- layer-list
- layerlist_描述
- 资源类型:
- mipmap
- 资源类型:
- 存放启动图标、启动图
- 命名规范:
- ic_launcher
- sp_index
- 资源类型:
- anim
- 资源类型:
- 存放 tween animation 和 frame animation
- 命名规范:
- 基本格式:类型_描述
- 常用描述:
- in
- out
- left
- right
- down
- push
- 常用描述:
- eg:
- tween_anim_描述
- frame_anim_描述
- 基本格式:类型_描述
- xml文件里只有
- scale、
- rotate、
- translate、
- alpha、
- set
- 使用方法:
- 加载动画:
- animation = AnimationUtils.loadAnimation(R.anim.xxx)
- 设置动画:
- mView.setAnimation(animation)
- 开启动画:
- mView.startAnimation()
- 加载动画:
- 资源类型:
- animator
- 资源类型:
- 存放 property animation
- 命名规范:
- 基本格式:类型_描述
- 常用描述:
- in
- out
- left
- right
- down
- push
- 常用描述:
- eg:
- property_animator_描述
- 基本格式:类型_描述
- xml文件里只有
- animator、
- objectAnimator、
- set
- 使用方法:
- 加载动画:
- animation = AnimatorInflater.loadAnimator(R.animator.xxx)
- 设置动画:
- animation.setTarget(mView)
- 开启动画:
- animation .start()
- 加载动画:
- 资源类型:
-
value