# android项目分层解析

2017-09-13 20:38:42来源:CSDN作者:anthony_3人点击

分享

项目分层

整体分层结构

整体分为app和base两个层,app层作为项目的业务层,里面所有的分包都和当前业务相关。base层作为项目的框架层。业务与框架层级分离的好处:

  1. 可以让我们更专注于业务的开发
  2. 可以快速集成新的项目
  3. 方便每个项目在原有框架上做快速的更新迭代

业务层分层解析

业务层内的基本分包是固定结构,因为每个项目都会有这些元素。因为富文本编辑器在互动讨论项目是重点,所以这里加上了一个editor包来统一管理。下面一一来分析一下包结构。

  • adapter包里主要盛放不同列表的适配器,里面包含单类型列表适配器、多类型列表适配器和viewpager适配器等多种。

  • customview包主要盛放与业务相关的自定义控件,其中包含自写的控件和基于开源二次编辑的控件,还有部分开源控件从业务层的build.gradle中直接引入。可以把每个项目引入和编写的自定义控件做一个总结和划分,统一存到一个git仓库中。

  • dialog包主要盛放与业务相关的弹框控件,有相同业务场景的弹框可以将业务写在内部然后提供接口调用统一返回处理。

  • entity包主要盛放业务相关的实体类,一般有两种:一种是与后端接口通讯同步的实体,另一种是处理逻辑用的自写实体。建议在系统设计阶段与后端小伙伴一起将实体继承关系梳理好,否则会导致多个大同小异实体存在的结果。

  • network包这里是业务层的network主要放两种类,一种是网络配置类用来定义接口地址和文件服务器地址,另一种是API接口类,用来记录该接口地址下的所有API。

  • receiver包主要盛放广播接收器,里面会有推送相关的接收类和自写的广播接收类。

  • utils包里主要盛放业务相关的各种工具类,比如常量类、UI工具类、图片工具类、正则工具类等。

  • base包里是业务基础类,里面包含BaseActivity、BaseFragment、MListFragment、TRecyclerView和MVP结构的三层抽象。其中BaseActivity是框架层FrameBaseActivity的子类,在这里可以写一些业务相关的统一调用:例如SharedPreferences的实例化和竖屏控制等。还有一些每个Activity都要调用的统一方法的抽象,为了保证名称一致性。BaseFragment同上。MlistFragment是继承于BaseFragment,用于统一列表fragment的控制。TRecyclerView是基于业务的下拉列表封装类,可以用它快速编写下拉列表,这个我会令起一篇详细描述。

  • business包里包含了所有的业务活动类,在里面可根据业务场景的不同具体分析处理,举例:互动讨论项目分为学生端和教师端,我可以在分别建包teabusiness作为老师业务、stubusiness作为学生业务,然后把老师学生共用的业务拆分出来做公有业务。(ps:在做互动的时候其实是先做的老师端后做的学生端,老师端有大部分公用业务,学生端里面只是把学生独有的拿了出来)

    综上:建议在新建项目处理业务分包的时候保留固有结构,方便团队规范化统一。

框架层分层解析

框架层中包含适配器框架、网络框架、工具包和两个框架级别的封装类。下面一一来进行说明。

  • 适配器框架是基于RecycleView适配器的多功能封装,主要特点是支持下拉刷新、快速添加header、footer、多层级嵌套、多类型展示等功能。
  • 网络框架是retrofit+okhttp+rxjava结构封装而成,主要特点是简化网络请求、自动化处理返回结果、token拦截处理、上传下载监听等。
  • utils工具包中包含Activity管理类、异常处理类、网络工具类、权限管理类等基本框架级工具类。
  • FrameBaseActivity框架Activity类继承RxAppCompatActivity来实现网络请求时生命周期的监听管理,内部onCreateView中实现了百分比布局的计算,来适配不同尺寸的机型屏幕。其余提供了一些抽象方法供业务层基础类来调用。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台