
Android Jetpack
文章平均质量分 93
fundroid
Android GDE(谷歌开发者专家)| 互联网大厂移动端架构师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Jetpack Compose :使用 derivedStateOf 优化重组
Jetpack Compose中的derivedStateOf可以优化重组性能,避免不必要的重复计算。本文通过邮箱验证示例说明:当状态变化触发重组时,直接计算表达式会导致每次重组都重新执行逻辑。而使用derivedStateOf包裹计算逻辑后,Compose会缓存结果,仅在依赖的状态(如email)变化时才重新计算。文章深入解析了其内部原理:通过DerivedSnapshotState跟踪依赖项并缓存计算结果,避免无关重组时的重复计算。这种"记忆化计算"能显著提升复杂逻辑(如验证、筛选)原创 2025-08-29 01:15:55 · 797 阅读 · 0 评论 -
Google I/O 2025 新发布的 Jetpack Navigation 3 有哪些核心变化
Jetpack Navigation 3在Google I/O 2025大会上发布,采用全新的返回栈操作模式。与旧版不同,Nav3要求开发者直接操作返回栈实现页面跳转,支持灵活添加/删除页面和类型安全的参数传递。新特性包括多返回栈管理、entryDecorators装饰器(可插入页面跳转逻辑)以及SceneStrategy大屏适配方案。虽然仍处于alpha阶段,但其简洁的API设计为复杂导航场景提供了更直观的控制方式。原创 2025-08-25 08:30:00 · 993 阅读 · 0 评论 -
Kotlin 上下文参数(Context Parameters):特性介绍与最佳实践
Kotlin 2.2.0 正式引入上下文参数(Context Parameters)特性,这是对1.6.20实验性功能"上下文接收器"的重大改进。该特性允许函数声明多个命名作用域参数,通过context()语法指定,在需要特定上下文的场景下特别有用。本文通过五个典型应用场景展示了其价值:1)组合多个上下文;2)与协程作用域集成;3)实现轻量级依赖注入;4)创建事务性作用域;5)构建DSL时保持简洁语法。相比实验阶段的上下文接收器,新版本强制命名参数,提高了代码可读性,同时可以通过&quo原创 2025-08-11 08:30:00 · 656 阅读 · 0 评论 -
Jetpack Compose 智能重组与稳定性原理:打造高性能应用实践
本文深入解析了Jetpack Compose智能重组与稳定性的底层原理。Compose通过组合、布局、绘制三阶段渲染流程,在状态变化时触发智能重组,仅更新受影响部分。稳定性是性能优化的核心,编译器通过参数类型分析(包括基本类型、函数类型和特定类)决定重组范围。使用@Stable和@Immutable注解可显式标记稳定类型,其中@Immutable适用于完全不可变类,@Stable用于可变但能通知变化的类型。文章还探讨了Compose编译器如何将函数转换为Restartable(可重启)和Skippable(原创 2025-08-04 08:30:00 · 842 阅读 · 0 评论 -
掌握 Jetpack Compose 稳定性:优化应用性能的全面指南
Jetpack Compose性能优化关键在于理解UI渲染机制和稳定性概念。文章首先解析了Compose的三大渲染阶段(组合、布局、绘制),然后重点探讨了重组机制及其触发因素。核心在于通过提升参数稳定性来优化性能:使用不可变数据结构、合理应用@Stable/@Immutable注解、避免不稳定类型参数、优化大型列表渲染以及实践状态提升策略。文章还提供了实战案例,展示如何将不稳定实现重构为稳定结构。掌握这些稳定性优化技巧,可有效减少不必要的重组,显著提升Compose应用性能。原创 2025-08-08 09:00:00 · 695 阅读 · 0 评论 -
Jetpack Compose 集成 ExoPlayer 实战指南
本文介绍了如何在Jetpack Compose中集成ExoPlayer媒体播放器。ExoPlayer作为Google官方推荐的播放库,具有格式支持广泛、高度可定制、生命周期感知等优势。文章详细讲解了项目环境准备、结构设计以及依赖配置,采用Kotlin Gradle脚本和版本目录管理依赖。通过合理的项目分层,将UI、业务逻辑和状态管理分离,为后续构建专业级媒体播放体验奠定基础。原创 2025-07-28 11:45:00 · 761 阅读 · 0 评论 -
迁移 Jetpack Compose Navigation 3 实战指南
Jetpack Compose Navigation 3 带来了显著的导航体验升级。本文详细介绍了从传统导航库迁移到 Nav3 的全过程,包括配置依赖、定义页面、迁移NavHost、导航操作及结果处理等关键步骤。Nav3 通过类型安全的 NavKey 接口、简化的状态管理、增强的返回栈控制等改进,大幅提升了导航的可靠性和开发体验。虽然仍处于 alpha 阶段,但其设计理念已展现出未来 Android 导航的发展方向。迁移过程中最突出的优势是编译时安全性、类型化参数传递和更直观的 API 设计,使开发者能够更原创 2025-07-31 08:30:00 · 1067 阅读 · 0 评论 -
Jetpack Compose 导航中的状态管理:跨屏幕数据共享最佳实践
本文深入探讨了Jetpack Compose导航中的状态管理最佳实践。针对常见的状态丢失、参数获取等问题,文章建议:使用ViewModel管理屏幕级状态和业务逻辑;通过SavedStateHandle安全处理导航参数;谨慎使用CompositionLocal共享环境上下文;结合rememberSaveable和rememberNavBackStack保留UI状态;将ViewModel提升至导航图级别实现跨屏幕状态共享。同时提醒开发者避免常见陷阱,如不合理初始化ViewModel、过度使用全局状态等,从而构建原创 2025-07-30 08:30:00 · 689 阅读 · 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 · 1273 阅读 · 0 评论