乐于分享
好东西不私藏

设备端AI会改变移动APP的架构吗

设备端AI会改变移动APP的架构吗

我在飞行模式下跑通了 AI:一次 Flutter 端侧模型的真实踩坑记录

过去两年,我一直以为“移动端 AI = 调 API”。

直到我的 Flutter 应用在相机启动时一次次被系统杀掉,我才意识到:

我对端侧 AI 的理解,一直都是错的。


一、那个让我尴尬的崩溃

那天我终于把准备了几个星期的 Demo 跑起来了:

  • Flutter 应用 ✅

  • 模型成功加载 ✅

  • 聊天界面干净漂亮 ✅

我打开相机 —— 这是我整个 Demo 最期待的功能 —— 对准桌上的东西,然后……

应用直接闪退。

不是 Dart 异常,也不是红色错误页,而是整个进程被系统干掉了

我盯着我的 Redmi Note 7 Pro 愣了几秒,重启、重试、再重启 —— 结果一模一样。

只要模型已加载 + 打开相机,Android 一定会杀掉我的 App。


二、我过去对 AI 架构的认知

过去两年,每当我要在 App 里加 AI 能力,答案几乎是条件反射式的:

  • 聊天机器人 → API

  • 图像识别 → API

  • 文本总结 → API

几行 Dart 代码,请求发出去,智能结果就回来了。

它太好用了,以至于我从未质疑过这套架构。

但我慢慢意识到,它有三个永远成立的前提:

1️⃣ 必须有网络

地铁隧道、飞机上、信号差的地方,你的 AI 功能直接失效。

用户不会给你报 Bug,他们只会默默卸载。

2️⃣ 每一次调用都要花钱

  • 1 万用户

  • 每人每天 50 次请求

  • 按 token 计费

小规模时你感觉不到,规模上来后,这不是成本问题,而是产品决策问题

3️⃣ 用户数据一定会离开设备

健康记录、财务描述、私密日记 ——

“数据会上传到我们的服务器(希望是加密的)”

对很多产品来说,这不是脚注,而是致命问题。


三、端侧 AI 为什么以前不可行?

以前不是没人想过在手机上跑模型,而是三个条件没对齐

条件

过去

现在

模型大小

几十 GB

1–2 GB(量化后)

硬件能力

无专用芯片

NPU / Neural Engine

工具链

极度原始

成熟 SDK + Flutter 插件


四、Gemma:端侧 AI 的真正转折点

Google 现在有两个同源的模型家族:

  • Gemini:云端、强、闭源、按次收费

  • Gemma:端侧、开源、免费、你说了算

可以把它们理解为:

  • Gemini = 五星级餐厅,吃一次付一次

  • Gemma = 你口袋里的菜谱,买一次,无限做


五、2026 年的现实:三者同时到位

✅ 模型层面:Gemma 4(Apache 2.0)

  • 约 1.3 GB(4-bit 量化)

  • 原生支持 文本 / 图像 / 音频

  • 可在 6 GB RAM 手机上稳定运行

  • Hugging Face 下载量 超过 1.5 亿次

我实际使用的是 Gemma 3n E2B(当时 flutter_gemma 尚未支持 G4)。


✅ 硬件层面

  • Apple Neural Engine

  • Qualcomm Hexagon

  • Google Tensor

过去两年发布的旗舰和中高端机,几乎全部标配 NPU。


✅ 工具链层面:flutter_gemma

flutter_gemma把 Google 的 LiteRT-LM 推理引擎封装成了干净的 Dart API:

  • ✅ GPU 加速

  • ✅ 流式响应(token streaming)

  • ✅ 多模态(Vision / Audio)

  • ✅ Function Calling

  • ✅ Android / iOS / Web / Desktop 一套代码

你只需要写 Dart。


六、那个崩溃的真正原因

Gemma 3n E2B ≈ 3 GB RAM

Android Camera Pipeline ≈ 1.5 GB RAM

再加上系统开销

在一台 6 GB RAM 的手机上,这根本装不下。

Android 的内存管理器做出了唯一正确的决定:

杀掉你的 App。

我换成相册选择图片后,Demo 正常工作了。

这次崩溃教会我一件事:

☁️ 云端 API 把资源成本藏起来了

📱 端侧 AI 把资源成本摆在你面前

你不能再假装不知道自己在消耗什么。


七、我从中学到的经验

经过测试,我给自己定了一些粗略规则:

设备内存

可行性

6 GB

勉强,需精心规划,避免实时相机

8 GB

常规流程稳定

12 GB

实时相机完全可行


八、我最终做出来的东西

这个 App 的能力包括:

  • ✅ 文本聊天(流式输出)

  • ✅ 图库图片理解

  • ✅ 全程离线运行

有三个瞬间让我印象最深:

  1. 第一次在飞行模式下得到回复

    模型完全不在乎有没有网,推理就在手机上发生。

  2. 相机崩溃

    它不是一个 Bug,而是一条信息:

    我以前写的很多 AI 功能,从未认真思考过内存。

  3. 别人主动开飞行模式测试

    这说明了一件事:

    用户对“真的离线 AI”还有多少不信任。


九、端侧 AI 的真实取舍(不忽悠版)

在太多演讲里,“端侧 AI 是未来”听起来像童话。

以下是我在实战中愿意对朋友说的实话。

⚠️ 下载成本是真实存在的

即使是 1.3 GB 的模型,也是一次性不小的下载。

你必须:

  • 做好下载 UI

  • 检测 Wi-Fi

  • 明确告诉用户:这是一次性的

诚实的用户,比你想象中更讲道理。


⚠️ 中端机内存压力是真实的

我的相机崩溃不是异常,而是 Android 的正确行为。

请在你要支持的最便宜的设备上测试。


⚠️ 质量很好,但不是最强

  • ✅ 总结、分类、翻译、结构化问答、图像理解:

    Gemma 4 E2B 非常优秀

  • ❌ 复杂多步推理(GPT-4o / Gemini Ultra 级别):

    仍然需要云端

现实架构 = 混合:

  • 日常智能 → 端侧

  • 重型推理 → 云端


⚠️ 模型更新需要提前规划

当更好的模型发布时,用户需要重新下载。

从第一天起就要考虑:

  • 远程配置模型地址

  • 后台下载

  • 平滑切换

不要事后补救。


十、什么时候端侧 AI 才是正确选择?

不是所有场景都适合,但以下情况特别值得

🔐 隐私不是加分项,而是底线

医疗、法律、金融类产品:

数据不出设备 是云 AI 永远给不了的承诺。

✈️ 离线比你想的重要得多

在印度、东南亚、非洲等市场,

网络是“时有时无”,而不是“永远在线”。

一个能在地铁里工作的 AI 功能,本身就是产品差异。

💸 按次计费会摧毁你的单位经济

一个笔记 App,如果每一条记录都要付费推理,

那它的商业模式从诞生起就岌岌可危。

⏱ 可预测的延迟很重要

云端 AI 有:

  • 限流

  • 冷启动

  • 偶发故障

端侧 AI 没有这些。

模型加载一次,一直可用。


十一、结语

这次踩坑之后,我对 Flutter + AI 的看法彻底变了:

**端侧 AI 不会让云端消失,

但它会逼你成为一个更清醒的架构师。**

如果你也在做 Flutter + AI,

建议你至少试一次:

在没有网络的情况下,让模型真正跑起来。

那种感觉,和你调一百次 API,完全不同。