Android NDK 向现有项目添加C/C++ (CMakeLists)

Android 向现有项目添加 C/C++ 代码

创建新的原生源文件(cpp 目录)

要在应用模块的主源代码集中创建一个包含新建原生源文件的 cpp/ 目录,请按以下步骤操作:

  1. 从 IDE 的左侧打开 Project 窗格并从下拉菜单中选择 Project 视图。

  2. 导航到 您的模块 > src,右键点击 main 目录,然后选择 New > Directory

  3. 为目录输入一个名称(例如 cpp)并点击 OK

  4. 右键点击您刚刚创建的目录,然后选择 New > C/C++ Source File

  5. 为您的源文件输入一个名称,例如 native-lib

  6. 从Type下拉菜单中,为您的源文件选择文件扩展名,例如.cpp

    • 点击 Edit File Types(右边的设置按钮),您可以向下拉菜单中添加其他文件类型,例如 .cxx.hxx。在弹出的 C/C++ 对话框中,从 Source ExtensionHeader Extension 下拉菜单中选择另一个文件扩展名,然后点击 OK
  7. 如果您还希望创建一个标头文件,请选中 Create an associated header 复选框。

  8. 点击 OK

​ 创建 CMake 构建脚本(CMakeLists.txt)

要创建一个可以用作 CMake 构建脚本的纯文本文件,请按以下步骤操作:

  1. 从 IDE 的左侧打开 Project 窗格并从下拉菜单中选择 Project 视图。

  2. 右键点击您的模块的根目录并选择

    New > File

    :您可以在所需的任意位置创建构建脚本。不过,在配置构建脚本时,原生源文件和库的路径将与构建脚本的位置相关。

  3. 输入“CMakeLists.txt”作为文件名并点击 OK

    您可以添加 CMake 命令,对您的构建脚本进行配置。要指示 CMake 从原生源代码创建一个原生库,请将 cmake_minimum_required()add_library() 命令添加到您的构建脚本中

将 Gradle 关联到您的原生库

2种方式
…使用AndroidStudio UI

使用 Android Studio UI 将 Gradle 关联到外部 CMake 或 ndk-build 项目

  1. 从 IDE 左侧打开 Project 窗格并选择 Android 视图。

  2. 右键点击您想要关联到原生库的模块(例如 app 模块),并从菜单中选择 Link C++ Project with Gradle。您应看到一个如图 4 所示的对话框。

  3. 从下拉菜单中,选择CMake或ndk-build

    1. 如果您选择 CMake,请使用 Project Path 旁的字段为您的外部 CMake 项目指定 CMakeLists.txt 脚本文件。
    2. 如果您选择 ndk-build,请使用 Project Path 旁的字段为您的外部 ndk-build 项目指定 Android.mk 脚本文件。如果 Application.mk 文件与您的 Android.mk文件位于相同目录下,Android Studio 也会包含此文件。
  4. 点击 OK

    …手动配置Gradle

    要手动配置 Gradle 以关联到您的原生库,您需要将 externalNativeBuild {} 块添加到模块级 build.gradle 文件中,并使用 cmake {}ndkBuild {} 对其进行配置:

    android {
      ...
      defaultConfig {...}
      buildTypes {...}
    
      // Encapsulates your external native build configurations.
      externalNativeBuild {
    
        // Encapsulates your CMake build configurations.
        cmake {
    
          // Provides a relative path to your CMake build script.
          path "CMakeLists.txt"
        }
      }
    }
    

:如果您想要将 Gradle 关联到现有 ndk-build 项目,请使用 ndkBuild {} 块而不是 cmake {},并提供 Android.mk 文件的相对路径。如果 Application.mk 文件与您的 Android.mk文件位于相同目录下,Gradle 也会包含此文件

来源:
AndroidStudio Cmake学习–如何漂亮的使用jni
Android 创建支持 C/C++ 的新项目
Android NDK Guide

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值