前言
最近公司开发一款app(原生安卓的),由于客户需要在app上展示3D效果图,但是客户的源文件是setp格式的,而且文件很大。鉴于文件解析等一系列考虑,最终打算使用服务器将源文件解析成json或者obj格式,然后传输到app上打开预览,最终选择的是使用python将step解析成json,本地测试一切正常,上线发现问题来了,解析出来的json文件比源文件非常大,通常都是好几十MB,所以就考虑压缩传输,然后在客户端进行解压渲染。
各种压缩方式测试
- 7z+zip或者7z+7z压缩方案:采用7z压缩后,再使用zip或者7z压缩,文件和第一次压缩大小一样(不可嵌套压缩)
- Inflate和Deflate+7z压缩方案:采用Inflate和Deflate压缩完字符串后,再7z的文件比直接json+7z压缩出来的文件要大。
- Inflate和Deflate+base64+7z压缩方案:采用Inflate和Deflate压缩完字符串后的base64存储到文件,再使用7z压缩,这种方式压缩出来的文件也比直接压缩json要大。
结束语
能直接使用7z压缩json就直接使用,其他几种方案都不是最优方案。