gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:47 24 4
gpt4 key购买 nike

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

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

其中哪一个可能或有效。

最佳答案

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

您可以忽略包含源文件,并通过将所需的库添加到您的 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" );

关于android ndk 通信不同的 c++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20979294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com