我正在为较旧的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 ver:ndk-r12b
编译器:gcc c / c ++ 4.9.x
AOSP:5.1.1_r30
API级别:22
的引用:
答案 0 :(得分:5)
根据this answer,NDK提供了一个API来访问资产文件夹(AAssetManager
,请参阅here)。
或者,我在我的一个项目中使用的一种简单方法是将必要的文件写入Java端的文件系统(例如/ storage或/ sdcard),然后仅将文件路径传递给NDK。