青岛Android培训
达内青岛山东中心

18300268127

热门课程

Android gzip的一个小坑

  • 时间:2016-11-09
  • 发布:青岛达内android中心
  • 来源:达内新闻

使用gzip压缩游戏资源的时候踩了一个小坑。

gzip命令默认会将被压缩文件的名称写入到zip包中,所以文件img.png和其副本img_copy.png压缩后的md5值就不相同了。

简单的测试脚本如下:

#! /bin/bash

echo "the md5 of original png :"

md5 /temp/test/img.png

md5 /temp/test/img_copy.png

gzip -2 -5 -c /temp/test/img.png > /temp/test/img.zip

gzip -2 -5 -c /temp/test/img_copy.png > /temp/test/img_copy.zip

echo "the md5 of zip :"

md5 /temp/test/img.zip

md5 /temp/test/img_copy.zip12345678910111234567891011

执行结果如下:

the md5 of original png :

MD5 (/temp/test/img.png) = b00a1862e781da625df40658d54f48bb

MD5 (/temp/test/img_copy.png) = b00a1862e781da625df40658d54f48bb

the md5 of zip :

MD5 (/temp/test/img.zip) = d17c8b512e0eb2c0df46d1cf294d11ba

MD5 (/temp/test/img_copy.zip) = a1bc3d6f0d2c0cb174ca99190d8b6744123456123456

压缩前两个png的md5值是相同的,压缩后的两个zip的md5值确实不同了。

使用gzip –help查看命令参数:

usage: gzip [-123456789acdfhklLNnqrtVv] [-S .suffix] [ [ …]]

-1 –fast fastest (worst) compression

-2 .. -8 set compression level

-9 –best best (slowest) compression

-c –stdout write to stdout, keep original files

–to-stdout

-d –decompress uncompress files

–uncompress

-f –force force overwriting & compress links

-h –help display this help

-k –keep don’t delete input files during operation

-l –list list compressed file contents

-N –name save or restore original file name and time stamp

-n –no-name don’t save original file name or time stamp

-q –quiet output no warnings

-r –recursive recursively compress files in directories

-S .suf use suffix .suf instead of .gz

–suffix .suf

-t –test test compressed file

-V –version display program version

-v –verbose print extra statistics

关键的一句是: -n –no-name don’t save original file name or time stamp

gzip 命令中设置-n参数,压缩时不保存文件名称。

更改后的压缩命令如下:

gzip -2 -5 -c -n /temp/test/img.png > /temp/test/img.zip11

PS:测试环境为Mac,自带gzip、md5命令。

上一篇:Android开发应避免的十大误区
下一篇:Android5大布局方式详解

Android是怎样被研发出来的?(二)

Android是怎样被研发出来的?(一)

以后Windows Defender再也不用第三方管家了

最实用的windows系统清理垃圾最快捷的方法

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