1. Program module diagram
2. Compile the third-party library Assimp
2.1 download
Download version 5.0.0 from the official website, https://codeload.github.com/assimp/assimp/zip/refs/tags/v5.0.0
2.2 Generate Android compilation chain
assimp-5.0.0
After decompression, build a folder BuildAssimp
and put two scriptsmake_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
The path needs to be changed to your own local. After
running , it make_standalone_toolchain.bat
will be generated BuildAssimp
below android-toolchain-16-llvm-arm
. This is the Android compilation chain
2.3 compile
,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 ..
You need to ANDROID_PATH
change NDK_PATH
the path to your own local. After
running , you will getbuild_assimp.bat
assimp-build-arm/code/
libassimp.so
3. Generate apk
Android Studio compiles the project into apk, and after installing it on the emulator, it can run
4. Model and shader resources
Resources need to be placed in the Android local path, two paths are optional
- /storage/emulated/0/Download
- /storage/emulated/0/Android/data/com.example.opengles/files