使用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就好了~
使用Android Studio進行NDK開發