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
    评论
要在Android Studio中编写C/C++代码,你需要进行以下步骤: 1. 创建一个新的Android Studio项目。 2. 在你的项目中创建一个新的C/C++文件。你可以使用菜单File->New->C/C++ Source File来创建源文件。 3. 在你的源文件中编写C/C++代码。 4. 在你的项目中创建一个新的JNI头文件。你可以使用菜单File->New->JNI/C++ Header File来创建头文件。 5. 在你的JNI头文件中声明你的C/C++函数和变量。例如,如果你的C/C++文件中有一个函数叫做myFunction,你可以在你的JNI头文件中这样声明它: ```c++ JNIEXPORT void JNICALL Java_com_example_myapp_MyClass_myFunction(JNIEnv *env, jobject obj); ``` 请注意,这里的Java_com_example_myapp_MyClass_myFunction是根据你的Java类和函数名称来自动生成的。你需要根据你的实际项目进行修改。 6. 在你的Java代码中,使用JNI接口调用你的C/C++函数。例如,如果你的Java类是MyClass,你可以在它的某个方法中这样调用你的C/C++函数: ```java public void myMethod() { myFunction(); } ``` 7. 在你的项目中配置NDK环境。你需要下载NDK并在你的项目中配置NDK路径。你可以使用菜单File->Project Structure->SDK Location来配置NDK路径。 8. 在你的项目中配置CMake。你需要创建一个CMakeLists.txt文件来告诉Android Studio如何编译你的C/C++代码。你可以使用以下模板来创建CMakeLists.txt文件: ``` cmake_minimum_required(VERSION 3.10.2) project(myproject C CXX) add_library(mylib SHARED mysource.cpp) target_link_libraries(mylib log) ``` 请注意,这里的mysource.cpp和mylib是根据你的实际项目进行修改。 9. 运行你的项目并测试你的C/C++代码。 请注意,以上步骤只是一个基本的示例,你需要根据你的实际项目需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值