ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

微信安装包从0.5M暴涨到260M,为什么我们的程序越来越大?

2022-07-27 07:33:54  阅读:245  来源: 互联网

标签:文件 程序 微信 0.5 本体 使用 安装包


最近,微信安装包从v1.0的0.5M暴涨到V8.0的 260M引起大家热议,为什么我们开发的程序越来越大?本文做一个简单的讨论。(本文主要根据B站科技老男孩《逆向工程微信安装包,11年膨胀575倍到底更新了啥?》编写)。

 

1.程序安装包变大了

1.1安装包简介

最近,很多人都感觉到,现在的程序安装包没有1-2百兆大小都不好意思叫做安装包。这在以前是不可想象的,早期(其实也没有多早,大约10年前吧),正常一个程序的安装包也就30M左右,那时

你可以照样使用微信,使用百度,使用支付宝。可是现在,1-2百M的安装包比比皆是,而这还只是安装包。

 

大家都知道android的apk是zip格式的,解压后,就可以看到本体了,微信安装包解压后大小已经达到了617M,包含了12639个文件。

作为对比,微信1.0版只有199个文件。

 

 那么到底是那些东西占用了大量空间呢?

 

1.2资源文件站了12.8%

微信版资源文件包括的各种图片文件,视频、音频文件,比如微信铃声、各种图标等。

另外,原作者也提到新版微信应该是公司内部不同开发组做的,导致资源管理非常混乱,各顾各的,最后缝在一块,

所以,会有重复的情况,有些资源命名也直接使用的是拼音。

 

 

 

 1.3 各种库文件站了50%

  lib文件夹存放了各种库文件,这是安装包的大头。

在程序开发里,很多时候都使用了第三方库,而不是从零编起,

以微信为例,我要支持在线解压,那包含一个7-zip库。

我要支持视频播放(mp4,ogg,avi等),那就把ffmpeg库打包进去。

我要支持图片在线编辑,那把pngedit库包含进去

这些第三方库都是打包好的,很难再压缩。微信一共使用了157个库文件。

 

 

 

1.4  程序本体

程序本体也就是程序自己实现的主要功能,新版大小为161M,而 V1.0版本只有0.25M,换句话说,但就聊天而言

微信只要0.25M就能实现核心聊天功能,去掉零头,在161M的程序本体里,160M都可以去掉不要(当然这是有点夸张的说法)。

  

 

  进一步反编译可以看到在v1.0里使用了1845个string就能实现新版 1498000个string实现的聊天功能。

因此,你可以看想象到微信里面塞了多少内容。

 

 

 

 所以,微信中0.1%的功能是聊天,剩下的99.9%都是塞给你的,什么打车、游戏、外卖、视频等等,

 

 

 

2.爱这么爱干的不止微信一家

软件包越来越大的企业不止微信,比如X浏览器使用1M就实现了浏览器的核心功能(充分利用操作系统自带的功能),而UC浏览器就达到了83M。

每个大企业都没有安全感,都把游戏、视频、外卖等往里塞。

刚刚,支付宝又提示有新的更新包,要我升级了。

 

 

对比一下美国的 Facebook大小是66.52M,Twitter 安装包109M,谷歌地图99M(百度地图130M),都尽可能控制在100M以内。

  

 

如今,虽然硬件急速发展,手机2核或4核,内存128或者256都已经算是最低配置了,

但是如果每个软件越来越大,再大的硬件配置也不够软件使用。

 

标签:文件,程序,微信,0.5,本体,使用,安装包
来源: https://www.cnblogs.com/mqingqing123/p/16523353.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有