的背景:
为了使我的应用程序的代码库 (C/C++) 更便携,我想尽量减少使用 android 的原生 AAssetManager 并切换到 libzip 以从 APK 加载资产。我看了一下libzip;将它合并到项目中 - 你瞧 - 我可以使用 libzip 直接从 APK 读取我的文件。
现在,我想混淆我的资产(或者至少让访问它们变得不平凡),所以我想我会将它们打包成一个加密的 zip 存档并将该存档包含在 APK 中(基本上,一个 zip 中的一个 zip )。
我的问题:
使用本机代码直接从 APK 中访问存档中文件的最简单/最有效的方法是什么?
我希望有一种与 libzip 类似的方法,我可以简单地指定一个文件名,然后获取一个包含未压缩数据的缓冲区。
我曾尝试使用 libzip 直接从 APK 中打开压缩档案,但我的结果是空的……看来 libzip 只会使用目录打开 zip 文件,而不是从内存中的缓冲区打开(就我有)。
我想 zlib 将是一个明显的选择,但我承认我不知道如何去做。
我还考虑过从 APK 中复制存档,但我想浪费尽可能少的空间(大量资产 == 大存档)。我也想避免以单独下载的形式交付资产。
欢迎有帮助的建议或指点。