Android 架构
文章平均质量分 94
fundroid
Android GDE(谷歌开发者专家)| 互联网大厂移动端架构师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 架构 15 年:7 个阶段的完整演进之路
Android架构演进综述(2010-2025) 本文系统梳理了Android架构10余年发展历程,划分为7个关键阶段: 混沌期(2010-2013):无架构模式,Activity/Fragment堆积业务逻辑,导致代码臃肿、难以维护 MVP时代(2013-2016):引入分层思想,分离视图与业务逻辑,但仍存在回调嵌套和内存泄漏问题 Clean架构(2014-2017):采用分层架构+Dagger依赖注入,实现业务与框架解耦 MVVM革命(2016-2019):ViewModel+LiveData组合,配合原创 2025-12-15 08:30:00 · 869 阅读 · 0 评论 -
三种 MVI 模式:Pure MVI、Reducer MVI、State Machine MVI 深度对比
本文对比了三种MVI架构模式在Android开发中的应用。Pure MVI是最简洁的实现,适合简单场景但难以维护;带Reducer的MVI通过纯函数提升可测试性和代码整洁度;带状态机的MVI则通过有限状态机管控复杂流程的状态转换,确保合法性。三者各有优劣,开发者应根据业务复杂度选择合适模式:简单功能用Pure MVI快速实现,中等复杂度引入Reducer提升可维护性,多步骤强依赖流程采用状态机保证正确性。代码示例展示了各模式的核心实现,帮助开发者理解架构差异。原创 2025-10-15 08:30:00 · 1878 阅读 · 0 评论 -
Android 架构之争:MVI 真的比 MVVM 更胜一筹吗?
Jetpack Compose 时代下 MVVM 与 MVI 的架构之争 摘要:随着 Jetpack Compose 的普及,关于 MVVM 和 MVI 架构的争论再起。本文通过历史溯源和实践对比,指出 MVVM 在大多数场景下已足够: 历史发展显示 MVVM 已演进为单一状态+UDF 模式 实践案例表明 MVI 容易陷入"上帝Reducer"陷阱,而MVVM能更简洁实现相同效果 简单页面用MVI会过度设计,复杂页面通过合理划分作用域后MVVM也能胜任 现代MVVM已具备MVI的核心优势原创 2025-10-14 08:30:00 · 1628 阅读 · 0 评论 -
初探 Navigation 3 嵌套路由:开启更高效的导航之旅
本文介绍了Navigation 3嵌套路由的使用方法,重点讲解了如何通过FragmentContainerView、Material 3的BottomNavigation和嵌套导航图来构建清晰易管理的导航系统。内容包括基础容器配置、现代导航栏实现以及模块化导航图的构建技巧,展示了如何通过分层设计简化复杂场景下的导航逻辑,提高代码可维护性。文章还提供了详细的代码示例,帮助开发者快速上手Navigation 3的嵌套路由功能。原创 2025-09-28 08:30:00 · 1674 阅读 · 0 评论 -
基于 Android Jetpack 构建离线优先(Offline-First)应用
构建离线优先的移动应用需要综合运用本地存储、后台同步和分页加载技术。使用Room实现数据本地存储,确保应用在网络断开时仍能访问数据;通过WorkManager智能调度后台任务,在网络恢复时自动同步数据;采用Paging 3实现高效的分页加载,提升大数据量场景下的用户体验。这种技术组合能有效解决网络不稳定问题,使应用具备更可靠的离线运行能力,同时优化性能和电池效率。原创 2025-09-24 08:30:00 · 787 阅读 · 0 评论 -
聊聊 MVI 的发展史和现代 Android 实践
MVI架构演进与应用探索 摘要: MVI(Model-View-Intent)架构模式是Android开发中经过长期演进而成的重要解决方案。本文将梳理MVI从1979年MVC到2014年Flux,再到2015年MVI正式提出的发展历程,揭示其核心思想源于响应式编程和单向数据流理念。文章重点澄清了两个常见误区:MVI≠Redux(前者是分布式状态管理,后者是集中式),MVI≠MVVM(关键区别在于状态管理和数据流方向)。通过对比分析,指出MVI更适合需要严格状态管理的场景,而开发者应根据实际需求选择架构,而非原创 2025-06-23 08:15:00 · 1420 阅读 · 0 评论 -
Google 发布的全新导航库:Jetpack Navigation 3
Jetpack Navigation 3(Nav3)是专为Jetpack Compose设计的全新导航库,解决了Nav2在大屏设备和现代开发模式中的局限性。Nav3采用开放透明的设计理念,将返回栈控制权完全交给开发者,支持自定义目标类型和状态管理。其关键特性包括内置过渡动画、自适应布局支持多窗格显示、状态作用域限定和模块化API设计。代码示例展示了如何通过简单操作状态列表实现导航,体现了Nav3的简洁性和灵活性。该库为Android应用开发提供了更现代化、可扩展的导航解决方案,特别适合适配多种设备形态的复杂原创 2025-06-02 15:48:13 · 1878 阅读 · 0 评论 -
多 ViewModel 间代码复用最佳实践
为每个 ViewModel 创建一个接口。接口有两个属性,分别是 ViewModel 和 Repository。另外为每个 Action 类型都实现了一个单独的函数,每个函数的功能更具体。类继承:简单,但是有单继承限制辅助类:简单,但缺少重写灵活性。类委托:无法通过this提供 ViewModel 能力。接口默认函数:综合表现最好。特性类继承辅助类类委托接口默认函数可多继承❌✅✅✅可重写性✅❌✅✅VM可访问✅✅❌✅推荐场景。原创 2025-05-04 01:39:44 · 1170 阅读 · 0 评论 -
SOLID 设计原则在 Android 中的实战应用
传统方式中,我们经常会在 ViewModel 中依赖一个具体 UseCase,当我们需要升级依赖时,则必须修改 ViewModel 代码,违反开闭原则。而通过自定义 ViewModelFactory 和依赖注入,我们可以实现对扩展开放,对修改关闭。当有新需求,要求更新 UseCase 依赖时,我们通过创建新的 UseCase 实例并传递给工厂,以此来扩展 ViewModel 的功能(对扩展开放),而不需要修改 ViewModel 类本身(对修改关闭)。原创 2025-05-02 23:01:19 · 720 阅读 · 0 评论
分享