在安卓设备上部署 llama.cpp 框架推理大模型
llama.cpp 是使用 C/C++ 编写的高性能推理框架,没有外部依赖,因此可以跨平台快速部署。并且,llama.cpp 还支持多种硬件平台上的计算库,包括 Metal、BLAS、CUDA、Vulkan、CANN 等,以加速模型的推理。此外,llama.cpp 还支持多种量化方案以加快推理速度并减少内存占用。
如果需要在移动端上部署大模型,那么使用 llama.cpp 是较为便捷的方案。本教程将介绍如何在单框架手机上使用 llama.cpp 框架推理大模型,主要分为三个步骤:
- 交叉编译推理框架
- 下载模型
- 在安卓设备上推理模型
1. 交叉编译推理框架
llama.cpp 官方仓库。仓库 Release 提供了数个硬件平台的编译版本,可以按需下载。如果没有预编译的版本,则可以按照以下步骤进行编译。
1.1. 配置 Android NDK 环境
在安卓开发者官网中下载最新版本的 Android NDK。将下载的压缩包拷贝到本地 Linux 环境下,然后解压:
unzip android-ndk-r29-beta3-linux.zip
设置 NDK 环境变量:
export NDK=<path>/android-ndk-r29-beta3
1.2. 配置 llama.cpp 编译选项
克隆 llama.cpp 仓库:
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
在 llama.cpp 仓库下,执行以下 cmake 命令以构建:
mkdir build
cd build
cmake \
-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_PLATFORM=35 \
-DCMAKE_C_COMPILER=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang \
-DCMAKE_C_FLAGS="-march=armv8-a" \
-DCMAKE_CXX_COMPILER=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ \
-DCMAKE_CXX_FLAGS="-march=armv8-a" \
-DGGML_OPENMP=OFF \
-DGGML_LLAMAFILE=OFF \
-DLLAMA_CURL=OFF \
-B build-android \
..
以下是编译参数的说明:
| 选项 | 说明 |
|---|---|
| DCMAKE_TOOLCHAIN_FILE | 指定 cmake 工具链文件 |
| DANDROID_ABI | 安卓程序二进制接口 |
| DANDROID_PLATFORM | 安卓平台版本 |
| DCMAKE_C_COMPILER | C 编译器路径 |
| DCMAKE_C_FLAGS | C 编译器标志 |
| DCMAKE_CXX_COMPILER | CPP 编译器路径 |
| DCMAKE_CXX_FLAGS | CPP 编译器标志 |
| DGGML_OPENMP | 是否使用 OpenMP 库,旧版本安卓暂不支持 |
| DGGML_LLAMAFILE | 是否使用 llamafile 打包,安卓暂不支持 |
1.3. 编译 llama.cpp
完成项目配置后,执行以下 cmake 命令进行安装:
cmake --build build-android --config Debug -j8
cmake --install build-android --prefix output --config Debug
安装完成后,在 output 下,我们可以看到生成了三部分内容:bin、include、lib。将这些文件夹传输到手机上:
adb shell "mkdir /data/local/tmp/llama.cpp"
adb push output/ /data/local/tmp/llama.cpp/
2. 下载模型
在 ModelScope 等社区上可以下载开源的模型。这里我们选择阿里千问模型,下载 Qwen3-0.6B-Q8_0 的 GGUF 模型:ModelScope.
模型下载完成后,发送到手机上:
adb shell "mkdir /data/local/tmp/models"
adb push Qwen3-0.6B-Q8_0.gguf /data/local/tmp/models
3. 在安卓设备上推理模型
我们使用 llama-cli 在命令行中创建对话:
adb shell
cd /data/local/tmp/llama.cpp/output
chmod 777 -R ./bin/
LD_LIBRARY_PATH=lib ./bin/llama-cli -m /data/local/tmp/models/Qwen3-0.6B-Q8_0.gguf
这样我们就可以在命令行中使用 Qwen3 模型进行对话:

浙公网安备 33010602011771号