往期尝试用AI从0开始创建并发布了微信小程序,我给自己定了个新挑战:

不用本地环境,不花一分钱,只用 AI + 云端,创建并发布安卓应用。

整个链路如下:

你写需求 → AI写代码 → GitHub → 自动构建 → Firebase真机测试 → 报告返回

这就是我现在在实践的一种新模式:

👉 Vibe Coding(氛围编程)

本文会分享:

  • 如何从零开始用AI创建一个安卓应用

  • 如何利用GitHub Action构建应用

  • 如何利用Firebase进行应用测试和分发

  • Vibe Coding的使用体验及建议

本文不会涉及:

  • 如何写Kotlin代码

  • 如何配置JDK、Gradle等环境

  • 如何使用Github命令行

  • 如何在安卓商店上线应用

使用到的工具:

  • 一台浏览器上网的低配电脑

  • 一个AI聊天工具(非必须,本项目用Gemini)

  • VS Code (不用特意安装, 网页版的完全够用)

  • Github账号 (https://github.com/)

  • Firebase账号 (https://firebase.google.com/)


搭建云端流水线

一、环境选择

随着语言大模型和智能体Agent的能力提升,vibe coding方案层出不穷,从Cursor、Antigravity、VS Code等带GUI的IDE到Claude Code、OpenClaw等CLI工具,长出手脚的智能体早不限于在聊天框里给方案,或项目区里写代码,它可以在你的终端操控各类文件,推送代码到远程仓库,发邮件或打开浏览器完成各种操作。为了你的电脑安全,推荐把Agent限制在沙箱或云端。

安卓应用对运行环境要求较高,如果要带手机模拟器,至少需要50G空间,使用微信小程序那种开两个IDE、一个写代码一个测试的办法(比如VS Code + Android Studio),可能准备阶段的环境配置就把零基础小白逼疯。

经过对比,我选用了全球最大代码仓库GitHub自带的codespaces作为我的项目入口。codespaces是GitHub临时为你项目拉起的沙箱,相当于一台虚拟的机器,用户可以使用Web版或本地的VS Code IDE连接到codespaces进行开发,VS Code里面有丰富的插件,也就是AI 程序员听候你差遣,这些AI程序员入口是聊天框,它们收到指令后就能根据你的需求执行项目编码、提交Github代码库等工作。官方的Copilot插件有50条Agent问答的免费额度,打开codespaces直接就能用。

因为在云端,即使AI偶然出错,它也不会对你的本地机器进行破坏。安全起见,我还专门开了个新的Github账号供它使用。

浏览器启动codespaces:

VS Code桌面版连接codespaces:

二、应用构建

我让Copilot写个最基础的Hello World安卓程序(就是打开应用只显示“Hello World”这行字),它马上就写好了。但要怎么使用这个应用呢?如果是Web程序,浏览器打开HTML就能看到效果,如果是微信小程序,微信开发者工具打开项目能看到效果。codespaces资源有限,也没有手机模拟器,于是我让Copilot给我生成一个apk应用安装包文件,我准备下载到手机测试。

❌ 坑1:Codespaces网络受限 开发工具版本冲突

想象是我敲一句文字需求,喝杯咖啡回来就有个apk等着我,但现实是:

Build failed with 23 errors

我让另一个AI(比如Google的Gemini网页版)分析Copilot执行日志,发现它卡在了环境配置那一块。

安卓开发最痛苦的就是版本匹配:Gradle 版本、Android Gradle Plugin (AGP) 版本、Kotlin 版本 和 Compose 编译器版本 必须严格对齐。AI 的错误逻辑:编译失败,于是尝试将 libs.versions.toml 里的某个版本(比如 Kotlin)升了一级。这导致了新的 Gradle 报错(例如:当前 Gradle 不支持该版本的 Kotlin),于是 AI 又去改 gradle-wrapper.properties。

它在无穷无尽的组合中排列组合,始终无法同时满足 4-5 个维度的兼容性。

进入死循环。。。。

Gemini热心支招:你让Copilot不要用apt-get去拿老旧版本,用wget。

Copilot尝试后回复“wget命令被禁用,我用Curl可以吗?那我用Curl试试,报告,Curl也被禁用了……”

codespaces是个受限的虚拟环境,并不像阿里云或AWS租台主机那样拥有较高权限。


❌ 坑2:Codespaces CPU100%  内存爆炸(OOM)

在Copilot尽忠尽职的尝试build apk文件和Gemini的狗头军师指挥下,codespaces越来越慢,我VS Code都连不上去。

免费 Codespaces配置:

  • 内存 8/16G
  • CPU 2/4C
  • 磁盘32G

对于安卓开发不太够用。我在等着它告诉我活干完了,实际可能是:

👉 AI 还没写完代码,进程被系统杀了

这个时候该庆幸,风扇呼啸作响的不是我的电脑。

第一次尝试,以铲掉整个codespaces虚拟环境告终 💔。


✅切换GitHub Actions

重新建了一个codespaces后,Gemini给我支招:“既然 codespaces 的网络和内存受限,那我们直接“金蝉脱壳”,把战场转移到 GitHub 官方的 Github Action(提供CI/CD自动化构建、测试) 上。

我让 Copilot 不要在本地乱装东西,转而帮我写一个GitHub工作流配置文件build.yml,用于代码编译和构建。只要把这个文件提交上去,GitHub 就会自动分配一台带网、带环境的高性能服务器帮我干活。一台机干活变两台机干活,环境配置和算力不足的问题马上解决。


❌ 坑3:代码离家出走了

期间 AI 闹了个小乌龙:它把项目的文件夹建在了 Git 仓库的外头,导致 Git找不到代码,编译直接报错。这是由于AI跑终端命令时工作目录不明确引起。AI无法自动修复,为了节省对话轮次,,还是我执行mv命令把文件夹挪回去才让流程继续。

建议:AI有限额,我是免费的,简单的任务就不劳烦它了。


三、应用测试

Github Action成功给我交付了apk,但这个是AI写的代码,哪知道它是不是个木马,没经验证的程序不宜直接在自己手机上安装。

Gemini又给我推荐Firebase,说安卓是它家的,用它家的测试平台最适合。虽然Gemini有广告植入嫌疑,但无可否认,它这个建议管用,Firebase免费用户每天有10次虚拟机和5次真机测试额度,测试完成会提供测试报告、截图和视频。

我在Firebase手工新建好项目和应用后,把相应信息写入Github的项目保险箱。然后告诉Copilot在Github Aciton流水线中加入Firebase测试的步骤。

GitHub保险箱是GitHub给项目保存隐私数据和环境变量的地方。

网页版配置路径如下:

Repositories->Setting->Secrects and variables->Actions->New repository secrect


❌ 坑4:Firebase 权限迷宫(403地狱)

如果说之前的坑都是小打小闹,这个坑我就是栽进去晕头转向,还间接引发了坑5的安全问题。

Github Aciton调用Firebase功能进行测试,需要给它配置一个能使用FirebaseAPI的Google云账号,把账号的私钥存到GitHub的保险箱中。

Github Aciton执行Firebase或gcloud(Google云)命令时反复看到:

403 Not authorized

原因是:

👉 云平台默认“防你自己”,你必须手工:

    • 配 IAM 权限
    • 开 API
    • 绑定 Service Account
       

    前面的问题我基本是在codespaces里告诉Copilot修复,这个却要我手工去Google Cloud网页里配置权限。且不说它有没有提供API,即使有,我也不敢交给AI配。Google那么多产品,就怕哪个配错了会导致欠费。

    建议:先授予高权角色Eiditor,流程跑通后,再缩小权限。


    ❌ 坑5:API Key 被 AI 自动上传(⚠️重点)

    API-Key是使用产品的私有凭证,调用API-Key就拥有账户相应的权限,有初创公司甚至被盗取API-Key损失几十万美元。一个良好的实践是,每次提交Github仓库前,自己检查一下提交的文件里有没有API-Key或其他密钥,确认没问题再让AI继续。

    但是随着失败轮次增多,我实在没精力盯结果,就只交代Copilot在提交前自己检查一下,不要提交API-Key等敏感数据,我给它授予全部权限,意外就这么发生。

    AI创建了一个google-service.json文件放进项目中,google-service.json包含了一个API-Key,一旦推送到GitHub就等于向全世界公开。

    创建应用时,官方指引把该json文档放入项目里。GitHub的标准做法是把密钥和变量放在项目的保险箱中,AI读不到。但我曾经把google-service.json文件的内容粘贴给AI参考,让它修复包名不一致的问题。没想到AI在后续处理失败构建时,自作聪明写了一套容错方案:它在代码里设定,如果云端读不到环境变量,就直接去读项目里的google-service.json,它非常清楚这个文件仅放在本地不能被GitHub Action构建时读取,所以它顺手把它提交并推送到GitHub远程仓库。这就相当于为了防止忘带钥匙,把备用钥匙直接贴在大门上。

    google-services.json的官方使用说明:

    代码提交的同时,Google和Github就先后给我发警示邮件,让我修复密钥泄露问题。虽然这个属于弱密钥,别人拿去用可能只是消耗我Firebase的免费额度,甚至不在我那个app里还用不了,我还是按照提醒废弃了这个API-Key,轮替了一个新的。

    建议:Copilot自定义Agent,把每一轮都要用到的指令和注意事项写进去系统提示词。Github项目创建时选择私有,调试完再公开,中间提交了密钥就铲掉项目重建。慎防提示词注入风险,不能指望你的Agent完全遵照指令行事。敏感信息不要暴露给它,它接触不到机密,想泄露都难。

    ✅让GitHub Actions交付成果

    按照我的要求,Github Action任务构建成功,会在任务下提供apk和测试结果的下载连接,并发邮件通知开发者。

    hub Action流水线产物:

    测试流程:

    这个测试结果不是"Hello World", 是我通过发送需求"帮我升级应用,增加小游戏功能"后的效果。


    四、应用发布

    我继续对Copilot下达指令: Firebase测试成功后,发布应用新版本,并邀请测试者进行测试。我只需要人工把测试者邮箱配置在Github的项目保险箱中,后续分发都是Github Action调用Firebase自动化处理。安卓应用要发布到商店审核难度大,如果只是小范围使用,可以采用发布给测试者的方案。

    Github保险箱中的密钥:

    ✅最终成果:全托管无人值守的“Boss”模式解锁

    • 我可以躺在沙发上,打开轻薄本浏览器连入 Codespaces,对AI说:“帮我在首页加一个悬浮按钮,然后推送代码。”

    • 云端的 AI 就会自己改 Kotlin 代码、跑 Git 提交。

    • 三分钟后,GitHub Actions 自动打包完毕并上传云端。

    • 再过三分钟,Firebase 用真实的 Pixel 手机跑完自动化探索测试,生成录屏视频和报告。

    • 最后,一封标题为 “🤖 App 成功构建/测试/分发” 的汇报邮件悄然躺进我的邮箱,新版apk文件已分发给所有测试用户。

    至此,这条零成本的云端生产线彻底贯通!给大家看看它的全貌。

    Github Action流水线:

    系统架构图:


    五、系统限制

    设计的限制:

    • 代码提交前缺乏测试,无法查看效果,专业开发还是用Android Studio吧;

    • VS Code网页版对移动端支持不好,电脑交互不如微信、飞书等IM方便。

    • 用户创建和权限配置需要手动处理,如果你心大,也可以把我项目地址发给OpenClaw等智能体工具配置(我没试过,请自行承担风险:轻则封号,重则密钥被盗、资料被删…)。

    免费的限制:

    • codespaces免费用户配额受限,不使用时实例自动停止,重新开启需要等待;

    • Copilot免费用户模型能力一般,慢工也出不了细活;

    • Firebase免费用户测试次数限制,只适合轻度使用。


    模型智力大比拼

    每天的AI圈新鲜事层出不穷,会有种割裂感,一边觉得AI无所不能,一人指挥AI军团比比皆是,另一边又觉得AI费钱又不安全。

    随着AI的进化,使用AI的门槛越来越低。以前观点认为,要给AI明确角色,命令,详细步骤,但现在AI是自己会思考、调用工具、监控结果的智能体Agent,你跟它说太细反而限制了它的行动。比如我让它在codespaces里构建apk,它明明没这能力还在硬试,不如明确告诉它目标-我想要apk文件,遇到问题自己解决,不要告诉它用什么命令、什么步骤、在哪构建,它会自动执行、观察结果、找到你不知道的方法实现目标。

    因为AI的使用门槛变低,普通用户指令都差不多,AI本身的能力就变得尤为重要。Vibe Coding的核心是模型为基座的AI智能体Agent,有的Agent不会变通,就陷入了死胡同,烧token、费额度,还浪费你时间。

    VS Code里的AI编程助手插件很多,本项目主要用到以下几个,如果不是重度使用,或问题不复杂,多插件多账号轮流用免费额度就可以实现0成本。类比Boss不断招人免费干活,试用期过后裁掉。

    Copilot在codespaces里显示为chat的对话框:

    模型进步很快,各有所长,以下评测仅针对当下项目:

    • Copilot - Auto

    我在Copilot最先使用的模型是Auto自动选择。信了“它会根据任务类型调用合适的模型”的鬼话,接连踩坑后,我觉得它是哪个没人用就给你用哪个。

    • Copilot - GPT-5 mini

    这个模型超谨慎,每次提交前都停下来问“我要提交了,你检查完告诉我“,这不纯纯浪费额度吗?可能多用几轮它能适应用户习惯。

    • Copilot - Claude Haiku4.5

    Anthropic家的小弟,逻辑清晰,盯梢能力强,但是它也是把我的API-Key泄露的元凶。它甚至尝试使用 rm -rf 命令(强制删除文件), 被codespaces限制了。它正常时是删垃圾,抽风时可说不准会把你C盘清空。

    相比那些拉垮的模型,它是能干活的,只是要格外小心。

    Copilot产品成熟,用户众多,高级模型不给免费用,只能一堆矮子里面选高佬。新用户可以领取30天免费的Pro订阅会员,限额提升到300轮,高阶模型如Claude Opus是3倍计算。免费过后10美元/月。

    • Gemini Code Assist - Gemini 2.5 pro

    上文说的军师Gemini是Genmini网页聊天框的Pro模型。Gemini Code Assist是编程助手插件。它不支持用户管理上下文,写代码频繁出错,我也不知是使用姿势不对还是它在GitHub水土不服。

    军师Gemini推荐我去Google家的IDX做开发,不要用codespaces,说自己在自家的产品里面会更聪明(挽尊)。我半信半疑打开了IDX,发现它里面的Gemini尽管开了Agent模式,也99%只能对话,还汇报活都干完了。事倍功零,请了它Boss反过来为它打工,避雷。

    • Codex - GPT5.4

    Copilot订阅也能用这款模型,它是OpenAI GPT系列的大哥,在官方Codex插件中带少量免费额度。无论价格还是性能,它跟上面那堆明显不在一个档次。

    Codex插件模型:

    Agent日志打印清晰,盯梢盯得很紧(同一情况Haiku默认会休眠3分钟后再查看),不断给用户反馈和解释当前进度,如进度没更新,它也会说“至少到目前为止,本次改动未搞坏程序”。即使Github Action显示构建成功,它也会查看日志是否有隐藏错误或查看交付物的内容(apk版本号、测试日志、测试视频等),不符合用户要求就自动修复。

    耐心解析专治急性子:

    我这个基础项目还没榨干GPT5.4的能力。它会尽可能一轮对话解决问题,遇到权限问题不能解决的,马上停下指引我操作,绝不虚耗算力。它的免费额度是根据问题复杂度算的,没有明确的对话轮次限额。

    我告诉它提交前检查敏感信息,它此后每一次提交都会检查。

    它也不是不会犯错,通常你关注到前就自愈。

    如果一开始就用它,估计前面大多数坑都不会踩,有种AI本该这样强的错觉。

    比较结论:性能 GPT5.4 >> Claude Haiku 4.5 > 其他大厂小弟


    结语

    开发应用程序不是高深技术,在AI加持下人人皆可成为应用发布者,能否创造价值,关键还是取决于应用内容。如果你也想体验这条安卓应用自动化开发流水线,欢迎关注并私信作者。

    其他问题讨论,欢迎评论区留言。

    本文首发于公众号:飘月啸东风

    Logo

    AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

    更多推荐