前言

在开发一个需要Native代码的jar包的时候,我们可以单独编译Native代码成so库,而不需要使用Android Studio进行编译,这样在开发通用Native代码的时候可以节省很多时间。

设置环境变量

设置ANDROID_HOME/ANDROID_SDK_HOME变量,该目录为安装Android Studio时候设置的SDK目录,比如我的目录为D:\Library\Android\sdk,那么设置该变量为此地址即可。

编译脚本build.bat

set abi=arm64-v8a
if not exist %abi% md %abi%
cd %abi%
%ANDROID_SDK_HOME%/cmake/3.22.1/bin/cmake ^
  -DANDROID_ABI=%abi% ^
  -DANDROID_NDK=%ANDROID_SDK_HOME%/ndk/25.1.8937393 ^
  -DCMAKE_BUILD_TYPE=Debug ^
  -DCMAKE_TOOLCHAIN_FILE=%ANDROID_SDK_HOME%/ndk/25.1.8937393/build/cmake/android.toolchain.cmake ^
  -DANDROID_NATIVE_API_LEVEL=19 ^
  -DANDROID_TOOLCHAIN=clang -DCMAKE_GENERATOR="Ninja" ^
  -DCMAKE_MAKE_PROGRAM=%ANDROID_SDK_HOME%/cmake/3.22.1/bin/ninja ^
  ..

%ANDROID_SDK_HOME%/cmake/3.22.1/bin/ninja
cd ..

以上脚本参考自Ref 1,做了一些简单的错误更正和微调,其中DANDROID_NDK的设置需要定位到D:\Library\Android\sdk\ndk\25.1.8937393,而不是内层的build目录。

基本变量解释:

ANDROID_ABI:目标ABI,支持armeabi-v7a,arm64-v8a等。
ANDROID_NDK:NDK的目录。
ANDROID_TOOLCHAIN:编译Cmake使用的工具链,默认clang
ANDROID_NATIVE_API_LEVEL:编译Android NDK的API级别
CMAKE_TOOLCHAIN_FILE:Cmake编译链接时的cmake文件
CMAKE_MAKE_PROGRAM:make程序选择

Ref

  1. https://www.cnblogs.com/Jeff77/p/14636012.html
最后修改:2023 年 11 月 20 日
如果觉得我的文章对你有用,请随意赞赏