android - 我们需要在Android上发布c++预构建库,如何组织我们的库使用的资源?

标签 android android-ndk

我们在android上有一个c++项目,它将内置到.a中,然后将.a发布给我们的用户。

问题是,我们有很多资源文件,这些资源的路径是必要的,因为一些第三方库需要它们。

android上的限制是:如果我们想在Android APK中放入一个文件,我们必须将它打包在res或assets中,并且它不再是单个文件,那么我们如何组织我们的资源呢?

我们的计划是要求用户将我们的资源打包到APK的Assets中,然后我们可以将它们提取到其他文件夹中,但这不太方便,您有更好的想法吗?

谢谢

最佳答案

C++ android 项目,听起来很奇怪,可能是,你想说你有 c++ arm 交叉编译的静态库 .a,它可以加载到 Android 项目中。

我猜你想共享一个使用很多资源的库,并且你需要优雅的分发方式。

尝试创建一个具有 native 功能的 .jar 文件:

  • 首先创建核心类导出函数并定义您的 JNI 的公共(public) native 函数。

  • 不要使用 Activity ,如果需要访问 Activity 上下文,请通过 通过参数。

  • 如果你想使用资源,你的布局将无法在 您的父 Android 项目。

  • 您可以使用可绘制文件,并且可以通过编程方式添加布局文件(使用 Activity 上下文)。

  • 如果您要使用某些资源,例如 xml 配置文件,请将 在 res/raw 文件夹或 asset 文件夹中。

如果您具有良好的 Java 和 JNI 技能,那么这项任务并不那么困难。

希望建议对您有帮助。

干杯。

关于android - 我们需要在Android上发布c++预构建库,如何组织我们的库使用的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655768/

相关文章:

android - 签名保护级别 - 澄清

android - 调用 consumeAsync

android - 无法同步 Gradle 项目 - Android Studio 2.2

android - 在 Windows 上使用 Android ADT 构建 NDK 应用程序

android - 在 Android 上运行 C 代码而不编译整个树

android - 可空性和使用 Kotlin 的 LiveData

android - 如何一次从 string.xml 和普通字符串将文本设置为 TextView

android - 将盐与加密文件一起存储会破坏安全性吗?

android - 如何在android中获取时间提前值?

android - 在最近的 NDK 更新后,ndk-build 无法构建 Superpowered 音频库