我正在移植到Android。我现有的项目中有大量资源文件,我正在将这些文件移植到我的Android项目中。我将它们全部放在/res/raw/中,并且我想使用诸如fopen()之类的函数来访问 native 库中的那些资源。可以做到这一点,还是我也必须通过JNI?我真的不愿意这样做,因为它易于移植,并且可能存在速度和内存方面的原因。
最佳答案
如果将prevent your assets from being compressed添加到您的APK中,则可以use openRawResourceFd() to get a file descriptor, offset, and size并将它们传递给您的 native 代码,在此只需执行一次fopen和fseek。另一方面,如果让构建系统压缩要访问的文件,则需要使用libzip之类的东西来从APK中读取文件。