前言:JNI呼叫-簡單使用
阿新 • • 發佈:2018-12-04
JNI
JNI是(Java Native Interface 本地介面)是一個協議,用來溝通Java 程式碼和C/C++程式碼,是 Java和 C、C++之間的橋樑。
通過JNI協議,Java可以呼叫外部C、C++定義好的函式庫,外部C、C++也可以呼叫Java封裝好的類和方法
NDK
NDK全稱是Native Development Kit,NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,並能自動將so和java應用一起打包成apk。
NDK集成了交叉編譯器(交叉編譯器需要UNIX或LINUX系統環境),並提供了相應的mk檔案隔離CPU、平臺、ABI等差異,開發人員只需要簡單修改mk檔案(指出“哪些檔案需要編譯”、“編譯特性要求”等),就可以創建出so。
為什麼使用NDK?
1、程式碼的保護。由於apk的java層程式碼很容易被反編譯,而C/C++庫反匯難度較大。
2、可以方便地使用現存的開源庫。大部分現存的開源庫都是用C/C++程式碼編寫的。
3、提高程式的執行效率。將要求高效能的應用邏輯使用C開發,從而提高應用程式的執行效率。
4、便於移植。用C/C++寫得庫可以方便在其他的嵌入式平臺上再次使用
0.準備
下載並安裝NDK開發工具(NDK 本地開發工具集,內部包含交叉工具鏈,用來將C程式碼編譯成 .SO檔案,讓java呼叫)配置NDK環境
參考部落格:http://blog.csdn.net/xiangzhihong8/article/details/53069344
1.宣告讓C來實現的方法
2.使用 javah 命令生成帶有native 方法的標頭檔案