从零到 APK:用 AI Agent 链式驱动开发一个 Android Hello World 应用

本文最后更新于 2026年7月26日 晚上

2026 年 7 月 26 日,我用一条 AI Agent 链路(ADP → IDE Hub → OpenCode)完成了一个 Android Hello World 应用的开发,并把它安装到了手机上。整个过程约 2 小时,中间踩了 8 个坑,全部自动修复。

为什么做这个实验

Android 开发一直是我心里的一个”白盒”——我知道每一步该做什么,但从来没有亲手跑通过完整的构建链路。环境配置、Gradle 工具链、Java 版本兼容……每一个环节都可能卡住。

更重要的是,我想验证一套AI 驱动的开发流水线

1
ADP(PM/策划) → IDE Hub(执行器网关) → OpenCode(编码执行器) → 构建 → APK

如果这条链路能跑通 Android 这样复杂的构建系统,那说明这套方法论是通用的。

需求:一个最简单的 Android Hello World

只有一个要求:启动后显示一行字——“Hello, Android!”。

技术栈锁定:

组件 版本
Android SDK compileSdk 35
Kotlin 2.0.21
UI 框架 Jetpack Compose (Material 3)
构建工具 Gradle 8.7, Java 17 toolchain
Android Gradle Plugin 8.5.0
minSdk / targetSdk 24 / 35

ADP:PM 不写一行代码

我用的 ADP(Auto-Develop Plus)是一套 PDCA 循环驱动的开发框架,核心铁律是:

PM 不写代码,只负责策划、派发、验收。

它的工作流程:

1
Step 0(需求提炼) → P(策划)→ D(执行)→ C(检查)→ A(纠正)→ 下一轮 Step 0

P 阶段:策划

ADP 首先进入 P 阶段,生成:

  • PRD:产品需求文档
  • WBS:工作分解结构(7 个 WB)
  • 验收标准:5 条 AC
  • TASK 卡片:精确的任务指令,含三层约束

然后必须呈现给用户确认(这是 ADP 的铁律——首次 P 不确认就进入 D,80% 需求会歪)。我确认没问题后,进入 D 阶段。

D 阶段:派发给 OpenCode

ADP 不直接写代码,而是通过 IDE Hub 把任务卡片派发给 OpenCode:

1
ADP → IDE Hub(选执行器)→ OpenCode(编码执行)

IDE Hub 自动检测可用模型,选最强的(opencode/deepseek-v4-flash-free),然后通过任务卡片把指令传给 OpenCode。

C 阶段:验收

三层验证:

  1. APK 文件存在且大小正常(7.6MB)
  2. 项目结构完整(Kotlin 源文件、Gradle 配置、Manifest 齐全)
  3. 语法检查通过

踩坑记录:8 个问题的自动修复

这才是最有趣的部分。整个 D 阶段 OpenCode 遇到了 8 个问题,每一个都是 ADP/IDE Hub 自动处理或我手动确认后的修复:

1. 模型选择错误

OpenCode 返回的可用模型列表是 big-pickle,而不是预期的 deepseek-v4-flash-free。原因是模型选择逻辑中 strip 了 opencode/ 前缀导致匹配失败。

修复:保留完整模型名,opencode run --model 必须带 opencode/ 前缀。

2. 任务卡片路径错误

IDE Hub 传的是占位符指令而非真正的任务卡片内容。

修复:实现任务卡片路径读取逻辑,从 ADP 项目目录下的 tasks/ 读取。

3. Gradle 需要 Java 17 工具链

AGP 8.5+ 强制要求 Java 17 工具链,但服务器只有 Java 21。

修复:下载 Microsoft JDK 17,设置 JAVA_HOMEorg.gradle.java.installations.paths。Adoptium 下载超时,最终走了 Microsoft 镜像。

4. 根项目 build.gradle.kts 误配

项目模板把 Android 插件配在了根项目,导致构建失败。

修复:根项目只配置 apply false,实际插件应用在 app 模块。

5. Compose 编译报错

ColumnKt.Column inline 方法找不到,是 Compose 编译器扩展版本不匹配。

修复:添加 composeOptions { kotlinCompilerExtensionVersion = "1.5.14" }buildFeatures { compose = true }

6. Manifest 资源缺失

AndroidManifest.xml 中引用了 mipmap 图标资源,但项目模板没有包含图标。

修复:简化 Manifest,去掉 AppCompat 主题引用。

7. Gradle Wrapper 损坏

初始模板的 gradle-wrapper.jar 不完整。

修复:手动下载 Gradle 8.7 完整版并提取正确的 JAR。

8. Adoptium/foojay 下载超时

国内网络限制导致官方镜像无法访问。

修复:改用 Microsoft 镜像下载 JDK。

结果:APK 跑起来了

最终产出的 APK 文件:

1
app/build/outputs/apk/debug/app-debug.apk  (7.6MB)

通过 NAS 传输到手机后安装,启动效果:

Hello Android 应用运行截图

白底、紫色粗体 “Hello, Android!”、灰色副标题 “欢迎来到 Android 世界”。完美。

这条链路为什么重要

这不是一个 Hello World 的故事,而是一个方法论验证的故事。

验证了什么:

  1. ADP 的铁律可行——PM 不写代码,只策划、派发、验收,整条链路没有跳过检查阶段
  2. 三层约束有效——全局 AGENTS.md(Karpathy 四原则)→ 项目 AGENTS.md(技术栈/架构)→ 任务 TASK 卡片(精确范围),确保 OpenCode 不会跑偏
  3. 构建环境处理是必需的——D 阶段不只是编码,还包括工具链、依赖、配置等基础设施的自动修复
  4. PDCA 循环真的跑起来了——从 P(策划)到 D(执行)到 C(验收)到 A(无偏差,进入下一轮),整个循环一次跑通

技能优化沉淀

这次实验直接推动了两个技能的更新:

技能 版本 优化内容
ADP v1.4.0 整合自主决策三级规则;D 阶段构建环境处理(JDK/Gradle);任务卡片编号规则
IDE Hub v3.2.0 Codex 执行器支持;模型前缀修复;Linux 构建环境说明

还新增了一个关键机制:AGENTS.md 自动注入。以后每个新项目都会自动在根目录生成 AGENTS.md,作为第二层约束,确保执行器知道”这是什么项目、技术栈是什么、该改哪里”。

参考文献

下一步

这个 Hello World 只是一个起点。接下来:

  1. 给应用加 UI 交互(按钮、输入框)
  2. 探索 ADP 驱动更复杂的项目(前后端分离应用)
  3. 把整条链路做成可复用的 CI/CD 流程

AI 驱动的开发流水线,第一步跑通了。


从零到 APK:用 AI Agent 链式驱动开发一个 Android Hello World 应用
https://normdist.com/2026/07/26/ND-20260726-001-android-hello-world-apk/
作者
小瑞
发布于
2026年7月26日
许可协议