本篇文章梳理Android studio环境配置和如何在手机端运行
Android studio环境配置
-
在ubuntu上下载并安装android studio
参考文章:
https://blog.csdn.net/wowocpp/article/details/118993286
-
下载ncnn-android-yolov5
https://github.com/nihui/ncnn-android-yolov5
下载ncnn安卓版(下载最近版本就可以,我下载的是20230816版):
https://github.com/Tencent/ncnn/releases
下载ncnn的linux版(后续步骤需要):
git clone https://github.com/Tencent/ncnn.git cd ncnn git submodule update --init # 安装依赖: sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libvulkan-dev vulkan-utils libopencv-dev
安装protobuf:
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protobuf-cpp-3.14.0.zip # 下载源码 unzip protobuf-cpp-3.14.0.zip # 解压 cd ~/protobuf-3.14.0 # 打开目录 ./autogen.sh # 生成配置文件 ./configure # 配置环境 make # 编译源码 sudo make install # 安装 sudo ldconfig # 刷新动态库
编译ncnn
cd ncnn mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=ON -DNCNN_SYSTEM_GLSLANG=ON -DNCNN_BUILD_EXAMPLES=ON .. make -j$(nproc)
-
把ncnn-android-vulkan解压,把里面的内容复制到ncnn-android-yolov5中app/src/main/jni中,如图:
-
版本配置:
需要保证gradle插件-gradle-JDK三者版本匹配:
参考:https://blog.csdn.net/crasowas/article/details/130002017
其中的版本对应我截图出来:
以下是我的版本配置:
打开file/Project Structure
gradle插件版本4.2.2和gradle的版本7.2,如图:
setting中直接搜索gradle即可找到设置页面:设置Gradle JDK的版本为本地安装的JDK11
如果本地没有安装JDK11,可参考Ubuntu下JDK安装方法:
https://zhuanlan.zhihu.com/p/137114682sudo apt update sudo apt install openjdk-11-jdk # check java -version
Modules下SDK,Build Tools,NDK版本配置如下:(NDK不可选用默认的最新版本,会报错)
下载这些指定版本的SDK和NDK,操作如下:
在导航栏中选择Tools/SDK Manager,如下勾选Show Package Details选择对应版本,点击apply即可安装:
由于本地已经安装了Cmake 3.16.3,所以在build.gradle中进行了修改,如图:
问题:CMake Error: CMake was unable to find a build program corresponding to “Ninja“.
解决:cmake中安装ninja:https://blog.csdn.net/qq_24345071/article/details/116331648 -
CMakeLists.txt修改如下:
-
打开这个ncnn-android-yolov5-master项目的build.gradle文件,Android studio会自动构建整个工程。如果还有一些bug修改完之后点击导航栏附近的try again重新构建。gradle构建成功如图所示:
手机调试
以荣耀手机为例:
- USB插入电脑,选择传输文件
- 打开设置,搜索关于手机,连续多次点击版本号,出现“您现在是开发者”的提示
- 返回设置,搜索开发人员选项,打开USB调试
出现如图所示的标识即可开始在手机上运行