[英]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.