android ndk沟通不同的c ++项目

时间:2014-01-07 18:41:59

标签: android c++ import android-ndk

我想为android ndk创建一个c ++项目。我希望每个项目都像动态库一样使用它。我不想每次都更改/传输源代码。我导入* .so文件并包含它并使用它上课或其他什么。 这是可能的。如果可能的话,如何导入和使用它。

或者我创建java项目,我使用它来使用jni与c ++项目进行通信,然后我编译它。之后我有一个* .jar文件,我使用它而不是android ndk。

哪一种可能或有效。

1 个答案:

答案 0 :(得分:1)

我不完全确定我是否正确理解了这个问题,但我认为您更喜欢使用/主要使用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" );