【问题标题】:Creating Android library package including external (Native or Java) package创建包含外部(Native 或 Java)包的 Android 库包
【发布时间】:2014-04-27 20:34:02
【问题描述】:

我开发了一个计算机视觉算法应用程序,它使用像 OpenCV 这样的原生 C++ 库来捕获相机帧并进行图像处理。我的整个实现驻留在通过活动调用的本机函数中。

假设:

public native int MYMETHOD(int width, int height,int[] rgba);

我也像这样加载我的库:

static {
    System.loadLibrary("MYNativeLIB");
}

现在我的问题是如何将我的应用程序部署为库包。我可以共享它的可交付成果,客户可以将其导入他们的项目,而无需安装任何其他库,例如 OpenCV。我需要构建一个.so 包吗? 我已阅读 this 文章。但我也不知道如何链接OpenCV 库。 提前感谢您的帮助。

【问题讨论】:

    标签: android opencv shared-libraries static-libraries native


    【解决方案1】:

    你应该看看static initialization for OpenCV4andorid。然后,您可以将 Open CV 库添加到库项目的 /libs 目录中,而无需在使用时安装任何第三方应用程序。

    【讨论】:

    • 不建议在内部捆绑 OpenCV,因为将来用户可能希望使用与您不同的 OpenCV 版本。您不应该在 jar 中提供 OpenCV,而是让用户知道应该存在 OpenCV 库。查看各种andorid或java库,它们从不包含它们的依赖关系,你必须处理它们或使用maven/gradle
    • 在开发阶段使用 gradle/maven 绝对是正确的,但问题是使用 openCV,您需要在生产环境中下载库,这对用户来说并不友好。
    【解决方案2】:

    您是否已将项目创建为库?也许您可以毫不费力地创建一个新项目并移植代码。这里有一个非常简洁而详细的解释:。

    http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

    【讨论】:

      【解决方案3】:

      首先需要使用android-ndk编译c/c++文件详解 这里解释一下

      http://rathodpratik.wordpress.com/2013/03/24/build-cc-executables-for-android-using-ndk/

      然后你就可以成功运行你的android项目了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 2012-06-17
        • 1970-01-01
        • 2014-07-17
        相关资源
        最近更新 更多