工作中碰到有一个需求是类似于 FlexColumn 的排列,但是项目中的 Compose 版本较低没有 Modifier.fillMaxColumnWidth()
,于是考虑使用自定义 Layout 实现。
工作中碰到有一个需求是类似于 FlexColumn 的排列,但是项目中的 Compose 版本较低没有 Modifier.fillMaxColumnWidth()
,于是考虑使用自定义 Layout 实现。
CoroutineContext 是协程中的一个重要概念,我们可以通过它来调度协程执行、进行异常处理、跟踪协程层级关系以及携带协程作用域信息。本文通过启动协程的源码,尝试分析其数据结构以及传递机制。
Kotlin 符号处理(KSP)是一种 API,您可以用它来开发轻量级编译器插件。KSP 提供了一个简化的编译器插件 API,可充分利用 Kotlin 的强大功能,同时将学习曲线保持在最低水平。与 kapt 相比,使用 KSP 的注释处理器运行速度最多可提高两倍。
根据官方文档的描述,LiveData 是一种可观察的数据存储器类。它具有生命周期感知能力,会遵循 LifeCycleOwner 的生命周期,只有观察者的生命周期处于 STARTED 或 RESUMED 状态的时候才会通知观察者更新。
根据 LiveData 的这一系列特性,将它和 ViewModel 一起使用是在 Android 平台上实现 MVVM 模式的绝佳途径。
Android 的 Activity 有着一套 onSaveInstanceState - onRestoreInstanceState 状态保存机制,旨在「系统资源回收」或「配置发生变化」保存状态,为用户提供更好的体验。
在 androidx 下,提供了 SavedState 库帮助 Activity 和 Fragment 处理状态保存和恢复。
ViewModel 是 Architecture Components 官方架构组件之一。
ViewModel 类旨在以注重生命周期的方式存储和管理界面相关的数据,它让数据可在发生屏幕旋转等配置更改后继续留存。
Lifecycle 是 Architecture Components 官方架构组件之一。
它可以让我们在另外的组件中感知到 Activity 或 Fragment 的生命周期状态的变化,有助于我们写出更有条理、更精简、易于维护的代码。
Glide 是一个非常优秀的图片加载框架,为我们处理了图片加载中的各种痛点,如:多种尺寸格式的缓存、生命周期感知、高效处理 Bitmap 等,本文解析其源码分析它是如何做到这些的。
Retrofit 是流行的 Android 网络访问框架,本文基于 2.8.1 版本分析其源码,了解 Retrofit 是如何进行网络访问的。
HashMap 是散列表实现的键值对容器,本文分析其源码和实现原理。