繁体   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