jni和ndk的區別?
區別如下:
JNI是Java調用Native機制,是Java語言自己的特性。它的全稱為 Java Native Interface,類似的還有微軟.Net Framework上的p/invoke,可以讓C#或Visual Basic.Net調用C/C++的API,所以說JNI和Android沒有關系。在PC上開發Java的應用,如果運行在Windows平臺使用 JNI是經常性的,比如說讀寫Windows的注冊表。
而NDK是Google公司推出的,幫助Android開發者通過C/C++本地語言編寫應用的開發包。它包含了C/C++的頭文件、庫文件、說明文檔和示例 代碼。
我們可以理解它為Windows Platform SDK一樣,是純C/C++編寫的,但是Android并不支持純C/C++編寫的應用,同時NDK提供的庫和函數功能很有限,僅僅處理些算法效率敏感的問題,所以Android123推薦初學者學好Java后再學習JNI。