首先,下载onnxruntime代码
git clone https://github.com/microsoft/onnxruntime.git
我使用的是v1.18.0的tag版本,
git checkout -b v1.18.0 v1.18.0
然后在项目根目录编译debug版本,
这里是windows下编译命令:
.\build.bat --build_dir android/arm64_v8a_debug --cmake_generator Ninja --android --android_sdk_path E:/android_studio/Sdk --android_ndk_path E:/android_studio/Sdk/ndk/26.1.10909125 --android_abi arm64-v8a --android_api 21 --config Debug --build_shared_lib --parallel
这一步需要指定自己的android sdk和ndk的路径,还需要安装ninja工具。
linux或mac使用下面的命令:
./build.sh --android --android_sdk_path /Users/luobo/Library/Android/sdk --android_ndk_path /Users/luobo/Library/Android/sdk/ndk/27.0.11902837 --android_abi arm64-v8a --android_api 21 --config Debug --build_shared_lib --parallel
编译好后在android/arm64_v8a_debug目录找到libonnxruntime.so这个文件,把它放到android工程的对应的位置。
打开android工程设置,使用下面的调试选项
将onnxruntime\onnxruntime\core\session\ort_env.cc拖入android studio中,在OrtEnv构造函数设置好断点,开始调试,就能正确进入断点去调试onnxruntime的逻辑了。