Assimp Address: https://github.com/assimp/assimp
To compile Assimp of Android so library, Android SDK, NDK, Gradle (also can be fitted) The first is the need ready.
Configure the Android SDK and NDK environment variables, as follows:
ANDROID_HOME=/Users/Test/AndroidRes/sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
GRADLE_HOME=/Users/Test/AndroidRes/gradle-4.4
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin
export ANDROID_NDK_PATH=/Users/Test/AndroidRes/sdk/ndk-bundle
export ANDROID_SDK_PATH=/Users/Test/AndroidRes/sdk
export CMAKE_TOOLCHAIN=/Users/Test/AndroidRes/sdk/ndk-bundle/build/cmake/android.toolchain.cmake
NDK_PATH=/Users/Test/AndroidRes/sdk/ndk-bundle
export PATH=$PATH:NDK_PATH
Fitted cmake, the following instructions:
brew install cmake
Installed zlib, the following instructions:
brew install zlib
We began to seriously:
Corresponding directory under 1.NDK have make-standalone-toolchain.sh documents confirming NDK version nothing wrong.
ANDROID_NDK $ / Build / Tools / make-standalone-toolchain.sh
2. Run the following script to generate toolchain
export NDK_PATH=/Users/hi/Library/Android/sdk/ndk-bundle
sh make-standalone-toolchain.sh –platform=android-8 –ndk-dir=$NDK_PATH –install-dir=/Users/hi/Library/Android/sdk/android-toolchain –toolchain=arm-linux-androideabi-4.4.3
Instruction execution success will be the following tips:
Package installed to /var/folders/9_/q2k248tj62x7734zchpn6btm0000gn/T/.
This directory to find named arm-linux-androideabi.tar.bz2 compressed file, unzip it, and put * / Users / hi / Library / Android / sdk / android-toolchain under
3. Environment variables add the following configuration:
#下面内容是根据上面描述的整理出的toolchain对应的位置
export ANDROID_NDK_TOOLCHAIN=/Users/Test/AndroidRes/sdk/android-toolchain/arm-linux-androideabi
export PATH=$PATH:/Users/Test/AndroidRes/sdk/android-toolchain/arm-linux-androideabi/bin
4. Switch to the project directory Assimp
cd xxx/assimp // 下载assimp,然后解压,进入assimp根目录
mkdir buildAndroid // 创建文件夹
cd buildAndroid // 进入这个文件夹
Execute instructions to generate the makefile
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN -DCMAKE_INSTALL_PREFIX=/assimp -DANDROID_ABI=armeabi-v7a -DANDROID_NATIVE_API_LEVEL=android-14 -DANDROID_FORCE_ARM_BUILD=TRUE -DANDROID_STL=c++_shared -DASSIMP_BUILD_OBJ_IMPORTER=TRUE -DASSIMP_BUILD_FBX_IMPORTER=TRUE -DANDROID_NDK=$ANDROID_NDK_PATH -DCMAKE_BUILD_TYPE=Release -DANDROID_FORCE_ARM_BUILD=TRUE -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=FALSE ..
Parameter Description:
-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN 指向上面生成的toolchain
-DCMAKE_INSTALL_PREFIX=/assimp 最终生成的.so文件的名称
-DANDROID_ABI=armeabi-v7a 应用程序二进制接口类型,详见[ABI Management](https://developer.android.com/ndk/guides/abis)
-DANDROID_NATIVE_API_LEVEL=android-14 api版本,设成这个就行
-DANDROID_FORCE_ARM_BUILD=TRUE 强制编译arm架构
-DANDROID_STL=c++_shared c++类型
-DASSIMP_BUILD_OBJ_IMPORTER=TRUE 支持OBJ格式的3D模型文件导入
-DASSIMP_BUILD_FBX_IMPORTER=TRUE 支持FBX格式的3D模型文件导入
-DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=FALSE assimp默认支持很多种3D模型格式,这里只指定常用的一两种格式即可,减小.so包的大小
-DASSIMP_BUILD_TESTS=OFF 这个要关掉,不然make时会有一些奇怪的错误
-DASSIMP_NO_EXPORT=TRUE 只需要解析3D模型,不需要生成3D模型
5. and then the remaining last step generates so, the following command:
make -j8 //j8是多线程编译,j后面的数字越大编译越快,当然了,前提是你机器有那么多处理器哈。
6. If the above instructions without error, so it can generate a. position so assimp / buildAndroid / code directory.
Reference links:
https://juejin.im/post/5b0abe9f51882538bf5a68ad
http://zhixinliu.com/2016/02/01/2016-02-01-cmake-cross-compile/