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

Android, accessing resource files from a native/NDK shared library

本文关键字:共享 访问 资源 源文件 NDK Android      更新时间:2023-10-16

我正在为旧的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

Thanks in advance


环境:

ndk ver: ndk-r12b
编译器:GCC c/c++ 4.9.x
AOSP: 5.1.1 .1_r30
API级别:22

引用:

    如何访问android库项目中的资源
  1. 为android提供资源
  2. 访问android上的资源

根据这个答案,NDK提供了一个API来访问assets文件夹(AAssetManager,见这里)。

或者,我在我的一个项目中使用的一种简单方法是将必要的文件写入Java端的文件系统(例如/storage或/sdcard),然后只将文件路径传递给NDK。