Портирую на Андроид. В моем существующем проекте есть множество файлов ресурсов, которые я переношу в свой проект Android. Все они у меня находятся в / res / raw /, и я хотел бы получить доступ к этим ресурсам в моей собственной библиотеке с помощью таких функций, как fopen () и т. Д. Можно ли это сделать, или мне для этого также нужно пройти JNI? Я бы действительно предпочел не делать этого из-за простоты переноса и возможных соображений скорости и памяти.
Чтение файлов ресурсов из моего собственного APK в собственной среде Android
Ответы (2)
Если вы предотвратите сжатие своих ресурсов при их добавлении в ваш APK, тогда вы можете использовать openRawResourceFd () для получения дескриптора файла, offset и size и передать их в собственный код, где вы просто выполняете команды fopen и fseek. С другой стороны, если вы позволите системе сборки сжимать файлы, к которым вы хотите получить доступ, вам нужно будет использовать что-то вроде libzip, чтобы прочитать их из APK.
person
Tim Kryger
schedule
18.04.2010
Проверьте obb.h в ndk.
Из docs / STABLE-APIS.html в Android NDK:
<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).
person
Justin Buser
schedule
28.08.2012