美文网首页
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编码规范

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