AI Agent 写了个 Android 扫码 App——从零到扫码成功的 3 轮 PDCA
本文最后更新于 2026年7月27日 早上
7 月 26 日晚上,我对 Hermes 的 AI 助手说了一句:“帮我做一个支持扫码的 Android App。”
7 月 27 日凌晨 1 点,一个 36MB 的 APK 已经编译成功。早上一试,扫码正常。
从零到能用的扫码 App,3 轮 PDCA 循环,纯 AI 驱动开发。这不是我第一次用 AI Agent 写代码,但这次是第一次做 Android 原生应用——没有现成的模板、没有熟悉的代码结构,一切都要靠 Agent 从零推。
为什么做扫码 App
需求本身很简单:张老师需要一台 Android 手机上的扫码工具,扫二维码、扫条码都行。
这类需求在开发者世界很常见,但放在 AI Agent 的角度,这是个好检验项目:
- 技术栈陌生:Android 原生开发不是 AI 的日常训练数据
- API 复杂:CameraX + ML Kit 的组合有多个版本兼容性问题
- 端到端:从需求到 APK,不靠人工干预
如果这个能跑通,说明 AI Agent 已经可以独立完成跨技术栈的完整应用开发。
技术选型
AI 助手选了 CameraX + ML Kit Barcode Scanning:
| 组件 | 版本 | 理由 |
|---|---|---|
| CameraX | 1.3.4 | 比 Camera2 简单,生命周期自动管理 |
| ML Kit Barcode | 17.3.0 | 离线条码识别,支持 QR/EAN/UPC 等主流格式 |
| Kotlin | 2.0.21 | 当前 Android 开发标准 |
| Jetpack Compose | — | 声明式 UI,代码量小 |
选择理由很务实:CameraX 比 Camera2 对新手友好,ML Kit 比 ZXing 更新更快,Compose 让 UI 代码少一半。
三轮 PDCA 开发过程
ADP 开发循环每轮 15 分钟左右,3 轮下来完成了从 Hello World 到完整扫码功能。

第 1 轮 P → D:从需求到代码骨架
P 阶段产出了 TASK-20260727-001 任务卡片,明确了 REQ-002 条码扫码功能。
D 阶段通过 ide-hub 派 OpenCode 执行,代码在 /home/tony/projects/Hello Android/ 下生成:
1 | |
第 2 轮 C:检查发现问题
C 阶段跑 ./gradlew assembleDebug,BUILD SUCCESSFUL 但有几个 Warning:
1 | |
这些不是阻塞问题,但说明选用的 API 版本不完全匹配。
第 3 轮 A → 下轮 P:修复 API 兼容性问题
真正的工作在第 3 轮。两个 API 问题需要手动修复:
问题 1:BarcodeScannerOptions 在 ML Kit v17.x 的 Kotlin 中不可用
1 | |
默认配置已经覆盖了 QR/EAN/UPC/Code-128/Data Matrix 等主流格式。
问题 2:CameraX 1.3.4 的 API 变更
1 | |
这个错误是因为 ML Kit v17 与 CameraX 版本不匹配导致编译失败,修复后 BUILD SUCCESSFUL。
最终成果
36MB APK,构建成功,推送到 Gitee,Git tag v0.4.0。
1 | |
第二天在真机上试了扫码,QR Code、EAN-13 条码都能正常识别。
三个有价值的发现
1. ADP 开发循环对陌生技术栈有效
Android 开发不是 AI 的训练数据强项,但 3 轮 PDCA 就把问题解决了。关键在 C 阶段抓 API 兼容性问题——不是语法错误,而是版本不匹配。如果 C 阶段只看”BUILD 成功”就放过了,问题会留到运行时。
2. ML Kit API 的 Kotlin 兼容性有坑
BarcodeScannerOptions 在 Java 中正常,在 Kotlin 中不可用。这个坑不在文档里,只有真编译才会暴露。以后 Android 项目用 ML Kit,优先用默认配置,需要指定格式时才查 Java 兼容性。
3. CameraX surfaceProvider 是方法不是属性
这个坑更隐蔽:Google 官方示例还在用属性写法,但 CameraX 1.3.4 已经是方法签名。Agent 生成代码时参考的可能是旧示例。
一个更深层的思考
这次开发让我想到:AI Agent 写代码,最大的价值不是“写得快”,而是 C 阶段发现问题 → A 阶段修复 这个闭环跑得通。
第一轮生成代码有 Bug,第二轮发现,第三轮修复。如果只有 P + D,这个 App 可能永远停在“BUILD 但有 Warning”的状态。
ADP 的 PDCA 不只是项目管理框架,它是让 AI 从“一次性生成”变成“迭代交付”的机制。
参考文献