用途:当请求涉及 Android Flow 收集、修复 Android 协程作用域、ViewModel 中的结构化并发时使用本技能,目标是使用协程、Flow、结构化并发、调度器与可安全取消的异步管道。
主要能力与工作流:将请求映射到当前 Android 技术栈、模块边界与最低支持 API 级别;检查现有实现中的隐式假设、重复辅助函数与过时模式;应用最小改动以提升正确性、可读性与长期可维护性;对照相关示例应用路径与仓库基准验证结果;仅在核心基础稳定后,将相邻工作交接给下一个专门技能(如 android-state-management、android-workmanager-notifications)。
使用方式与示例:注入调度器而非硬编码,例如在仓库类中通过构造参数传入 CoroutineDispatcher 并使用 withContext;使用生命周期感知方式收集 Flow,例如在 viewLifecycleOwner.lifecycleScope 中配合 repeatOnLifecycle(Lifecycle.State.STARTED) 收集 uiState;在通用错误处理中保留取消语义,捕获 CancellationException 后重新抛出。示例命令包括 cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest、cd examples/orbittasks-xml && ./gradlew :app:testDebugUnitTest、python3 scripts/eval_triggers.py --skill android-coroutines-flow。
限制与护栏:官方 Android 与 Kotlin 指南与本地约定冲突时优先官方指南;公共 API 保持简单明确,避免隐藏 Android 生命周期成本的抽象;除非请求明确需要,不将架构清理与产品行为变更混在一起;记录影响旧模块或生成代码的兼容性约束。避免在模块间随意散布辅助函数、将框架特定代码引入纯领域或数据层、仅需改一个契约却重构所有相邻文件、以及只暗示迁移说明而不写下来。官方参考包括 developer.android.com/kotlin/coroutines、developer.android.com/topic/libraries/architecture/coroutines、kotlinlang.org/docs/coroutines-overview.html、kotlinlang.org/docs/flow.html。