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

r0n*_*0ng 2 c c++ android android-ndk android-source

我正在为旧的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
Run Code Online (Sandbox Code Playgroud)

提前致谢


环境:

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

引用:

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

小智 5

根据这个答案,NDK提供了一个访问资产文件夹的API (AAssetManager这里).

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