去年10月底来到了新公司,刚开始接手 Android 项目时,发现该项目真的是一团遭,项目开发上没有任何架构可言,开发人员连简单的 MVC、MVP 都不了解,Activity 及其臃肿,业务边界也不明确,因此我决定重新分析一下当前主流的几种开发架构,选出适合当前项目的架构形式,顺便带大家进入下实战演练。
说到 Android 应用的架构,大家都不陌生。
最早使用的是 MVC 模式(Model–view–controller),但 MVC 模式下 Activity 类过于臃肿,为解决这个问题,有了 MVP(Model–view–presenter),Presenter 不仅要操作数据,而且要更新 View,再到 MVVM(Model-View-ViewModel),解决了 MVP 大量的手动同步 View 和 Model 的问题,提供双向绑定机制。
用一张图来总结:
从项目的包结构看架构
我看软件架构
之所以需要架构,是为了项目业务可以更好地可持续发展;没有哪个架构是最好的,所有的架构都是建立在业务基础之上,撇开业务讲架构都是空谈。
那么如何选择架构又成了一个问题,这就需要必须熟悉每个架构的优点和灵活性。
从实际角度看,优秀的软件架构不应该进行过度设计,否则可能带来维护者成本。
软件架构设计亦应坚固可靠,以应对内外界多种不同类型的攻击,提供可靠、精准的输出。面对外界的变化,响应要迅速及时。同时还要做到灵活可扩展。
同样,软件架构也应具备美观性,代码要简洁,易于阅读、维护、能使维护者从直观上对功能产生更清晰的认识,从而能够快速地处理变化。优秀的软件架构亦是组件抽象,没有复杂依赖关系,易于扩展分离的。
概念都懂,但如何运用呢?
这篇即学即用Android Jetpack - Navigation教你构建框架
如果
你还在为不能开发Android项目感到困惑吗?
你还在为Android项目设计感到困惑吗?
你还在为跟不上Android架构的演变感到困惑吗?
这份介绍Android框架的初始化过程及主要组件的工作原理。分析Android框架的主要源代码,理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架,《Android架构开发手册》,你还不收藏嘛?下面是详细内容:
第一章. Android Jetpack实战和教程
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack - Paging 3
第二章.MVC/MVP/MVVM
- MVC框架-导言
- MVC框架-ASP.NET窗体
- MVC框架-第一应用程序
- MVC框架-文件夹
- MVC框架-模型
- MVC框架-控制器
- MVC框架-视图
- MVC框架-布局
- MVC框架-路由引擎
- MVC框架-动作过滤器
- MVC框架-高级示例
- MVC框架-Ajax支持
- MVC框架-捆绑
- MVC框架-异常处理
- MVP架构设计:Google官方MVP思想解读
- 开源MVP框架
- MVC、MVP、MVVM,到底该怎么选
第三章. 国内知名架构文章
1. 抖音 iOS 工程架构演进
- 前言介绍
- 抖音工程架构演进
- 组件化
- 流水线式迭代开发
- 抖音工程架构演进
- 组件化探索过程中遇到的一些问题:
2.美团外卖 Android 平台化架构演进实践
- 平台化背景
- 屡次探索
- 搜索库拆分实践
- 页面组件化实践
- MVP 分层复用实践
- 中间层实践
- 平台化实践
- 平台化总结
- 展望
3.安居客 Android 项目架构演进
- 三网合并
- 由RxJava驱动的MVP架构
- 组件化与模块化
4.携程 Android App 插件化和动态加载实践
- 需求驱动
- 原理
- 实现
- 收益与代价
5.微信Android客户端架构演进之路
- 拓荒
- 成长
- 变革
- 进化
- 开放
6.千万级用户的 Android 客户端是如何养成的 | 架构师实践日
- 模块内的解耦
- 灰度发布机制
- 模块间通信
- 总结
7.手机淘宝构架演化实践
- Bundle
- WebApp
- PackageApp
- 研发支撑
- 测试支撑
- 运维支撑
- 发布支撑
英语流利说 Android 架构演进
- 英语流利说早期架构
- 英语流利说核心架构
- 核心架构说明
- 引入多进程层
- 英语流利说常用辅助架构
- 英语流利说常用支持型架构