jni之jni與jna的比較

java開發過程中會遇到需要調用c/c++動態庫(windows平台的dll和linux平台的so)的情況,可以使用JNI或者JNA技術。

JNA基於JNI技術開發,主要在上層作了類型自動轉換的封裝,讓開發人員極易使用,無需JNI那樣的繁雜的接口層開發。

但是,JNI的調用效率要比JNA高得多,如果一個操作涉及到java虛擬機與外部動態庫的頻繁調用,且對程序執行效率有要求的話,還是建議使用JNI。反之建議使用JNA,例如一些低頻的調用,但調用的動態庫中進行了一系列複雜操作,最後返回一個結果。

Tags: