Android NDK

原生开发套件 (NDK) 是一套工具,使你能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,你可使用这些平台库管理原生 Activity 和访问实体设备组件,例如传感器和触摸输入。

关于NDK基础概念,请查看官方的文档NDK 使用入门

安装 NDK

参见文档 安装及配置 NDK和CMake

向原生工程添加C/C++代码

参见文档 添加C/C++代码

配置 Gradle

android {
  ...
  defaultConfig {
      ...

   externalNativeBuild {
       cmake {
           cFlags ""
       }
    }
  }

  buildTypes {...}

  // 本地外部构建配置
  externalNativeBuild {

    // CMake构建配置
    cmake {
      // 提供CMake构建脚本的相对路径
      path "src/main/cpp/CMakeLists.txt"
    }
  }
}

参见文档 Gradle 关联

无源码打包动态库

添加jniLibs配置:

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"

    defaultConfig {
        ...
    }

    buildTypes {
        ...
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}

app模块目录下创建libs文件夹,将已经编译好的动态库拷贝到该文件夹。

关于手工编译安卓动态库,参考以下脚本:

@echo off 

set SDK=C:\Users\Administrator\AppData\Local\Android\Sdk
set NDK=%SDK%\ndk\24.0.7956693
set NINJA=%SDK%\cmake\3.10.2.4988404\bin\ninja

set MINSDKVERSION=21

set ABI=x86


cd build

cmake ^
  -DCMAKE_SYSTEM_NAME=Android ^
  -DCMAKE_SYSTEM_VERSION=%MINSDKVERSION% ^
  -DANDROID_PLATFORM=android-%MINSDKVERSION% ^
  -DCMAKE_ANDROID_ARCH_ABI=%ABI% ^
  -DCMAKE_ANDROID_NDK=%NDK% ^
  -DCMAKE_TOOLCHAIN_FILE=%NDK%\build\cmake\android.toolchain.cmake ^
  -DCMAKE_MAKE_PROGRAM=%NINJA% ^
  -DCMAKE_BUILD_TYPE=Release ^
  -G "Ninja" ..

%NINJA%

pause
Copyright © Arcticfox 2021 all right reserved,powered by Gitbook文档修订于: 2022-05-01 12:20:20

results matching ""

    No results matching ""