Android,从本地/NDK共享库访问资源文件

4
我正在创建一个适用于旧版Android API级别的本地共享库。我能够从客户端代码中调用库中的函数。但是我需要在共享库中使用一些图像文件。参考1和3提到了通过使用Java代码访问资源文件的方法。我的问题是:是否有一种方式允许我使用类似于fopen(res_path)的C/C++函数来打开资源文件?库源代码结构如下:
.
├── AndroidManifest.xml
├── Android.mk
├── Application.mk
├── res
│   └── drawable
│       ├── 0.jpg
│       ├── 1.jpg
│       ├── ...
│       └── 9.jpg
├── MyApp.cpp
└── MyApp.h

提前致谢。


环境:

NDK版本:ndk-r12b
编译器:gcc c/c++ 4.9.x
AOSP:5.1.1_r30
API级别:22

参考资料:

  1. 如何在Android库项目中访问资源
  2. 在Android上提供资源
  3. 在Android上访问资源

我通常在res文件夹中使用一个raw文件夹来存储apk内部存储的图像。但是,您需要在Java中添加一些功能来存储文件。如果我有时间,我会发布一个示例。 - uelordi
1个回答

7
根据这个答案,NDK提供了一个API来访问assets文件夹(AAssetManager,请参见此处)。
另外,我在我的一个项目中使用的简单方法是在Java端将必要的文件写入文件系统(例如/storage或/sdcard),然后仅将文件路径传递给NDK。

根据这个答案,共享库无法访问资产。 - r0n9
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Matthias Nefzger
因为我没有使用Android Studio,Gradle构建系统对我来说似乎不是一个好的选择。 - r0n9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接