[发明专利]一种应用程序压缩的方法及设备有效
申请号: | 202010983706.X | 申请日: | 2020-09-17 |
公开(公告)号: | CN112131193B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 王志龙;王静伟;韩璐 | 申请(专利权)人: | 上海上讯信息技术股份有限公司 |
主分类号: | G06F16/174 | 分类号: | G06F16/174;G06F16/13;G06F16/16;G06F16/17 |
代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 王奎宇;甘章乖 |
地址: | 201203 上海市浦东新区自*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 压缩 方法 设备 | ||
本申请的目的是提供一种应用程序压缩的方法及设备,本申请通过将应用程序的原始程序包文件进行解压,将解压后的原始文件放入指定目录中;将所述应用程序的外壳程序包文件进行解压,将解压后的外壳文件放入所述指定目录中;对所述指定目录进行压缩,得到目录文件压缩包;合并所述原始程序包文件与所述目录文件压缩包,以生成指定目录文件。从而使得应用程序经过压缩后的大小更小,进一步节省了空间,同时保证了应用程序的文件数据的完整性。
技术领域
本申请涉及计算机领域,尤其涉及一种应用程序压缩的方法及设备。
背景技术
在开发过程中,遇到两个需求。
需求1:需要将两个安卓apk文件合并到一起,原始apk文件叫做A文件,需要保留所有文件内容;壳apk文件叫做B文件,仅保留含有代码部分的class.dex文件;合并之后叫做C文件。
需求2:合并后要保留一份A文件。
现有的压缩方式为:将A文件解压,将所有文件放入目录D;将B文件解压,把class.dex文件放入目录D;复制A文件到目录D;压缩目录D得到C文件。
这样做有一个缺点,C文件的大小会是A文件大小的2倍以上,以大小为110M的QQ安卓apk文件为例,合并后的C文件大小就是225M,文件过大。
发明内容
本申请的一个目的是提供一种应用程序压缩的方法及设备,解决现有技术中合并应用程序压缩后文件过大的问题。
根据本申请的一个方面,提供了一种应用程序压缩的方法,该方法包括:
将应用程序的原始程序包文件进行解压,将解压后的原始文件放入指定目录中;
将所述应用程序的外壳程序包文件进行解压,将解压后的外壳文件放入所述指定目录中;
对所述指定目录进行压缩,得到目录文件压缩包;
合并所述原始程序包文件与所述目录文件压缩包,以生成指定目录文件。
进一步地,合并所述原始程序包文件与所述目录文件压缩包,以生成指定目录文件,包括:
获取所述原始文件对应的原始文件数据和原始文件索引,并从所述指定目录文件中获取外壳文件对应的外壳文件数据和外壳文件索引;
遍历所述原始文件索引和所述外壳文件索引以确定所述原始文件数据和所述外壳文件数据的共有文件数据;
删除所述外壳文件数据中共有文件数据的文件记录,将所述删除的共有文件数据对应的文件索引指向所述原始文件数据中共有文件数据的文件记录,完成所述原始程序包文件与所述目录文件压缩包的合并,生成指定目录文件。
进一步地,所述原始文件索引以及外壳文件索引均包括crc校验值、压缩后文件大小、文件名称信息和文件数据的偏移值。
进一步地,所述原始文件数据以及外壳文件数据均包括文件日期、压缩后文件大小、文件名称信息和文件压缩后的数据。
进一步地,遍历所述原始文件索引和所述外壳文件索引以确定所述原始文件数据和所述外壳文件数据的共有文件数据,包括:
遍历所述原始文件索引以及所述外壳文件索引,确定所述原始文件数据和所述外壳文件数据的共有文件索引;
根据所述共有文件索引确定所述共有文件数据。
进一步地,对所述指定目录进行压缩,得到目录文件压缩包,包括:
在所述指定目录中将所述原始文件写入一个目录文件的头部,将所述外壳文件写入所述目录文件的尾部;
将所述目录文件压缩得到所述目录文件压缩包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海上讯信息技术股份有限公司,未经上海上讯信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010983706.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种叉车举升工作装置
- 下一篇:一种用纸输送稳定的石膏板加工装置