JNI淺談

JNI(Java Native Interface,java本地接口)是java平臺定義的一套標準的本地編程接口。JNI允許Java代碼與本地代碼互相操作,即Java代碼可以調用本地代碼,本地代碼也可以調用Java代碼。所謂本地代碼指的是其他編程語言(如C/C++)實現的、依賴于特定硬件和操作系統的代碼。通過JNI調用本地代碼,可以實現Java語言所不能實現的功能。在Android平臺上,Dalvik虛擬機會實現JNI定義的接口。


從圖2-1宗可以看出,JNI可以直接調用本地代碼庫,并可以通過Dalvik虛擬機實現與應用層和應用框架層之間的交互。

NDK:(Native Development Kits)NDK是便于開發基于JNI的應用而提供的一套開發和編譯工具集

NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,并能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。

NDK集成了交叉編譯器,并提供了相應的mk文件隔離CPU、平臺、ABI等差異,開發人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創建出so。

NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。

JNI:JNI是一套編程接口,可以運用在應用層,也可以運用在應用框架層,以實現java代碼與本地代碼的互相操作。

SDK(Sofware development kit):軟件開發工具包。被軟件開發工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統等建立應用軟件的開發工具的集合。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,377評論 25 708
  • Android跨進程通信IPC整體內容如下 1、Android跨進程通信IPC之1——Linux基礎2、Andro...
    隔壁老李頭閱讀 11,641評論 1 46
  • JNI開發系列閱讀 JNI與底層調用1 JNI與底層調用2 C/C++在Android開發中的應用 1. JNI ...
    JackChen1024閱讀 737評論 0 3
  • 世間不過你死我活, 或者你活我更要活~ 說句喪氣話:這世界,比你美比你能干比你厲害比你討喜的人多的去了~你活著,是...
    南思嘉木閱讀 557評論 0 0
  • 文盲是指不識字的成年人。 按照我國的標準是指年滿十五周歲以上的文盲、半文盲公民。 今天老師上課講沒有思想的人是什么...
    小烈吶閱讀 262評論 2 2