我想爲android ndk創建一個C++項目,並且我希望每個項目都像動態庫一樣使用它。我不想每次都改變/傳輸源代碼。我導入* .so文件幷包括它並使用它的類或其他。 這是可能的。如果有可能如何導入和使用它。android ndk溝通不同的C++項目
或者我創建java項目,我用它來使用jni與我交流c + +項目,我編譯它。之後,我有一個* .jar文件,我用它來代替android ndk。
其中哪一個可能或有效。
我想爲android ndk創建一個C++項目,並且我希望每個項目都像動態庫一樣使用它。我不想每次都改變/傳輸源代碼。我導入* .so文件幷包括它並使用它的類或其他。 這是可能的。如果有可能如何導入和使用它。android ndk溝通不同的C++項目
或者我創建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");