美文网首页
Android编码规范

Android编码规范

作者: 郭陈 | 来源:发表于2020-06-29 19:11 被阅读0次

Android 编码规范


订正内容 时间 订正人
** 2020-4-20 guo******home@163.com

1.资源文件导入及命名

  • 切图资源

    • 格式

      • 推荐使用 png (部分特殊除外)
    • 大小

      • 4kb-30kb
    • 命名

      • 采用 所在页面+构成功能+构成功能作用域 如:

        • login_phone_icon.png
          说明登录页面的手机号输入框的icon图标

        • home_tab_icon.png 首页Tab的Icon,

        • mine_head_null.png 我的页面头像没有时

        • project_search_left_icon.png 项目页面搜索框左边ICON

  • 文件资源

    • drawable
      功能(shape/select/...)+color色值(渐变色的话根据先后顺序依次添加)+radius(上左,上右,下左,下右,全部)+角度

      • shape_color_ffffff_radius_all6.xml shape类型颜色为白色
        四个角度均为6

      • shape_color_ffffff_000000_radius_toprit8_topleft2.xml
        shape类型颜色为白色黑色渐变 上左圆度8-上右圆角2的文件

      • select_color_f7e00b_fdf7bf_radius_all6.xml select 类型 颜色为
        选中true-> f7e00b 未选中false->fdf7bf 的圆角为6

    • values

      • attrs 以所作用的类名命名

      • colorsc开头+色值 如:cffffff 白色命名

        • <color name="c008577">#008577</color>
          <color name="c00574B">#00574B</color>
          
      • style 以功能命名

        • <style name="ProgressMessage" parent="@android:style/Theme.Dialog">
           ......
          </style>
          
    • layout

      • activity activity的页面以 activity开头+页面 activity_login.xml
        登录页面

      • adapter 同上 adapter_appbar.xml bar

      • item 同上 item_project.xml 项目列表的item

      • view 同上+功能 view_index.xml 指示view


2.第三方及插件引用规范

  • 第三方引用版本管理
  • jar包的管理
  • plugin的管理

