Чтение файлов ресурсов из моего собственного APK в родной среде Android - PullRequest
15 голосов
/ 16 апреля 2010

Я портирую на Android. У моего существующего проекта есть куча файлов ресурсов, которые я портирую в свой проект Android. У меня все они есть в / res / raw /, и я хотел бы получить доступ к этим ресурсам в моей нативной библиотеке с помощью таких функций, как fopen () и тому подобное. Можно ли это сделать, или я должен пройти через JNI для этого? Я бы предпочел не делать этого из-за простоты портирования и возможных скоростей и памяти.

Ответы [ 2 ]

14 голосов
/ 19 апреля 2010

Если вы предотвращаете сжатие своих активов при их добавлении в APK, тогда вы можете использовать openRawResourceFd (), чтобы получить дескриптор файла, смещение и размер и передать их в ваш родной код, где вы просто делаете fopen и fseek. С другой стороны, если вы позволите системе сборки сжать файлы, к которым вы хотите получить доступ, вам нужно будет использовать что-то вроде libzip , чтобы прочитать их из APK.

5 голосов
/ 28 августа 2012

Проверьте obb.h в ndk.

Из документов / 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).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...