Android JNI(一)——基礎

what

Native Develop Kit.

why

  • 平臺之間移植
  • 重複使用庫
  • 提性能,尤其遊戲這種計算密集型應用
  • 使用第三方庫
  • 代碼保護
  • 不依賴Dalvik Java虛擬機的設計

目前Android系統支持以下七種不用的CPU架構,每一種對應着各自的應用程序二進制接口ABI:(Application Binary Interface)定義了二進制文件(尤其是.so文件)如何運行在相應的系統平臺上,從使用的指令集,內存對齊到可用的系統函數庫。對應關係如下:

	ARMv5——armeabi
	ARMv7 ——armeabi-v7a
	ARMv8——arm64- v8a
	x86——x86
	MIPS ——mips
	MIPS64——mips64
	x86_64——x86_64

Java Native Interface
Java調用C/C++在Java語言裏面本來就有的,並非Android自創的,即JNI。JNI就是Java調用C++的規範。當然,一般的Java程序使用的JNI標準可能和android不一樣,Android的JNI更簡單。

How

如何使用jni

  1. java中先聲明一個native方法
  2. 編譯java源文件,javac得到.class文件
  3. 通過javah -jni 命令導出 .h頭文件
  4. 使用java需要交互的本地代碼,實現java中生命的native方法。(如果java需要與C++交互,那麼就用c++ 實現java的native方法)
  5. 將本地方法編譯成動態庫(window系統下是.dll文件,Linux系統下是.so文件 mac 是jnilib)
  6. java命令執行java程序,最終實現java調用本地方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章