项目中经常会有大量的单个尺寸很小的素材,比如txt文件、mp3文件、自定义文件等等,小文件会占用更多的磁盘空间,复制速度也比较慢,如果把它们合并成一个文件,就可以解决这些问题了。类似游戏里边的素材包。
不能用整体压缩,因为我们不想每次使用的时候都解压一遍,解压需要占用时间和内存。
我们只需要将这些文件直接连接到一块,并创建索引,用到某个文件的时候,直接查索引,只取文件内容的二进制数据。当然,单个文件可以进行压缩,或者分类进行压缩。
该工具使用flash air技术创建,为了减小文件体积,没有嵌入运行时,需要额外安装adobe air,安装该工具之前,请自行百度搜索“adobe air”进行安装。(在天朝,自动安装太慢了)
===================================
文件格式
{
文件数据,
文件索引,json,//长度由json长度指定
json长度, //int
是否压缩,y/n //一个字节
文件标识,han //3个字节
}
json格式
{
文件名:[文件数据其实位置,文件数据长度],
文件夹名:{
文件名:[文件数据其实位置,文件数据长度],
文件夹名:{
文件名:[文件数据其实位置,文件数据长度],
文件名:[文件数据其实位置,文件数据长度],
}
文件名:[文件数据其实位置,文件数据长度],
}
}
===================================
命令行方式调用:
应用程序名 type 输入路径 输出路径 是否压缩
type: -h:帮助
-j:解包
-d:打包
是否压缩:
-y:压缩
-n:不压缩
可参考run.bat。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。