3.代码规范

  1. java语言编码规范(具体业务逻辑由 kotlindart 处理)

    • 命名规则(类名:驼峰)(变量名&方法名:小驼峰)
      • 类名 :_(驼峰)_MainActivity.java AppBarAdapter.java
      • 数据对象: 以 Bean 结尾 如:UserBean
      • 事件对象: 以Event结尾 如:OutLoginEvent
      • 方法名(小驼峰)
        • 事件名 以do开头 如 doresum() dosRestart()
        • 变量类型 bool 类型以 is 如:isShow() isSelect()
        • 取设方法 (获取值)fetch (存值)put (效验)has (bool)is (注意:仅用于bean)get set
      • 变量:
        • 全局常量:大写+下划线 如:APP_IDWX_SHARE_NAMEUSER_NAME 等...
        • 全局变量:小驼峰 如:userName, isAuth,userBean等..
        • 局部变量: 同 全局变量
  2. kotlin语言编码规范 (业务逻辑(尤其是UI业务(activity,adapter,view等))处理建议使用 kotlin )

    • 命名规则 同java命名规则相同
    • 规约
      • 在使用类型处理业务时,如根据后台返回用户类型判断用户操作状态时应使用 枚举

        • //反例
          fun pullUserView(userType:Int){
            when(userType){
              1:->{...}
              2:->{...}
            }
          }
          
          //正例
          enum class UserTypeEnum(var type: Int, var valu: String) {
               ZiRanRen(1, "自然人"),//自然人
               GeTi(2, "个体/个独")//个体}
               
          fun pullUserView(userType:Int){
            when(userType){
              UserTypeEnum.ZiRanRen.type:->{...}
              UserTypeEnum.GeTi.type:->{...}
            }
          }
          
          
        • 注释:
        /**
         *  类注释
         *  功能:XXX
         *  参数:XXX
         *  创建日期:yyyy-MM-dd 
         *  作者:glen
         */
        class A(){
           /*
            * 方法说明
            * @参数  说明
            * @参数 说明
            * @retur  返回说明
            */
            fun doReSum(view:View){
            
            }
        
        }
        
        
      • OOP

        *类的使用及参数(类的参数构造及方法的参数构造)

        
         /**
         *  xx:XX ?=null  声明可空
        
            避免空指针
         */
         class A(context:Contxt,list:List<String>?){
         
             var context:Context?=null
             var list:List<String>?=null
            init{
              /// 赋值  注意*************
              this.context=context
              ///要这样书写,保证如果传值为null 不出现 空指针错误
              this.list=list?:arraof<String>()
            }
            
            
         fun postView (list:List<String>,index:Int){
           TextView view= context?.findviewById(R.id.tv_name)
           
           /// `这里要注意,每次赋值,都要进行默认赋值,不要 !.  要使用 ?.`
           view.text=list[index]?.name?:"默认值"
         }
         
         }
         
        
  3. dart语言编码规范

    • 文件命名

      • 使用 "小写"+"_" 的方式
        • 如果是页面 则 以 view 结尾
    • 类的命名 同上 java 命名

      • 变量 私有 前加 _ 下划线 如:_userId=null
      • 变量 以小驼峰 格式 如: userId
      • 常量 私有 大写 + 下划线 如:_USER_TOKEN
      • 常量 USER_TOKEN
    • 方法 同 java& Kotlin 但是 私有的话 需要前面加 "_"

  4. 布局规范

    • 布局命名 同上 文件资源 layout 一样

    • 组件id设置

      • 命名:以组件首字母为首拼,后以功能 如: tv_name
         <TextView
                android:id="@+id/tv_finsh"
                ...... />
               
          <ImageView android:id="@+id/iv_head"
           ...../>
        
        
        
      * 布局  嵌套过多的布局 建议使用 
       
       * ``` xml
      <android.support.constraint.ConstraintLayout />
      

      来节省开支,防止UI因嵌套过多带来的卡顿

5.宿主(Host)结构规范

  • activity 基层 `EaseActivity`
    
  • 布局 使用`vlayout`
    
  • 工具类 `FinalKit`
    
  • `HostApi` 对 `plugin` 提供API服务,不能更改里面的方法,里面的方法插件会对其通过反设调用
    
  • 网络拦截,APP实现 JsonConverter.OnJsonConverterLister接口 实现网络拦截的回调

  • 用户信息全局管理

    • App类 getUserDetail方法获取和更新用户信息
  • 插件信息配置全局管理

    • App类管理和更新插件数据
  • 用户合法性全局管理

    • App类 checkFilter 效验用户合法性
    • outlogin 全局管理用户登录和退出登录

相关文章

  • Android编码规范

    Android开发代码规范相关系列文章: Android命名规范 Android编码规范 Android编码规范有...

  • Android编码规范指南

    title: Android编码规范指南tags: Android,基础 本文参考最全面的 Android 编码规...

  • 解决打包Android Studio Gradle Issue:

    猫眼android技术开发规范文档 书写规范 编码 编码方式统一用UTF-8. Android Studio默认已...

  • Android命名规范

    Android开发代码规范相关系列文章: Android命名规范 Android编码规范 俗话说:无规矩不成方圆,...

  • Android 开发规范

    前言 本文参考Google Java编程规范和阿里巴巴Java规范,Android编码规范部分参考Android开...

  • 雷铭大前端组件库

    雷铭大前端组件库 包含《雷铭前端开发规范》、《雷铭Android编码规范》、《雷铭iOS编码规范》以及不同技术分类...

  • Android 代码命名规范

    前言 根据 Google Java 编程规范 & Google 官方 Android 编码规范,整理一份全面 & ...

  • Android 编码规范

    转:Android 开发规范(完结版) - 简书

  • android 编码规范

    基本组件 activity.onSaveInstanceState不是activity生命周期方法,不能保证执行到...

  • Android编码规范

    阅读全文请点击 目录介绍 1.命名 1.为什么需要编码规范 2.包命名 3.类和接口命名 4.方法的命名 5.变量...

网友评论

      本文标题:Android编码规范

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