簡體   English   中英

Android NDK交流不同的C ++項目

[英]android ndk communicate different c++ project

我想為android ndk創建一個c ++項目,並且想要在每個項目(例如動態庫)中使用它。我不想每次都更改/ transport源代碼。我導入* .so文件並包含它並使用其類或其他內容。 這是可能的。如果可能的話,如何導入和使用它。

或者我創建一個Java項目,並使用jni與它通信以與c ++項目進行通信,然后對其進行編譯。之后,我有了一個* .jar文件,並使用它而不是android ndk。

其中哪一個可能或有效。

我不確定我是否正確理解了這個問題,但是我認為您更願意使用C ++編寫您的Android應用程序,並且擁有一個核心庫/模塊,您想在每個不包含該庫的后續項目中重復使用該庫/模塊每個連續項目中的SOURCE文件。

通過將所需的庫添加到makefile中,可以省略包含源文件,並在新項目中包含最終構建的.so文件。 像這樣:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_C_INCLUDES := (includes for libraryname)
LOCAL_MODULE := libraryname
LOCAL_SRC_FILES := libraryname.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

--- instructions for custom application code here ---

LOCAL_SHARED_LIBRARIES := libraryname

其中“ libraryname”是庫模塊的名稱,而“ libraryname.so”是庫文件的名稱。 注意,該路徑應相對於make文件。 在第二個“ include $(CLEAR_VARS)”之下和最后一個“ LOCAL_SHARED_LIBRARIES”之下,您添加了用於構建將使用共享庫的應用程序源代碼的說明。

不要忘記按順序在Java端加載所有庫,即:

 System.loadLibrary( "libraryname" );
 System.loadLibrary( "customlib" );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM