
Android 應用程式的 AI:ML Kit、雲端 API 與裝置端 LLM 比較
Android 應用程式的三條 AI 路徑。Google ML Kit 用於常見任務,雲端 API 提供完整 LLM 能力,裝置端模型透過 llama.cpp 實現成本與隱私。為 Kotlin 開發者提供的實用比較。
Android 開發者有三種截然不同的方法為應用程式加入 AI。Google ML Kit 處理常見任務。雲端 API 提供前沿模型能力。透過 llama.cpp 的裝置端 LLM 讓你在不需要 API 費用或網路依賴的情況下獲得完整的文字生成能力。
每種方法服務於不同的目的。本指南從 Kotlin 開發者的角度進行比較。
路徑 1:Google ML Kit
ML Kit 是 Google 的行動裝置端機器學習 SDK。它為常見的 ML 任務提供可立即投入生產的 API,不需要任何 ML 專業知識。
ML Kit 能做什麼
ML Kit 提供針對特定任務的預建模型:
- 文字辨識 (OCR) 支援拉丁、中文、日文、韓文和天城文字
- 面部偵測 搭配地標追蹤和分類
- 條碼掃描 支援所有常見條碼格式
- 影像標籤 搭配超過 400 個類別
- 物件偵測與追蹤 在即時相機畫面中
- 姿勢偵測 用於身體地標追蹤
- 數位墨水辨識 用於手寫辨識
- 翻譯 支援 59 種語言,模型按需下載
- 智慧回覆 對話情境中的建議回覆
- 實體擷取 用於文字中的日期、地址、電話號碼
整合模式
// 文字辨識範例
val recognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS)
val image = InputImage.fromBitmap(bitmap, 0)
recognizer.process(image)
.addOnSuccessListener { text ->
Log.d("MLKit", "辨識結果: ${text.text}")
}
.addOnFailureListener { e ->
Log.e("MLKit", "辨識失敗", e)
}
ML Kit 不能做什麼
ML Kit 不支援執行大型語言模型。沒有內建的開放式文字生成、對話 AI、內容撰寫或複雜推理能力。智慧回覆提供簡短的訊息建議回覆,但它不是通用的聊天模型。
費用
免費。ML Kit 完全在裝置端執行。沒有 API 呼叫,沒有每次請求的費用,沒有使用量限制。
最適用於
OCR、條碼掃描、面部偵測、姿勢估計、影像標籤。Google 提供最佳化預建方案的任務。
路徑 2:雲端 API
從你的 Android 應用程式呼叫 OpenAI、Anthropic、Google Gemini 或其他供應商。模型在遠端伺服器上執行。
整合模式
suspend fun chat(message: String): String = withContext(Dispatchers.IO) {
val client = OkHttpClient()
val body = """
{"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "$message"}]}
""".trimIndent()
val request = Request.Builder()
.url("https://api.openai.com/v1/chat/completions")
.post(body.toRequestBody("application/json".toMediaType()))
.addHeader("Authorization", "Bearer $apiKey")
.build()
val response = client.newCall(request).execute()
// 解析 JSON 回應
parseResponse(response.body!!.string())
}
對於 Google Gemini,Android 有專用的 SDK(Google AI Client SDK),提供更原生的整合:
val model = GenerativeModel(modelName = "gemini-2.0-flash", apiKey = apiKey)
val response = model.generateContent("你的提示在此")
println(response.text)
費用
按 token 計價。Gemini Flash 是主要選項中最便宜的,每百萬 token $0.10/$0.40。GPT-4o-mini 為 $0.15/$0.60。在規模化時,費用從數百到數千美元每月不等。
Gemini Nano:介於兩者之間的選項
Google 提供 Gemini Nano 用於裝置端推論,但限制很多。它只在特定裝置上執行(Pixel 8/9 系列、Samsung Galaxy S24/S25 系列),且只能透過 AICore 系統服務使用。你不能使用自己的模型。你不能微調它。功能僅限於 Google 批准的特定任務。
對於需要跨整個 Android 裝置範圍的裝置端 AI 的開發者,Gemini Nano 不是一個通用解決方案。
最適用於
與 iOS 相同:原型開發、驗證、非常低流量,或需要前沿推理能力的任務。
路徑 3:透過 llama.cpp 的裝置端 LLM
直接在 Android 裝置上執行完整的語言模型。llama.cpp 提供推論引擎。你的微調 GGUF 模型提供智慧。
在 Android 上如何運作
llama.cpp 專案包含 llama.android,一個預建的 Android 函式庫,透過 JNI 提供 Kotlin 綁定。它在所有裝置上支援 CPU 推論,並在支援的硬體上透過 Vulkan 進行 GPU 加速。
// 使用 llama.android 的概念模式
class AiViewModel : ViewModel() {
private val llamaModel = LlamaModel()
fun loadModel(modelPath: String) {
viewModelScope.launch(Dispatchers.Default) {
llamaModel.load(modelPath, nThreads = 4, nGpuLayers = 32)
}
}
fun generate(prompt: String): Flow<String> = flow {
llamaModel.generate(prompt) { token ->
emit(token)
}
}.flowOn(Dispatchers.Default)
}
各晶片組的效能
| 晶片組 | 裝置 | RAM | 1B (tok/s) | 3B (tok/s) |
|---|---|---|---|---|
| Snapdragon 8 Gen 2 | Galaxy S23, OnePlus 11 | 8-12GB | 25-35 | 12-18 |
| Snapdragon 8 Gen 3 | Galaxy S24, OnePlus 12 | 8-12GB | 35-45 | 18-25 |
| Tensor G3 | Pixel 8/8 Pro | 12GB | 25-35 | 12-18 |
| Tensor G4 | Pixel 9/9 Pro | 12-16GB | 30-40 | 15-22 |
| Snapdragon 7 Gen 3 | 2024 年後中階機 | 6-8GB | 18-25 | 8-12 |
每秒超過 10 個 token 對聊天介面來說可用。過去兩年的旗艦裝置可輕鬆處理 1-3B 模型。
Android 碎片化因素
Android 的裝置多樣性比 iOS 更高。這既是挑戰也是優勢:
挑戰: 你需要跨晶片組和 RAM 配置進行測試。在 Galaxy S24(12GB)上運行良好的模型可能在 4GB 的低階手機上遇到困難。
優勢: 許多 Android 裝置有 8-12GB RAM,對裝置端模型來說很充裕。中階的 6-8GB 區間仍然可以有效執行 1B 模型。
實際做法: 以 1B 模型為目標以獲得廣泛相容性(支援 4GB 以上裝置)。為 8GB 以上 RAM 的裝置提供 3B 模型作為升級選項。在執行時偵測可用記憶體並調整。
記憶體管理
Android 的記憶體管理比 iOS 更為積極。系統會終止背景行程以回收記憶體。關鍵做法:
- 在前景 Service 中或 AI 功能活躍時載入模型
- 當使用者離開 AI 功能時釋放模型記憶體
- 處理
onTrimMemory回呼以在壓力下釋放資源 - 使用
ActivityManager.getMemoryInfo()在載入前檢查可用 RAM
費用
與 iOS 相同:一次性微調($5-50)、CDN 分發,然後每次推論成本為零。
比較
| 因素 | ML Kit | 雲端 API | 裝置端 LLM |
|---|---|---|---|
| 文字生成/聊天 | 否 | 是 | 是 |
| OCR/條碼掃描 | 是(最佳化) | 是 | 否 |
| 離線支援 | 是 | 否 | 是 |
| 每次推論費用 | $0 | $0.0001-$0.01 | $0 |
| 裝置覆蓋率 | 所有 Android 5.0+ | 所有連網裝置 | 4GB+ RAM |
| 隱私 | 裝置端 | 第三方伺服器 | 裝置端 |
| 自訂模型支援 | 否 | 透過 API 選擇 | 任何 GGUF 模型 |
| 微調 | 否 | 部分供應商 | 完整 LoRA/QLoRA |
實際決策框架
使用 ML Kit 當你需要 OCR、條碼掃描、面部偵測、姿勢估計或影像標籤時。Google 的實作是生產級且免費的。
使用雲端 API 當你在驗證功能、服務非常低流量,或需要前沿推理能力時。Gemini 的 Android SDK 讓這對 Android 開發者來說特別容易。
使用裝置端 LLM 當你需要對話 AI、內容生成、分類或任何大規模文字密集型 AI 功能時。零成本擴展、離線 支援和隱私保障是生產行動應用程式的決定性優勢。
微調流程(資料集準備、LoRA 訓練、GGUF 匯出)是像 Ertas 這樣的工具節省時間的地方。視覺化介面處理完整的工作流程,匯出的 GGUF 可在任何 Android 裝置上透過 llama.cpp 執行,無需額外配置。
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.
Keep reading

llama.cpp on Android: A Kotlin Integration Guide
Step-by-step guide to integrating llama.cpp into an Android app with Kotlin. JNI bindings, Vulkan GPU acceleration, model loading, and memory management across the Android device spectrum.

How to Add AI to Your Mobile App: A Developer's Decision Guide
A comprehensive guide covering every approach to adding AI features to iOS and Android apps. Cloud APIs, on-device models, and hybrid architectures compared with real cost and performance data.

AI in iOS Apps: CoreML, Cloud APIs, and On-Device LLMs Compared
Three paths to AI in your iOS app. CoreML for Apple's ecosystem, cloud APIs for capability, and on-device LLMs via llama.cpp for cost and privacy. A practical comparison for Swift developers.