Android架构方面的归纳
2017-06-30 本文已影响180人
Arison
Android架构探索
标签(空格分隔):Android
概要
也许我们写业务代码的时候,能提升对代码的熟练度。但是并不能真正提升技术水平。能提升技术水平手段之一的莫过于研究一种应用的架构方案。分析其优劣,根据不同场景使用不同架构。
主要归纳两大块:
- 基础库的开发工作
- 架构方案的开关工作
其中基础库的开发工作,是最基础的任务,也是很重要的任务之一。这一块考察开发人员具体功能的实现能力,功能模块的优化能力,更多的是编程的基础设计能力。
架构库设计更多的考察开发者的实战经验,抽象设计能力,解决方案分析能力还有技术前瞻能力。
基础库设计
适合对象:高中低级开发人员
主要解决问题:具体功能实现。比如网络请求,图片缓存,列表的展示,查询,界面布局,数据存储操作等
主要的作用:作为其它业务功能模块的基础库
主要的分类:所有业务功能模块公共基础库(核心基础库)+部分功能模块公共基础库(定制基础库)
设计基础库主要的目的:
- 合理划分项目结构,重用代码,方便维护项目
- 可持续性优化代码质量,维护项目稳定
- 节省开发时间,节省人力成本
- 最重要的提高项目的可扩展性,方便项目移植,方便灵活的应对未来的业务需求
移动端App基础库设计主要模块
基础库
核心基础库
- 网络请求——核心库
- 图片处理——核心库
- 数据存储——核心库
- 工具类库——核心库
- 公共UI库——核心库
- 版本升级——核心库
- 日志处理——核心库
- 异常监控——核心库
定制基础库
- 性能监控——定制基础库
- 上传和下载——定制基础库
- 推送库——定制基础库
- 定位功能——定制基础库
- 地图处理——定制基础库
- 即时通信——定制基础库
- 分享功能——定制基础库
- 第三方登录——定制基础库
- 后台定时任务——定制基础库
架构库设计
适合对象:中高级开发人员
主要解决问题:灵活适应未来业务需求
主要的作用:打造高可用性,扩展性,维护性的项目。
主要的分类:所有业务功能模块公共架构方案(基础架构方案)+部分功能模块定制的架构方案(定制架构方案)
架构库
基础架构方案
- MVC
- MVP
- MVP+RxJava
- MVP+RxJava+RxBus+Dragger2
- MVP+EventBus
- 多Fragement+单Activtiy
- 多Fragement+多Activity
- 路由技术的应用
- ReactNative等为代表的解决方案
定制架构方案
- UI界面可配置化
- 语音智能搜索
- 专业领域搭建方案
- 插件化热更新技术
总结:
一般来讲,复杂的应用架构需要特定的业务需求场景。在中大型的产品设计规划的时候遇到的会比较多一点。而中小应用则无需过度复杂的架构方案。总之,需要讲究一个原则,这个架构方案适不适合当前和未来产品发展的需要,适不适合多人开发,多少规模的团队开发。