在手机上跑 AI 模型——不需要联网,数据不出设备——这不是概念,Gemma 4 现在就能做到。E2B 和 E4B 这两个小模型就是专门为手机设计的。这篇教程把 Android 和 iOS 的部署方式都讲清楚。
手机能跑哪些模型?
不是每个 Gemma 4 模型都塞得进手机:
| 模型 | 参数量 | 内存需求 | Android | iOS | 推荐? |
|---|---|---|---|---|---|
| Gemma 4 E2B | 2B | ~3 GB | 可以 | 可以 | 大部分手机首选 |
| Gemma 4 E4B | 4B | ~5 GB | 可以 | 可以 | 仅旗舰机 |
| Gemma 4 1B | 1B | ~2 GB | 可以 | 可以 | 最快但质量一般 |
| Gemma 4 4B | 4B | ~5 GB | 勉强 | 勉强 | 紧巴巴 |
| Gemma 4 12B+ | 12B+ | ~9 GB+ | 不行 | 不行 | 手机跑不了 |
E2B 和 E4B 是专门优化过的「边缘」模型,在能塞进手机的大小下同时支持文字、图片和音频。模型可以从下载安装全攻略里的任意渠道获取,详细的内存和存储要求看硬件配置指南。
Android 部署
Android 生态最成熟,Google 自家的整合做得很到位。
方案一:Google AI Edge SDK
Google 官方的手机端 Gemma 方案:
// build.gradle.kts
dependencies {
implementation("com.google.ai.edge:ai-edge-sdk:0.3.0")
}
// 在 Activity 或 ViewModel 中
import com.google.ai.edge.InferenceSession
import com.google.ai.edge.ModelConfig
class GemmaViewModel : ViewModel() {
private var session: InferenceSession? = null
fun initModel(context: Context) {
val config = ModelConfig.builder()
.setModelPath("gemma-4-e2b-it.task")
.setMaxTokens(1024)
.setTemperature(0.7f)
.build()
session = InferenceSession.create(context, config)
}
fun generateResponse(prompt: String): String {
return session?.generateResponse(prompt) ?: "模型未加载"
}
}方案二:AICore(Pixel 和三星)
AICore 内置在新款 Pixel 和三星 Galaxy 手机里,提供系统级 AI 加速:
// 检查 AICore 是否可用
val aiCoreAvailable = AICore.isAvailable(context)
if (aiCoreAvailable) {
// AICore 处理模型管理和优化
val session = AICore.createSession(
model = "gemma-4-e2b-it",
options = AICore.Options.builder()
.setAccelerator(AICore.Accelerator.GPU)
.build()
)
val response = session.generate("简单解释一下光合作用")
}AICore 的好处是模型可能已经在设备上缓存了,用户不需要单独下载 2-3GB。
方案三:MediaPipe LLM Inference API
MediaPipe 更灵活,兼容更多 Android 设备:
dependencies {
implementation("com.google.mediapipe:tasks-genai:0.10.20")
}
// 初始化 LLM
val options = LlmInference.LlmInferenceOptions.builder()
.setModelPath("/data/local/tmp/gemma-4-e2b-it.bin")
.setMaxTokens(1024)
.setTopK(40)
.setTemperature(0.7f)
.setRandomSeed(42)
.build()
val llmInference = LlmInference.createFromOptions(context, options)
// 生成文本
val response = llmInference.generateResponse("什么是机器学习?")
// 流式输出
llmInference.generateResponseAsync(prompt) { partialResult, done ->
// 逐 token 更新 UI
textView.append(partialResult)
}iOS 部署
方案一:AI Edge Gallery App
最简单的方式——从 App Store 下载 AI Edge Gallery。Apple 平台的具体优化技巧可以看专门的 iPhone 指南。
- 安装 AI Edge Gallery
- 浏览可用模型
- 下载 Gemma 4 E2B 或 E4B
- 开始聊天——完全离线
适合个人使用和测试,但没法嵌入你自己的 App。
方案二:LiteRT(TensorFlow Lite Runtime)
要在自己的 iOS App 里集成 Gemma 4:
import LiteRT
class GemmaModel {
private var interpreter: Interpreter?
func loadModel() throws {
guard let modelPath = Bundle.main.path(
forResource: "gemma-4-e2b-it",
ofType: "tflite"
) else {
throw GemmaError.modelNotFound
}
var options = Interpreter.Options()
options.threadCount = 4
// 用 GPU 加速
let gpuDelegate = MetalDelegate()
interpreter = try Interpreter(
modelPath: modelPath,
options: options,
delegates: [gpuDelegate]
)
}
func generate(prompt: String) throws -> String {
let tokens = tokenize(prompt)
try interpreter?.allocateTensors()
try interpreter?.copy(tokens, toInputAt: 0)
try interpreter?.invoke()
let output = try interpreter?.output(at: 0)
return decode(output)
}
}方案三:MediaPipe for iOS
MediaPipe 同样支持 iOS:
import MediaPipeTasksGenAI
let options = LlmInference.Options()
options.modelPath = Bundle.main.path(
forResource: "gemma-4-e2b-it",
ofType: "bin"
)!
options.maxTokens = 1024
options.temperature = 0.7
let llm = try LlmInference(options: options)
let response = try llm.generateResponse(inputText: "你好!")性能预期
对手机 AI 的速度要有合理预期:
| 设备 | 模型 | 速度 (tok/s) | 首 token (ms) | 内存占用 |
|---|---|---|---|---|
| Pixel 9 Pro | E2B | ~15-20 | ~800 | ~3 GB |
| Pixel 9 Pro | E4B | ~8-12 | ~1500 | ~5 GB |
| 三星 S24 Ultra | E2B | ~15-18 | ~900 | ~3 GB |
| iPhone 15 Pro | E2B | ~12-15 | ~1000 | ~3 GB |
| iPhone 16 Pro | E2B | ~15-18 | ~800 | ~3 GB |
| iPhone 16 Pro | E4B | ~8-10 | ~1500 | ~5 GB |
比电脑慢,但用来交互式聊天完全够了。首 token 会稍微慢一点因为模型需要初始化。
续航和发热
AI 推理是计算密集型任务,要注意这些:
| 关注点 | 实际情况 | 缓解方法 |
|---|---|---|
| 耗电 | 活跃使用约 5-8%/小时 | 限制最大生成长度 |
| 发热 | 推理时手机会变烫 | 长对话之间加冷却间隔 |
| 后台运行 | 系统可能杀进程 | 只在需要时加载模型 |
| 存储空间 | 每个模型 2-5 GB | 让模型下载作为可选功能 |
// 好的做法:不用时释放模型
override fun onPause() {
super.onPause()
session?.close()
}
override fun onResume() {
super.onResume()
if (session == null) initModel()
}离线才是杀手锏
手机端 AI 最大的优势是不需要联网。想想这些场景:
- 旅行:飞行模式下 AI 助手照样能用
- 隐私敏感任务:健康问题、个人日记、私密编码——数据完全不出设备
- 网络差的地方:农村、地铁、信号不好的区域
- 速度:没有网络延迟,回复马上开始
- 成本:模型下载后就是免费的,没有 API 费用
这是云端 API 根本做不到的事。Gemma 4 跑在你手机上,你的数据就留在你手机上。就这么简单。
手机端 vs 云端 API
| 因素 | 设备端 (Gemma 4 E2B) | 云端 API (Gemini) |
|---|---|---|
| 速度 | ~15 tok/s | ~50-100 tok/s |
| 质量 | 不错 (2B 模型) | 很好 (大模型) |
| 隐私 | 完全保护 | 数据发到服务器 |
| 离线 | 支持 | 不支持 |
| 成本 | 下载后免费 | 按 token 计费 |
| 续航影响 | 大 | 很小 |
| 配置 | 需要下载模型 | 只需 API key |
最理想的方案是混合使用:隐私敏感和离线任务用设备端 Gemma 4,联网时需要更高质量就回退到云端 API。
下一步
- 想在 iPhone 上跑? 看专门的 iPhone 指南 了解 Apple 平台的特定优化
- 不确定选哪个模型? 看 模型选择指南 了解完整阵容
- 想了解电脑的硬件要求? 看 硬件指南 了解桌面和笔记本的配置建议
手机 AI 还在早期,但已经能用了。从 E2B 模型开始,在你的手机上试一试。一个有用的 AI 完全跑在你口袋里的手机上——不需要联网、不需要 API key、不需要月费——想想还是挺厉害的。



