鏈接:https://pan.baidu.com/s/1zB9r5WwuTMIPNMlYl5HlvA
提取碼:5ndl
本篇示例代碼
什麼是JNI?
有這麼一種需求,比如,java函數想要調用C/C++的函數,如何實現呢?
直接調用,肯定是不行的,這時,就需要一箇中間人,java 去調用中間人的函數,然後中間人再去調用對應的C/C++函數。
這裏的中間人,實際上就是JNI,JNI的英文全稱是:java Native Interface
JNI是一套程序框架,我們只要在它的基礎上,按照它給定的規則,就可以實現java函數調用C/C++函數了。
JNI這套程序框架也是要C/C++語言寫的。
AndroidStudio搭建JNI環境
在明白了什麼是JNI之後,現在我們就來學習如何在AndroidStudio上將JNI的環境給配置起來。
安裝LLDB,NDK,CMake
首先,你需要下載如下箭頭指向的三個包
LLDB
是用於調試在JNI中寫的C/C++程序
NDK
是一個軟件開發包,裏面有C/C++的編譯器,還有JNI框架。我們主要就是在JNI的基礎上進行java 和 C/C++函數的互調。之前很多同學對NDK和JNI的概念分不是很清楚,現在你明白了吧,NDK僅僅是一個工具包,裏面包含了很多雜七雜八的部分,JNI是屬於NDK中的一部分而已。
CMake
是C/C++的項目構建工具,它有什麼作用呢?它類似於AndroidStudio中的gradle。gradle有什麼作用,它就有什麼作用。比如:你寫的C/C++項目,要變成可執行程序,那麼必須經過編譯,鏈接這兩個步驟,而Cmake就是自動幫你完成這兩個步驟。如果不要Cmake,你就要自己去進行編譯和鏈接。
配置NDK的路徑
以上3個包都下載好了以後,那麼就按如下方式配置剛剛下載的NDK路徑
創建JNI程序
NDk配置好以後,接下來就可以創建JNI程序了。所謂的JNI程序就是說Android項目裏,有java代碼,也有C/C++代碼。
創建方式如下(我是AndroidStudio3.6版本的,你們版本低的話,可能和我的創建方式不一樣)
創建好之後,項目結構如下
這時,你可以直接運行這個項目,運行成功,顯示如下
Android JNI學習02-AndroidStudio3.6JNI示例demo講解