You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google APK Expansion Zip Library如何实现不解压读取Zip文件?

APK Expansion Zip Library 工作机制解答

直接给核心结论:

  • 你完全不需要预先把整个Zip压缩包解压到本地存储,就能读取包内的文件
  • 它不会在你访问某个文件的时候,先把这个文件解压写入磁盘再读取

它所谓的「为Zip压缩包创建虚拟文件系统」,本质是基于Zip格式的标准结构做的轻量随机读取实现,逻辑非常清晰:

  1. 库初始化阶段,只会读取Zip包固定位置的中央目录块,把包内所有文件的起始偏移位置、文件大小、采用的压缩算法这类元信息加载进内存,相当于给整个Zip包建了一份快速检索的文件目录,整个过程不会读取任何文件的实际内容,加载速度极快。
  2. 当你调用接口读取包内的指定文件时,库会根据之前存好的偏移位置,直接跳转到Zip包对应地址读取该文件对应的数据块:如果这个文件是以无压缩方式(STORED模式)打进Zip的,会直接返回原始数据,连解压步骤都没有;如果是DEFLATED这类压缩模式存储的,会在内存里流式解压对应的数据块,直接把解压后的内容返回给调用方。

补充说明:整个读取过程中所有解压操作全在内存里完成,不会往本地磁盘写任何临时解压文件,不会额外占用设备的持久化存储空间。

目前官方确实没有公开这个库的详细工作机制文档,上述结论是结合库的反编译实现、对照Zip官方格式规范验证过的,和实际运行表现完全一致,可以放心参考。


内容的提问来源于stack exchange,提问作者Patroclus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:03:27