使用Android Studio進行NDK開發

Step1:創建native方法

很easy,僅僅須要給定義好的方法加上native關鍵詞就可以
這裏寫圖片描寫敍述
注意:由於該方法的詳細實現是在c++中詳細實現的。所以相似於接口方法不須要加{}。

Step2:生成class文件(多數情況可忽略)

大多數情況下class文件是已經生成的。可是在剛進行改動或者代碼中出現錯誤時,有可能會影響到class文件的生成,這時僅僅須要又一次生成一下就能夠了。步驟為菜單條Build==>Make Project(若存在錯誤。修正後又一次嘗試本操作就可以)
這裏寫圖片描寫敍述

Step3:生成.h文件

點擊View->Tool Windows->Terminal,將命令行窗體打開,相當於windows下的cmd窗體。
這裏寫圖片描寫敍述
cd app/src/main/java
將路徑切換到app/src/main/java
javah -d ../jni collector.com.indoorun.orientionsensorcollector.JNI
將包括native方法的類編譯連接到.h文件
這裏寫圖片描寫敍述
此時項目中已經生成了jni目錄和.h文件(其餘文件是後來加入的。請先無視)
這裏寫圖片描寫敍述

Step4:實現c/c++文件

將上一步生成的.h文件複製一份,後綴名改成.cpp(個人喜歡c++,用c的話.c就可以),去除頭尾和凝視部分。將方法詳細實現,這一步驟須要一定的c/c++基礎。
這裏寫圖片描寫敍述

Step5:配置gradle文件

改動相應module的build.gradle文件(配置ndk)
這裏寫圖片描寫敍述

改動local.properties文件(值得ndk路徑,沒有的話自己去下載個)
這裏寫圖片描寫敍述

改動gradle.properties文件(開啓ndk編譯權限)
這裏寫圖片描寫敍述

Step6:生成.so文件

這裏寫圖片描寫敍述
執行完畢後的結果:
這裏寫圖片描寫敍述

Step7:使用jni

在java代碼中使用載入so庫(建議寫在Application中或者在jni類中用static代碼塊)
System.loadLibrary(“InertialJNI”);//你生成so文件時取的名字。
然後在你須要用到的地方當成一般java方法一樣調用就可以了。

(確保使用前已經load)
以上~一切搞定~直接run就好了~