app项目设计规范

Android项目设计规范


本文档为Android项目设计规范,编写初衷

  • 清晰结构增强项目可阅读性
  • 方便项目的日常维护
  • 提高新需求的研发效率

1. 项目结构规范

  • 模块包组织:同一模块,同一类功能建立共性名,示例:
    • Home: home页面
      • logic/model: 处理逻辑业务处理
        http:处理网络请求
        entity: 处理数据实体
      • view:处理视图
        ui:存入本模块下的自定义ui
      • constants:本模块常量宏
      • utils:本模块的工具类

2. 工具类封装与使用(未完待补充

  • 项目全局使用到的工具类,统一封装,禁止将工具类的可以实现的逻辑分散到项目的各个模块中
    • 使用单例或者静态方法封装接口,示例:
      • 日志工具类:LogUtils
        1.负责收集项目中的日志,提供开关日志接口
        2.提供日志等级打印接口,提供过滤日志tag
      • 文案提示工具类:ToastUtils
        文字统一提示工具类,提供直接显示方案与显示配置文件中的文字2个接口。
      • 文件管理类:FileUtils
        1.提供文件的相关管理接口。
      • 屏幕管理类:ScreenUtils
        1.管理屏幕属性,提供获取屏幕宽高的接口。
        2.提供物理像素与相对象像素相互转换接口
      • 状态栏工具类:StatusBarUtils
        1.提供状态属性设置接口。
      • 页面跳转管理类:PageSwitchUtils
        1.页面统一跳转,提供普通跳转与带result的跳转接口。

3.模块化设计原则

  • 公共代码模块化,使用依赖的方式引入到项目中,不依赖于具体的业务逻辑,使用接口或者协议的方式给使用者
  • 对于一些公共组件,封装时切忌把具体的业务逻辑也封装进去,应做到具体业务逻辑的实现丢给使用者,如统一打点sdk。

4.字符串使用原则(方便今后的国际化)

  • 使用配置文件进行声明,如无特殊需求,项目中仅使用values(strings.xml)与values-zh-rCN(strings.xml)

5.h5与原生分割原则

  • 使用插件进行交互,其中交互接口均提供失败与成功接口。
  • 对于一些生业务逻辑且数据量在页面,如:页面中存在列表,且交互方式复杂可采用native端做。
  • 对于一些页面更换比较频繁,如活动页面,建议采用url方面展示,目前是使用h5页面。
  • 对于一些页面更换频率少,如用户中心,设置页面可采用native,减少app包。
  • 交互的数据结构形式如下:
    [
    Code:1 请求状态码
    msg:请求提示方案
    Result:[]
    ]

6.项目中资源文件使用原则

  • 图片资源:
    • 图片资源在使用之前需要进行一次无损压缩操作,可使用tinypng.com进行压缩。
    • 对于一些圆角边框或是纯色背景禁止使用图片应使用xml文件代替。
    • 图片资源的命名参考编码规范
  • 布局文件使用原则
    • 命名规范参考编码规范
    • 同一样式,应定义共性的style文件,禁止分散到各个布局文件中。
    • 布局文件应当模块化,对于共同的视图xml统一封装,使用include引入,减少xml文档的嵌套层级与结点数提高渲染效率。

7.对象使用原则

  • 自定义控件应当提供完整的生命周期管理(创建,运行,恢复,销毁)至少提供创建与资源回收接口,防止内存泄露。
  • 使用定时器时,禁止嵌套循环,在定时完成时需要释放定时器资源。
  • while循环禁止使用类似的条件
    while(true){
    do something…
    }
    应使用开关条件,并提供开/关接口,如下:
    while(isRun){
    do something….
    }
  • 动画资源使用:动画使用完毕之后提供释放资源接口。
  • 多线程使用:
    • 同一类逻辑多次使用建议使用线程池。
    • 扩展于Thread的线程对象,禁止使用stop停止本线程,禁止使用while(true)处理业务逻辑,并提供回收本线程资源的接口。

猜你喜欢

转载自blog.csdn.net/d06110902002/article/details/80590743