Android NDK、JNI之--(三)cmake的方便

Android Studio NDK及so文件開發(三)

之前的兩篇文章都是在我們自己在原有的Android工程上添加NDK開發的,這一篇我們直接在新建項目的時候直接勾選上 Include C++ support,看看跟之前的方式有什麼不同以及便捷之處,當前Android Studio版本爲 3.1.4

新建項目

記得勾選 Include C++ support,如下所示:
在這裏插入圖片描述

不同之處

勾選Include C++ support後:

  1. 工程中 app/src/main 目錄下會多出來一個cpp文件夾,裏面存放的就是 .cpp 文件。
  2. 工程中 app 目錄下會多出來一個 CMakeLists.txt 文件,該文件存放了相關配置信息。
  3. app模塊下的build.gradle文件相應多了些配置,如下所示:
//在android節點下多瞭如下cmake配置文件路徑
externalNativeBuild {
       cmake {
           path "CMakeLists.txt"
       }
   }
   
//在android、defaultConfig節點下多瞭如下cmake配置
externalNativeBuild {
           cmake {
               cppFlags ""
           }
       }

其他基本都與不包含 C++ support的項目相同。

注:CMake是一款外部構建工具,可與Gradle搭配使用來構建原生庫。

方便之處

  1. 勾選Include C++ support後,新建的工程會自動在MainActivity中生成一條示例NDK代碼,cpp文件中也會生成對應的.cpp文件。當你按下ctrl鍵並點擊native方法的時候會自動跳轉到.cpp文件中對應的方法(之前的原工程通過一定配置也可以有這種便捷的操作)。
  2. 假如在Hello.java中添加如下代碼:
public static native String sayHello();

那麼當你點擊sayHello方法,然後按下alt+Enter鍵就會提示你是否自動創建.cpp文件中的方法。跟普通工程一樣的快捷鍵使用方式,省去了自己去cpp文件中寫方法名的麻煩。

其他

這樣一來進行NDK的開發就方便了很多,現在也沒有自己進行ndk-build這一步了,所以你也不會看到之前生成的obj文件夾那些東西(其實生成的so庫在app/.externalNativeBuild文件夾下),寫完c++方法後,直接運行工程就能得到你想要的結果。將編譯完得到apk的文件解壓可以看到在lib文件夾下有存放相應架構的so文件夾。

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