1. 程序模块图
2. 编译第三方库Assimp
2.1 下载
官网下载5.0.0版本,https://codeload.github.com/assimp/assimp/zip/refs/tags/v5.0.0
2.2 生成安卓编译链
解压后在assimp-5.0.0
下建文件夹BuildAssimp
放两个脚本make_standalone_toolchain.bat
python D:/Android/Sdk/ndk/23.1.7779620/build/tools/make_standalone_toolchain.py --arch=arm --stl=libc++ --api=16 --install-dir=android-toolchain-16-llvm-arm
make_standalone_toolchain.py
路径需要改成自己本地的
运行make_standalone_toolchain.bat
后会在BuildAssimp
下生成android-toolchain-16-llvm-arm
,这就是安卓编译链
2.3 编译
,build_assimp.bat
@REM @echo off
cls
REM *NOTE* Change these based on
SET ASSIMP_DIR=assimp-5.0.0
SET OUTPUT_DIR=assimp-build-arm
SET ANDROID_PATH=D:\Android\Sdk
SET NDK_PATH=D:\Android\Sdk\ndk\23.1.7779620
SET NDK_TOOLCHAIN=%~dp0android-toolchain-16-llvm-arm
SET CMAKE_TOOLCHAIN=%NDK_PATH%\build\cmake\android.toolchain.cmake
SET CMAKE_PATH=%ANDROID_PATH%\cmake\3.22.1
REM *NOTE* Careful if you don't want rm -rf, I use it for testing purposes.
del \F \S \Q %OUTPUT_DIR%
mkdir %OUTPUT_DIR%
REM pushd doesn't seem to work ):<
cd %OUTPUT_DIR%
if not defined ORIGPATH set ORIGPATH=%PATH%
SET PATH=%CMAKE_PATH%\bin;%ANDROID_PATH%\tools;%ANDROID_PATH%\platform-tools;%ORIGPATH%;%NDK_TOOLCHAIN%\bin;
%CMAKE_PATH%\bin\cmake.exe -GNinja -DCMAKE_TOOLCHAIN_FILE=%CMAKE_TOOLCHAIN% -DANDROID_ABI="armeabi-v7a" -DASSIMP_ANDROID_JNIIOSYSTEM=ON -DANDROID_NDK=%NDK_PATH% -DCMAKE_MAKE_PROGRAM=%CMAKE_PATH%\bin\ninja.exe -DCMAKE_BUILD_TYPE=Release -DANDROID_NATIVE_API_LEVEL=24 -DANDROID_FORCE_ARM_BUILD=TRUE -DCMAKE_INSTALL_PREFIX=install -DANDROID_STL=c++_static -DCMAKE_CXX_FLAGS=-Wno-c++11-narrowing -DANDROID_TOOLCHAIN=clang -DASSIMP_BUILD_TESTS=OFF -DASSIMP_NO_EXPORT=TRUE -DASSIMP_BUILD_ASSIMP_TOOLS=FALSE -DASSIMP_BUILD_SAMPLES=FALSE -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=TRUE ..\..\..\%ASSIMP_DIR%
%CMAKE_PATH%\bin\cmake.exe --build .
REM D:\Android\Sdk\ndk\23.1.7779620\prebuilt\windows-x86_64\bin\make.exe
cd ..
需要把ANDROID_PATH
,NDK_PATH
路径需要改成自己本地的
运行build_assimp.bat
后在assimp-build-arm/code/
得到libassimp.so
3. 生成apk
Android Studio把工程编译成apk,安装到模拟器后,可以运行
4. 模型与shader资源
资源需要放在安卓本地路径,两个路径任选
- /storage/emulated/0/Download
- /storage/emulated/0/Android/data/com.example.opengles/files