android - 在 Android Native 环境中从我自己的 APK 中读取资源文件

标签 android file-io android-ndk

我正在移植到 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 中读取它们。

关于android - 在 Android Native 环境中从我自己的 APK 中读取资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651816/

相关文章:

python - 从txt文件中读取一定数量的行并以pythonic方式转换为列表

java - 二维数组的列和行的总和

android - Android 3.x及以上版本访问Native Codecs

android - 如何使用 FirebaseJobDispatcher

android - 如何适应实体类的不同参数

java - EditText 中的问题

android - 如何删除android中的内部存储文件?

Android API 和 CPU 架构

android - 在带有外部 C++ 源的 Android Studio 中使用 NDK

java - 方法必须从UI线程调用,当前推断的线程是worker