1. 程式人生 > >使用Android Studio進行NDK開發

使用Android Studio進行NDK開發

ndk開發 開發 ews ret split c++基礎 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就好了~

‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); });

    使用Android Studio進行NDK開發