Android,从 native/NDK 共享库访问资源文件
Android, accessing resource files from a native/NDK shared library
我正在为较旧的 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
参考资料:
- how to access resources in a android library project
- providing resource on android
- Accessing resources on android
根据this answer, the NDK provides an API to access the assets folder (AAssetManager
, see here)。
或者,我在我的一个项目中使用的一种简单方法是将必要的文件写入 Java 端的文件系统(例如 /storage 或 /sdcard),然后只将文件路径传递给NDK.
我正在为较旧的 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
参考资料:
- how to access resources in a android library project
- providing resource on android
- Accessing resources on android
根据this answer, the NDK provides an API to access the assets folder (AAssetManager
, see here)。
或者,我在我的一个项目中使用的一种简单方法是将必要的文件写入 Java 端的文件系统(例如 /storage 或 /sdcard),然后只将文件路径传递给NDK.