美文网首页简述
简述Android 开发规范

简述Android 开发规范

作者: 萌码象C | 来源:发表于2017-12-11 15:41 被阅读0次

    目录
    [TOC]

    开发工具

    • 尽量使用最新版的IDE进行开发
    • 编码格式统一为UTF-8
    • 文件编辑完后:
      • .java、.xml等文件后一定要格式化
        • 基本格式方面使用 AS 默认模板即可
      • .java文件需删除多余的import,减少警告出现
      • 进行代码规范检查
        • 插件:Alibaba Java Coding Guidelines
      • 代码Review

    包命名规范

    • 包名全部小写字母,连续的单词只是简单地连接起来,不使用下划线,
    • 一级包名为顶级域名,通常为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
                  }
                
        • 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;
          • View变量:
            • 以mView名称/mView缩写为前缀,
            • 基本格式:m + 类型名称/缩写 + 功能
              • eg:private Button mBtnCancel;
          • 方法参数:
            • 以p开头
              • eg:private void getData(int pUserId){};
        • method 方法
          • 布尔型判断的方法,
            • 以is或has为前缀
              • eg:isAdmin()
          • 初始化方法,
            • 以init为前缀,
              • eg:initView()
          • 弹出信息\提示框
            • 以display开头,
              • eg:displayError()
          • 按钮点击方法,
            • 以to开头,
              • eg:toLogin()
          • 设置方法,
            • 以set开头,
              • eg:setData()
          • 具有返回值的获取方法,
            • 以get开头,
              • eg:getData()
          • 通过异步加载数据的方法,
            • 以load开头,
              • eg:loadData()
          • 保存数据方法
            • 以save为前缀,
              • eg:saveData()
          • 对数据重组的方法
            • 以reset为前缀,
              • eg:resetData()
          • 清除数据的方法
            • 以clear\remove为前缀
              • eg:
                • clearData()
                • removeData()
          • 绘制的方法
            • 以draw为前缀
              • eg:drawBipmap()

    资源文件规范

    • 布局

      • 命名规范
        • layout
          • 全部小写,采用下划线命名法
          • activity布局
            • activity_模块_功能(描述)
          • fragment布局
            • fragment_模块_功能(描述)
          • dialog布局
            • dlg_功能(描述)
          • PopupWindow布局
            • Popupwin_功能(描述)
          • adapter项布局
            • item_adapter名称_功能(描述)
          • 包含项
            • include_功能(描述)
        • Id
          • View名称或View缩写模块功能(描述)
            • eg:
              • btn_login_commit
    • 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_功能(描述)
      • 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
        • 使用方法:
          1. 加载动画:
            • animation = AnimationUtils.loadAnimation(R.anim.xxx)
          2. 设置动画:
            • mView.setAnimation(animation)
          3. 开启动画:
            • mView.startAnimation()
      • animator
        • 资源类型:
          • 存放 property animation
        • 命名规范:
          • 基本格式:类型_描述
            • 常用描述:
              • in
              • out
              • left
              • right
              • down
              • push
          • eg:
            • property_animator_描述
        • xml文件里只有
          • animator、
          • objectAnimator、
          • set
        • 使用方法:
          1. 加载动画:
            • animation = AnimatorInflater.loadAnimator(R.animator.xxx)
          2. 设置动画:
            • animation.setTarget(mView)
          3. 开启动画:
            • animation .start()

    相关文章

      网友评论

        本文标题:简述Android 开发规范

        本文链接:https://www.haomeiwen.com/subject/jywiixtx.html