开发与工程 camera-developmentandroidcameraxmigration-guidebest-practicesjetpack

CameraX 相机开发技能

为 Android 相机开发提供基于 CameraX 的最佳实践指导,涵盖迁移、录制生命周期、硬件互操作等功能。

FollowSkills 评估 · FSRS-2.0
谨慎使用
60/ 100 五分制 3.0 / 5
1 2 3 4 5 6
1信任安全18 / 25 · 3.6/5

证据显示该技能仅提供指导性内容,不包含可执行代码或敏感数据处理,权限需求仅限于Android相机基本权限。依赖项为官方Google库,未发现恶意或越权行为。但未提供明确的用户确认或数据流透明度说明,发布者未经验证,因此扣除部分分数。

2可靠稳定8 / 20 · 2.0/5

技能指令在逻辑上自洽,提供了清晰的代码模式和约束,关键路径(如迁移、拍照)描述合理。但静态审查无法执行验证,且缺少测试覆盖,错误处理示例有限,故降低分数。

3适用触发12 / 15 · 4.0/5

技能场景明确,目标用户是Android开发者,边界清晰(涉及CameraX等)。但部分依赖的Google Play服务可能在Mainland China不可达,且无中文支持,环境适配证据有限。

4规范维护12 / 15 · 4.0/5

信息来源组织良好,提供了多个参考文档,有明确的许可证和最后更新日期。但未提供版本历史、变更日志或明确的维护责任声明,且发布者未经验证。

5有效结果6 / 15 · 2.0/5

技能能指导完成核心任务,但缺少实际输出验证,价值主张未量化,且需用户自行适配代码,边际价值证据有限。

6证据核验4 / 10 · 2.0/5

无第三方执行证据,如CI测试或提交的测试套件,关键声明缺乏独立验证,仅依赖作者表述。

证据充分度: 评估于 2026年8月7日 审查版本 28822b2306f3
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 技能依赖Google Play服务(如LLB),在中国大陆可能无法正常使用,影响适用性。
  • 发布者未经验证,来源归属不明确,需谨慎对待其更新和维护承诺。
  • 静态审查无法确认代码示例的完整性或正确性,实际应用前需进行测试。
  • 未提供用户确认或数据流透明度说明,在涉及敏感数据(如相机图像)时应自行加强安全措施。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

此技能提供构建 Android 相机应用的逐步指导和标准模式,重点聚焦 CameraX 库,包括其 Camera2Interop 工具及 Media3 集成。它涵盖了不可变 API 模式、从 Camera1/Camera2 迁移到 CameraX 的指南,以及手动控制、RAW 捕获、特效、弱光、折叠屏、XR、热管理、测试、ML Kit 空间分析、Wear OS 等复杂功能的蓝图。技能还强调代码质量规范,如使用 Fakes 而非 mocks、Truth 断言、显式测试运行器,以及语义 UI 合并。同时针对硬件多样性给出建议,并指出常见陷阱,如异步生命周期、线程安全和权限处理。

该技能提供程序化指导,包括:展示不可变 API 模式的代码示例(如 VideoCapture 的 withAudioEnabled 必须重新赋值);提供从 Camera1 和 Camera2 迁移到 CameraX 的参考指南;为多步骤功能(如手动控制、RAW 捕获、自定义效果等)提供结构化蓝图方法;推荐使用高级抽象(如 MlKitAnalyzer、Media3Effect、ConcurrentCamera);规定代码质量标准(Fakes over mocks、Truth 断言、显式测试运行器、语义合并);并列出常见陷阱及解决方案。

  1. Android 开发者需要将现有的 Camera1 或 Camera2 代码库迁移到 CameraX,以获得更简洁的 API 和生命周期管理
  2. 实现相机功能时希望避免常见陷阱,例如异步录制状态检查和线程安全的 UI 更新
  3. 构建复杂相机功能(如手动控制、RAW 捕获或自定义效果)时,需要结构化蓝图以避免系统超时
  4. 需要在 Compose 中创建无障碍的相机控件,确保屏幕阅读器正确合并 UI 元素
  5. 开发跨硬件设备(如折叠屏、多摄像头阵列)的相机应用,需考虑不同设备的特性

这个 Skill 有哪些优点和局限?

优点
  • 由 Google 官方维护,权威性强
  • 覆盖从迁移到高级特性的全面场景
  • 提供具体可执行的代码示例
  • 包含针对常见陷阱的明确指导
  • 与 Android 生态最佳实践保持一致
局限
  • 仅重点关注 CameraX,不覆盖其他相机库(如 Camera2 的直接使用)
  • 需要访问 `references/` 目录中的副本文档,但未明确列出其内容
  • 未提及测试套件或验证方法,不能保证所有场景的准确性
  • 为 AI 优化,可能不如官方文档详尽

如何安装这个 Skill?

此技能来自 Android skills 仓库。使用 Android CLI 安装到当前目录:android skills add --skill=camerax --project=.;或使用 android skills add --all 安装所有技能(包括此技能)。若未指定代理,技能将安装到 ~/.gemini/antigravity/skills

如何使用这个 Skill?

将技能安装到代理环境后,在对话中描述相机任务,例如“帮我将 Camera2 代码迁移到 CameraX”或“实现视频录制并启用音频”。技能将提供代码模式、迁移指南和蓝图参考。注意:技能中包含对 references/ 目录下文件的引用,需确保这些资源可用。

常见问题

此技能是否免费?
是的,它遵循 Apache 2.0 许可,可以自由使用和修改。
此技能是否支持除 CameraX 之外的其他相机 API?
主要聚焦于 CameraX,但包含从 Camera1 和 Camera2 迁移到 CameraX 的指南。它不提供直接使用 Camera2 的深入指导。
如果我的项目使用 Kotlin,是否适用?
是的,所有示例都用 Kotlin 编写,适用于 Android 的 Kotlin 开发。
此技能能否保证生成的代码完全正确?
不能,它提供指导而非保证。建议始终对生成结果进行审查和测试。

同仓库的其他 Skills

均来自 android/skills

相关 Skills