ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

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

LiteRT-LM跨平台编译完整指南:Android NDK与iOS预编译库快速上手 LiteRT-LM跨平台编译完整指南Android NDK与iOS预编译库快速上手【免费下载链接】LiteRT-LMLiteRT-LM is Googles production-ready, high-performance, open-source inference framework for deploying Large Language Models on edge devices.项目地址: https://gitcode.com/GitHub_Trending/li/LiteRT-LMLiteRT-LM 是 Google 官方出品的生产级端侧大模型推理框架LiteRT-LM 跨平台编译是将其部署到 Android、iOS 等设备的关键一步。本文将带你完整走通两条路线使用Android NDK 交叉编译出 arm64 目标库以及直接集成iOS 预编译库让你无需搭建复杂的构建环境就能在自有 App 中跑起本地大模型。 为什么选择 LiteRT-LMLiteRT-LM 主打一套代码、全平台部署核心卖点能力说明 跨平台Android、iOS、Web、桌面端、树莓派等 IoT 设备 硬件加速GPUOpenCL / Metal / WebGPU与 NPU 加速器️ 多模态支持视觉与音频输入 工具调用Function Calling支持 Agentic 工作流 模型生态Gemma、Llama、Phi-4、Qwen 等主流模型它提供 Python稳定、Kotlin稳定、C稳定、Swift早期预览等语言 API编译产物可直接被这些上层接口调用。️ 先看懂 prebuilt/ 预编译库体系打开仓库你会发现prebuilt/目录按平台组织好了现成的动态库——这是 iOS 集成的核心资源平台目录库格式与内容Android arm64prebuilt/android_arm64/.soGPU/OpenCL/WebGPU 加速器、TopK 采样器、约束解码库iOS 真机prebuilt/ios_arm64/.dylib核心运行时 Metal 加速器iOS 模拟器prebuilt/ios_sim_arm64/.dylib与真机同构供 Xcode 调试Linux x86_64 / arm64prebuilt/linux_x86_64/.soWebGPU 加速器、采样器macOSprebuilt/macos_arm64/.dylibMetal 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_NAMEAndroid、API 28、arm64-v8a、c_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 PackagePackage.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.json中CMAKE_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.txt、CMakePresets.jsonAndroid 工具链cmake/toolchains/litertlm_android.toolchain.cmake构建文档docs/getting-started/cmake.md预编译库prebuilt/按平台分子目录Swift 包与示例swift/、samples/ios_and_mac/【免费下载链接】LiteRT-LMLiteRT-LM is Googles 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),仅供参考
返回列表