LiteRT-LM跨平台编译完整指南:Android NDK与iOS预编译库快速上手
2026/8/23 14:35:02 网站建设 项目流程

LiteRT-LM跨平台编译完整指南:Android NDK与iOS预编译库快速上手

【免费下载链接】LiteRT-LMLiteRT-LM is Google's production-ready, high-performance, open-source inference framework for deploying Large Language Models on edge devices.项目地址: https://gitcode.com/GitHub_Trending/li/LiteRT-LM

LiteRT-LM 是 Google 官方出品的生产级端侧大模型推理框架,LiteRT-LM 跨平台编译是将其部署到 Android、iOS 等设备的关键一步。本文将带你完整走通两条路线:使用Android NDK 交叉编译出 arm64 目标库,以及直接集成iOS 预编译库,让你无需搭建复杂的构建环境就能在自有 App 中跑起本地大模型。

📦 为什么选择 LiteRT-LM

LiteRT-LM 主打"一套代码、全平台部署",核心卖点:

能力说明
📱 跨平台Android、iOS、Web、桌面端、树莓派等 IoT 设备
🚀 硬件加速GPU(OpenCL / Metal / WebGPU)与 NPU 加速器
👁️ 多模态支持视觉与音频输入
🔧 工具调用Function Calling,支持 Agentic 工作流
📚 模型生态Gemma、Llama、Phi-4、Qwen 等主流模型

它提供 Python(稳定)、Kotlin(稳定)、C++(稳定)、Swift(早期预览)等语言 API,编译产物可直接被这些上层接口调用。

🗂️ 先看懂 prebuilt/ 预编译库体系

打开仓库你会发现prebuilt/目录按平台组织好了现成的动态库——这是 iOS 集成的核心资源:

平台目录库格式与内容
Android arm64prebuilt/android_arm64/.so:GPU/OpenCL/WebGPU 加速器、TopK 采样器、约束解码库
iOS 真机prebuilt/ios_arm64/.dylib:核心运行时 +Metal 加速器
iOS 模拟器prebuilt/ios_sim_arm64/.dylib:与真机同构,供 Xcode 调试
Linux x86_64 / arm64prebuilt/linux_x86_64/.so:WebGPU 加速器、采样器
macOSprebuilt/macos_arm64/.dylib:Metal + WebGPU 双加速
Windowsprebuilt/windows_x86_64/.dll+.lib

每个平台的库文件分工非常清晰,以 iOS 真机为例:

  • libLiteRt.dylib—— 核心推理运行时
  • libLiteRtMetalAccelerator.dylib—— Metal GPU 加速后端
  • libLiteRtTopKMetalSampler.dylib—— Metal TopK 采样器
  • libGemmaModelConstraintProvider.dylib—— 约束解码(结构化解码)

从 v0.16 起还发布了版本化的C API 预编译共享库包,意味着你在任意语言里都能原生绑定 LiteRT-LM,不必自己编译动态库。

🤖 Android NDK 交叉编译分步实战

1. 获取代码并准备 NDK 环境

git clone https://gitcode.com/GitHub_Trending/li/LiteRT-LM cd LiteRT-LM

项目预设要求 NDK 位于~/android-ndk/android-ndk-r26d。建议安装NDK r26d并保持该路径一致(后续会修改预设来适配你的环境)。

2. 用 CMake Preset 一键配置并编译

项目内置了 Android arm64 的编译预设,两步命令即可:

cmake --preset android-arm64 cmake --build cmake/build/android-arm64 -j4

背后的机制值得了解:

  • CMakePresets.json中定义了android-arm64预设,自动注入CMAKE_SYSTEM_NAME=Android、API 28、arm64-v8ac++_shared等参数
  • 工具链封装在cmake/toolchains/litertlm_android.toolchain.cmake,它会自动定位 NDK 自带的android.toolchain.cmake,校验失败直接报FATAL_ERROR,避免"半配置"的诡异错误
  • 同目录的litertlm_android.script.cmake负责处理 Rust 子组件的交叉链接器(aarch64-linux-android目标),并把 Release 优化从-O3降为-O2以控制编译内存
  • CMakeLists.txt采用 Super-Build 编排:先构建 protoc/flatc 等主机工具,再交叉编译主库,无需手动管理依赖顺序

3. 控制并行度,避免 OOM

官方构建文档(docs/getting-started/cmake.md)特别提醒:依赖树复杂,并行度过高会导致SEGFAULT 或 OOM-kill。推荐公式:

可用内存(GB) ÷ 8 ≈ 最大-j(32GB 内存 →-j4

如果你更想用容器环境,仓库还提供cmake/Containerfile,可一键构建出带全部依赖的 podman/docker 镜像。

🍎 iOS 预编译库快速集成

iOS 路线最省心——不需要交叉编译,直接用仓库内的现成库:

1. 选择对应架构的库

真机运行选prebuilt/ios_arm64/,Xcode 模拟器调试选prebuilt/ios_sim_arm64/,两者文件同构。

2. 通过 Swift 包接入

仓库swift/目录就是现成的 Swift Package,Package.swift已定义好目标依赖。API 入口集中在:

  • swift/Engine.swift—— 引擎初始化与生命周期
  • swift/Conversation.swift—— 会话与流式输出
  • swift/EmbeddingEngine.swift—— 向量嵌入引擎

官方示例可直接参考samples/ios_and_mac/ContentView.swift(含 iOS 与 macOS 双端说明)。多模态场景下,视觉输入会先经过support/preprocessor/中的前处理管线:

3. 工具调用能力开箱即用

编译好的库完整支持 Tool Use:模型输出的函数调用请求会经过解析器格式化与校验,流程如下图所示:

Kotlin/Android 侧同样享受完整能力,可参考kotlin/java/com/google/ai/edge/litertlm/example/Main.kt中的终端示例。

⚡ 常见问题速查表

问题现象原因解决办法
Could not find the Android NDK toolchain预设中 NDK 路径与本机不符修改CMakePresets.jsonCMAKE_ANDROID_NDK为你实际的 NDK 路径
编译中途被 Signal 9 杀掉并行任务过多触发 OOM按"内存 ÷ 8"降低-j
Rust 子组件编译失败缺少 Rust 工具链安装 Rust 并确认支持对应 Android 目标三元组
主机系统不支持工具链仅支持 Linux/Darwin 交叉编译换用 Linux 或 macOS 构建 Android 目标

✅ 总结

LiteRT-LM 的跨平台编译策略非常务实:iOS 用预编译库零门槛集成,Android 用一条 Preset 命令交叉编译。掌握本文后,你可以:

  • 通过cmake --preset android-arm64在 PC 上产出 Android 目标库
  • 直接从prebuilt/ios_arm64/取 Metal 加速动态库接入 Swift 工程
  • samples/swift/目录中的示例快速验证推理效果

关键路径速查

  • 构建入口:CMakeLists.txtCMakePresets.json
  • Android 工具链:cmake/toolchains/litertlm_android.toolchain.cmake
  • 构建文档:docs/getting-started/cmake.md
  • 预编译库:prebuilt/(按平台分子目录)
  • Swift 包与示例:swift/samples/ios_and_mac/

【免费下载链接】LiteRT-LMLiteRT-LM is Google's production-ready, high-performance, open-source inference framework for deploying Large Language Models on edge devices.项目地址: https://gitcode.com/GitHub_Trending/li/LiteRT-LM

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询