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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章