Android,从本地/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
Thanks in advance
环境:
ndk ver: ndk-r12b
编译器:GCC c/c++ 4.9.x
AOSP: 5.1.1 .1_r30
API级别:22
引用:
- 如何访问android库项目中的资源
- 为android提供资源
- 访问android上的资源
根据这个答案,NDK提供了一个API来访问assets文件夹(AAssetManager
,见这里)。
或者,我在我的一个项目中使用的一种简单方法是将必要的文件写入Java端的文件系统(例如/storage或/sdcard),然后只将文件路径传递给NDK。
相关文章:
- 如何访问由共享指针保存的类方法?
- 如何在类中安全地访问 const 共享数组
- 尝试通过共享指针使用变量时读取访问冲突
- 访问共享内存而不使用易失性、std::atomic、信号量、互斥锁和自旋锁
- 在向量中使用共享指针来访问类对象
- 越界访问 CUDA 共享内存
- OpenMP:当我按线程 ID 访问共享变量时,我是否需要一个关键部分
- 是否有更好的方法来封装成员对象可以访问的共享存储池?
- OpenMP 环路阵列访问中的错误共享
- 访问共享内存时出现读取访问冲突
- 如何使用 c++ 创建对"everyone"具有共享访问权限的文件夹
- 如何使用C++共享目录,以便每个人都可以访问
- 使用 IPC 共享内存的应用程序是否可以访问彼此的代码?
- 使用C 中的共享_ptr从公共静态成员函数访问私有构造函数
- 多个线程访问共享资源
- 无法从C 代码访问C共享库方法
- 会员在共享_ptr上访问指针
- 在不违反严格的别名规则的情况下访问进程间共享内存中的对象
- 如何通过C 获得Azure容器的共享访问签名
- 使用哪种类型的指针来实现对集合元素的共享访问