例如,我有一個名爲HelperLib
的C++庫。我有一些假設:如何使用本機庫
我可以將這個項目編譯成* so文件。 (通過一些在線幫助我在Android上構建這個庫的教程)。
我可以在C/C++中使用這個庫。通過圖書館網站的官方教程。
我有關於本地庫的基本知識。例如,使用
System.loadlibrary()
加載本機庫,例如調用簡單的本地C函數。
當我決定在線使用一些C++庫時,經常會遇到這些假設。他們提供教程如何使用,還有一些提供瞭如何在Android上構建這個庫。
但所有這些,我仍然無法弄清楚如何在Android上使用這個庫。從哪兒開始?在我可以使用這個庫之前,我應該做更多的事情?例如。
///// this is a C++ source file to use library
int main() {
HelperLib lib = new HelperLib(); // just for example
lib.initialize();
/// demo how this library was used
lib.makeConnection();
lib.closeConnection();
return 0;
}
基於上面的代碼,我可以將它移植到Android層,以及如何?通過調用line-by-line
函數作爲C++示例簡單嗎?或者我們必須做「別的」?這讓我很困惑,很多人說「將端口庫引導到Android教程」,卻沒有提供調用庫函數的有用方法。
請幫助我,以上假設,我該如何繼續使用這個庫。有沒有任何教程可以幫助我解決這些問題?
謝謝:)
搜索一些所謂JNI- Java本地接口。它讓Java調用C++。您需要在C或C++中爲要調用的函數編寫JNI包裝器,然後通過匹配的本地Java函數調用它們。但是完整的教程超出了SO –
@GabeSechan的範圍,我可以在這些教程中進行搜索和學習。但在此之後,我應該接下來做什麼?我只是簡單地製作了一個JNI Wrapper,之後將它作爲C++示例源代碼逐行調用,對吧?我不確定在這一步。請告訴我。謝謝:) – hqt
關於JNI的教程將告訴你如何在Java和C端做什麼。但是,是的,一旦雙方都完成了它就像調用一個函數一樣簡單。 –