Android NDK传达不同的C ++项目

android ndk communicate different c++ project

本文关键字:项目 NDK Android      更新时间:2023-10-16

我想为 android ndk 创建一个 c++ 项目。我想在每个项目(如动态库)中使用它。我不想每次都更改/传输源代码。我导入 *.so 文件并包含它并使用它的类或其他任何东西。这是可能的。如果可能的话,如何导入和使用它。

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

其中哪一个可能或有效。

我不完全确定我是否正确理解了这个问题,但我假设您更喜欢单独/大部分使用C++编写Android应用程序,并拥有一个核心库/模块,您希望在每个连续项目中重复使用,而无需在每个连续项目中包含该库SOURCE文件。

可以省略包含源文件,并通过将所需的库添加到生成文件来在新项目中包含最终生成的 .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.so"是库文件的名称。请注意,路径应相对于生成文件。在第二个"include $(CLEAR_VARS)"下方和最后一个"LOCAL_SHARED_LIBRARIES"上方,您添加构建使用共享库的应用程序源代码的说明。

不要忘记在Java端按顺序加载所有库,即:

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