NDK 開發

基於 AS 的 NDK 開發

1. NDK 和 JNI 的概念
JNI 的全稱是 Java native interface,Java 本地接口,實現 Java 和 C/C++ 的互相調用

NDK 的全稱是 Native development kit 本地開發工具集,方便JNI的開發
2. 使用 JNI 的好處
1. 實現 C/C++ 代碼的複用:因爲 C/C++ 出現的比Java早
2. C/C++ 的執行效率比Java快,性能較好
3. 。。。

3.NDK 開發流程

  1. 傳統的ndk-build流程
    ①下載安裝NDK開發包
    勾選Android NDK 然後下載
    勾選 Android NDK 然後點擊 ok 下載,文件夾就是下圖的 ndk-bundle,這種在 AS 裏下載不用翻牆,下面提供一個鏈接,NDK開發官網[注意 需要翻牆才能進 ],裏面也可以進行NDK 壓縮包下載,一般也是解壓到 Android SDK 下
    這裏寫圖片描述

    ②.ndk-bundle路徑添加到環境變量 path

    ③.創建 project,在 local.properties 中添加 ndk-bundle文件夾路徑(一般不需要自己去添加)在 gradle.properties 文件最後中添加
    #兼容老的ndk
    android.useDeprecatedNdk=true

    ④.在 main/java/包名 目錄下創建調用 native方法的類 JNI
    命令行進入到 java 目錄下,使用命令: javah 全包名/JNI,會在 java 目錄下生成頭文件。生成頭文件還有其他方法,可參考給的參考鏈接

    ⑤.在 main 目錄下創建一個 jni 目錄,把 4 中生成的頭文件移動到這個目錄中,並在此目錄下創建 C/C++ 源文件
    這裏寫圖片描述

    ⑥.在 app 下的 build.gradle中配置如下
    這裏寫圖片描述

    然後 Builde-> Rebuild project,生成一個 so 文件

    ⑦.在步驟 4 中創建的 JNI 類中加載 so 庫
    這裏寫圖片描述

    ⑧.調用native方法
    這裏寫圖片描述

  2. 使用CMake外部構建
    ①與傳統方法比較,需要在 sdk tools 中勾選 CMake 下載,網上說只支持 AS 2.2 以上的版本,而且如果是32位系統可能在 SDK tools 下找不到 CMake,這時可以去找一個 CMake文件放到自己的SDK目錄下。具體的區別可以創建AS自帶的demo查看,如下圖去創建

    這裏寫圖片描述
    然後一直 next 至 finish。
    具體可參考它:
    CMakeList.txt文件的說明
    JNI知識
    std::string用法總結

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