在Android本机环境中从我自己的APK读取资源文件

在Android本机环境中从我自己的APK读取资源文件,android,file-io,android-ndk,Android,File Io,Android Ndk,我正在移植到Android。我现有的项目有大量的资源文件,我正在将它们移植到我的Android项目中。我把它们都放在/res/raw/中,我想用fopen()之类的函数访问我的本机库中的这些资源。这是可以做到的,还是我也必须通过JNI才能做到?我真的不希望这样做,因为易于移植,可能的速度和内存原因。如果您将它们添加到APK中,那么您可以将它们传递给您的本机代码,在那里您只需执行fopen和fseek。另一方面,如果让生成系统压缩要访问的文件,则需要使用类似的方法从APK读取它们。在ndk中签出o

我正在移植到Android。我现有的项目有大量的资源文件,我正在将它们移植到我的Android项目中。我把它们都放在/res/raw/中,我想用fopen()之类的函数访问我的本机库中的这些资源。这是可以做到的,还是我也必须通过JNI才能做到?我真的不希望这样做,因为易于移植,可能的速度和内存原因。

如果您将它们添加到APK中,那么您可以将它们传递给您的本机代码,在那里您只需执行fopen和fseek。另一方面,如果让生成系统压缩要访问的文件,则需要使用类似的方法从APK读取它们。

在ndk中签出obb.h

从Android NDK中的docs/STABLE-api.html:

<android/obb.h>
        Direct (read-only) access to assets embedded in your .apk. or
        the Opaque Binary Blob (OBB) files, a new feature of Android X.X
        that allows one to distribute large amount of application data
        outside of the .apk (useful for game assets, for example).

直接(只读)访问嵌入在.apk中的资产。或
不透明二进制Blob(OBB)文件,Android X.X的一项新功能
这使得人们可以分发大量的应用程序数据
在.apk之外(例如,对于游戏资产很有用)。