JNI開發之JNI簡介

一、JNI簡介
  •  什麼是JNI?
    JNI(Java Native Interface,Java本地接口),用於銜接Java層與Native(C/C++)層。Java可以通過JNI調用本地的C/C++代碼,本地的C/C++代碼也可以通過JNI調用Java代碼。 這不是Android系統所獨有的,而是Java所有。衆所周知,Java語言是跨平臺的語言,而這跨平臺的背後都是依靠Java虛擬機,虛擬機採用C/C++編寫,適配各個系統,通過JNI爲上層Java提供各種服務,保證跨平臺性。 

  • 爲什麼需要JNI? 
    效率            C/C++是本地語言,比Java更高效,在對性能要求較高的場合,需要使用C/C++來實現程序邏輯;
    代碼複用     可以複用一些C/C++開發的功能模塊;
    反編譯        Java反編譯比C語言容易,一般加密算法是用C語言編寫的,不容易被反編譯;
    硬件控制    Java運行在虛擬機中,和真實的物理硬件之間是相互隔離的,通常我們使用本地代碼C/C++實現對硬件驅動的控制,然後再通過Java代 碼調用本地硬件控制代碼。

  • JNI的適用場景 
  1. 對代碼運行速度有要求的場合;
  2. 本地代碼複用;
  3.  一些核心功能,不想被反編譯的場景;
  4.  對底層硬件需求控制的場合;
    Java與Native層的關係下圖所示:
                                                      


下一篇文章將介紹JNI原理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章