在Ubtuntu下面的编译,先整理编译环境
1、安装环境依赖
# 安装须要工具
sudo apt update
sudo apt install -y cmake ninja-build git wget
# 安装Android NDK(建议利用r21版本或更高)
wget https://dl.google.com/android/repository/android-ndk-r25b-linux.zip
unzip android-ndk-r25b-linux.zip
export ANDROID_NDK_HOME=$PWD/android-ndk-r25b
2、再下载源码
git clone https://github.com/alibaba/MNN.git
cd MNN
3、编译
mkdir build && cd build
# 基础编译配置(armeabi-v7a架构,启用NEON优化,关闭GPU)
cmake .. \
-DMNN_BUILD_FOR_ANDROID=ON \
-DANDROID_ABI=armeabi-v7a \
-DMNN_USE_NEON=ON \
-DMNN_USE_OPENCL=OFF \
-DMNN_USE_CUDA=OFF \
-DMNN_USE_METAL=OFF \
-DMNN_BUILD_MINI=OFF \
-G Ninja
可选参数阐明:
- -DMNN_USE_OPENCL=ON:启用 GPU 加速(需设备支持 OpenCL)。
- -DMNN_BUILD_MINI=ON:精简版(淘汰包大小,但限定固定输入尺寸)。
- -DANDROID_ABI:选择目标架构(如arm64-v8a、x86)。
4、编译so
ninja -j$(nproc)
5、集成
1)将libMNN.so复制到 Android 项目的app/src/main/jniLibs目录下。
2)在build.gradle中配置 NDK 架构:
android {
defaultConfig
{
ndk
{
abiFilters "armeabi-v7a", "arm64-v8a" // 根据需求选择 }
}
}
验证测试
利用 MNN 提供的示例代码测试推理功能,或通过以下命令运行单位测试:
bash
- cd build/android
- adb push test/MNNTest /data/local/tmp/
- adb shell /data/local/tmp/MNNTest
复制代码 留意事项
- 模型转换:若需加载第三方模型(如 TensorFlow/PyTorch),需先用MNN-Converter工具转换为.mnn格式。
- 性能优化:根据设备特性调整编译参数(如启用 FP16/Int8 量化)。
- 依赖项:若需利用 MNN-CV 模块,需额外编译并链接相关库。
通过以上步调,即可在 Android 应用中利用 MNN 进行大模型推理,支持语音交互等功能。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |