如何添加动态c++;库到Android源代码?

如何添加动态c++;库到Android源代码?,android,c++,Android,C++,我需要将我的本机库添加到Android源代码中,以便其他应用程序可以使用它(在代码中调用此库中的函数)。我需要像嵌入一样使用库,而不将它添加到我想要使用它的每个项目中。但我找不到这方面的信息 请告诉我怎么做。抱歉据我所知,您正在尝试在Android上运行c/c++代码。我说得对吗 要做到这一点,您应该使用构建本机库,然后将其加载到java代码中 安装ndk后,您需要按照4个简单步骤在android上运行本机代码: 1) 为本机代码创建Java“包装器”。例如,创建名为MyNatives的类,该类

我需要将我的本机库添加到Android源代码中,以便其他应用程序可以使用它(在代码中调用此库中的函数)。我需要像嵌入一样使用库,而不将它添加到我想要使用它的每个项目中。但我找不到这方面的信息


请告诉我怎么做。抱歉

据我所知,您正在尝试在Android上运行c/c++代码。我说得对吗

要做到这一点,您应该使用构建本机库,然后将其加载到java代码中

安装ndk后,您需要按照4个简单步骤在android上运行本机代码:

1) 为本机代码创建Java“包装器”。例如,创建名为
MyNatives
的类,该类将保存用
native
关键字声明的方法。这告诉编译器,该方法的实现是在本机库中完成的。创建静态初始值设定项,它将加载库。例如:

    public class MyNatives { 
        static {
            System.loadLibrary("hello-jni"); 
        }
        public void native nativeMethod(int x); 
    }
2) 编译代码,并为您的本地类运行名为
javah
的工具(eclipsee有一些插件可以为您实现这一点,例如)

要构建库,只需从项目根目录调用
ndk build


有关更多信息,请参阅Android NDK文档。希望它有点帮助。

是的,我想在Android上运行C++代码。感谢您的回答,但据我所知,在本例中(使用Android NDK),如果我想在任何应用程序中使用库,我都需要为任何应用程序执行此操作(您的指示)。但我需要在Android操作系统中添加库(在Android源代码中并编译),以便在任何应用程序(如embed)中使用该库,而无需在每个项目中添加库。可能吗?每个Android应用程序基本上都在一个沙箱中运行。系统库是共享的,但应用程序无法看到彼此的内容。显然,有一种方法可以让特定的应用程序共享同一个沙箱(以相同的用户ID运行),但我需要对此进行调查。我想在Android源代码中添加新的系统库,以便在任何应用程序中使用。如果不从源代码编译Android并为其创建新内核,我不确定这是否可行。我想到的另一个解决方案是创建android库项目,并在其中为您的本地库创建一个包装器。然后,您可以将它作为库包含在每个应该使用它的应用程序中。我理解。我有Android源代码,我想用我的库编译它。但我不知道把我的库放在哪里,以便作为其他嵌入式原生Android库使用
    cd <your project path>
    mkdir jni
    javah -d jni -classpath bin/classes com.example.MyNatives
    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)
    # your library name
    LOCAL_MODULE    := hello-jni

    # all source files
    LOCAL_SRC_FILES := hello-jni.c

    include $(BUILD_SHARED_LIBRARY)