android studio NDK開發環境搭建實踐

android studio現在已經很好的支持了NDK開發,使用android studio進行NDK的開發變得很方便。本文講的NDK開發時基於CMake編譯的NDK開發,有關ndk-build編譯的方法,我找時間會整理出來,因爲我另一個項目就是用的ndk-build…..

在啓動NDK開發時,通常是這樣兩種情況:一、全新的android項目,需要支持NDK功能開發;已有的項目新增NDK功能開發。

一、
第一種情況,其實比較簡單。android studio在創建新項目時,直接選擇support c++就可以了,android studio會自動做好NDK開發環境的配置。
這裏寫圖片描述

這裏寫圖片描述

android studio 配置好了CMake文件,gradle配置信息等。這樣直接在對應的cpp文件中進行jni代碼開發就可以了。

主要記錄一下第二種情況。多數情況下,我們會遇到在已有的項目中增加NDK功能,即編寫jni代碼,這個時候我們就需要在已有的項目中,增加NDK的編譯環境。主要步驟如下:
1. 編寫相應的類以及native方法:

public class RKECG {
    static {
        System.loadLibrary("rkecg");
    }

    public static native int getHR(short[] data);
}

2 . 使用Terminal,cd到java目錄,執行javah 包名.類名命令,生成對應的.h頭文件:

這裏寫圖片描述

這裏寫圖片描述

注:生成的.h文件在java根目錄中。
3 . 在main目錄下,新建cpp目錄,並新建一個*.cpp(文件名任意)文件,把第2步生成的.h文件中的內容複製到該cpp文件中(之前的.h文件就可以刪除了)

這裏寫圖片描述

4 . 在app目錄下添加並編寫CMakeLists.txt文件,也可以直接從其他C++ support的android項目中複製個CMakeLists.txt文件(我就是這麼幹的..-_-!),修改裏邊的內容就可以了:

這裏寫圖片描述

更多關於CMake文件的參數說明,請各位看官自定度娘吧,很多這樣的資源。

5 . 配置app的build.gradle文件

這裏寫圖片描述

6 . 最後,配置gradle.properties文件:文件中增加這樣一行代碼(其實是註釋掉的,去掉#註釋就可以了)

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

sync一下就可以了~.

這樣就配置完成了。~ _ ~

等等等~~! 並不能運行,報錯了!

cannot resolve corresponding jni function

之前新增的native方法那裏報了上面這個錯誤! 其實這是android studio沒有更新對NDK的支持導致的。按照如下的方法解決:

1 . 打開settings/plugins,搜索ndk,取消ndk支持,然後重啓android studio

這裏寫圖片描述

2 . 重啓之後,就發現上面那個錯誤沒有了。但是我們是需要支持NDK的,怎麼能把這個取消呢,所以我們再重新把這個ndk支持勾打上,再重啓一下android studio。 此時,上面那個錯誤就完美的木有了~~

然後我們就可以美麗的編寫jni代碼了,還有代碼提示有木有!~

這裏寫圖片描述

最後運行一下我們的app,測試一下jni代碼是不是便宜成功了:

這裏寫圖片描述

結果出來了,有木有!

最後如果你想看下你的.so文件有沒有被打包到app中,可以打包app,查看apk中的lib目錄看.so文件:

這裏寫圖片描述

有了,完美!~

開始愉快的編寫jni代碼吧~~

發佈了64 篇原創文章 · 獲贊 27 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章