課程內容:
本課程是傳智播客Java課堂系列之一,本課程全面介紹了JNI的知識,包括JNI的含義、功能和應用等。深入了解JNI的知識,掌握JNI的應用,包括在Java中如何調用C/C++本地代碼及在C/C++本地方法中調用Java類等知識。
第1講:本課程介紹JNI的含義、功能、最簡單的Java調用C/C++代碼的步驟和使用JNI的弊端,并按最簡單的步驟編寫在Java程序中調用本地代碼的實例。內容包括:javah工具的用法、按照C/C++頭文件來編寫C/C++源文件、將C/C++源文件編譯成動態連接庫(DLL)、在Java程序中引入動態連接庫等知識
第2講:本課程講解在被調用的C/C++函數中如何訪問Java程序中的類,并編寫應用實例。內容包括:在javah工具生成的C/C++函數聲明中的JNIEnv類型參數和jobject類型參數的介紹、Java類型在C/C++中的映射關系、jclass類型的含義及取得、訪問Java類中的屬性與方法,以及使用javap工具獲得屬性和方法的簽名。
第3講:本課程講解在被調用的C/C++函數中如何取得/設定Java屬性值、如何調用Java類的方法和調用Java類的父類的方法,并編寫應用實例。
第4講:本課程講解如何在本地代碼中生成和操作Java的對象和字符串,并編寫應用實例。內容包括:在C/C++本地代碼中創建Java對象、在C/C++本地代碼中訪問Java的String對象、在C/C++本地代碼中創建Java的String對象。
第5講:本課程講解如何在本地方法中處理Java的數組,包括處理基本類型數組和對象類型數組,并編寫訪問Java的基本類型數組和將數組值更新到Java中的實例程序。
第6講:本課程講解JNI中的全局引用/局部引用/弱全局引用、緩存jfieldID和jmethodID的兩種方式,并編寫兩種緩存方式的示例代碼。