全球熱點(diǎn)評(píng)!11 年膨脹 575 倍,微信為何從“小而美”變成了“大而肥”?
前一陣,馬斯克“狂吹”微信,贊其功能強(qiáng)大,中國人就像“住在微信里面一樣”,是一個(gè)很好的 App。結(jié)果今天一早,微信就因功能太多上了熱搜:
據(jù)了解,最初在 2011 年 1 月發(fā)布的微信 1.0,其安卓 APK 安裝包的體積僅有 457KB,可謂是名副其實(shí)的“小而美”;而到了 11 年后的如今,微信 8.0.24 版本的安裝包已經(jīng)達(dá)到了 257MB——11 年來,微信安裝包膨脹了 575 倍。
突然之間,覺得自己好像掌握了手機(jī)內(nèi)存越來越大、空間卻越來越小的答案……不過,膨脹了幾百倍的微信到底加了些啥呢?
(資料圖)
近日,B 站 UP 主“科技老男孩”就通過逆向工程,揭秘了這些年來微信 APK 安裝包膨脹的 575 倍到底用來做什么了,即他所說的:“微信在這 11 年是怎么從小而美變成大而肥的?!?/p>
(圖片來自 B 站 UP 主“科技老男孩”視頻截圖)
微信從“小而美”到“大而肥”
由于 575 倍這一數(shù)字來自微信 1.0 和微信 8.0.24 之間的差距,因此這位 UP 主逆向工程和對(duì)比的也正是這兩個(gè)微信版本。
首先需要明確的是,APK 安裝包本質(zhì)上只是一種 zip 壓縮包,這也就意味著安裝好的 App 往往會(huì)比其 APK 文件要大得多。
以微信 8.0.24 為例,其 APK 安裝包 257MB,但解壓后大小為 617MB,占用空間 634MB,包含 12639 個(gè)文件,是解壓前的 2.4 倍。與之相比,微信 1.0 解壓后只有 737KB,占用空間 1.03MB,文件數(shù)也只有 199 個(gè)——也就是說,當(dāng)初微信 1.0 僅用 199 個(gè)文件就實(shí)現(xiàn)了“聊天”這個(gè)核心功能。
隨后,該 UP 主便分別查看這兩個(gè)微信版本解壓后的文件夾,對(duì)比其中差距所在。
(1)assets 文件夾
在微信 8.0.24 中,該文件夾大小 78.4MB,占用空間 80.1MB,包含 1137 個(gè)文件,主要裝著微信的各類資源素材,如自帶的 emoji 表情、不同頁面下的字體、音頻文件、圖片資源、微信電話鈴聲等。
而在微信 1.0 中,可能因?yàn)楫?dāng)時(shí)微信用的都是系統(tǒng)自帶的資源,所以并沒有 assets 文件夾。
值得一提的是,在解析微信 8.0.24 的 assets 文件夾時(shí),UP 主吐槽了兩點(diǎn):
編程最忌諱的就是拼音命名,因?yàn)檫@會(huì)使代碼很難維護(hù),而騰訊程序員卻將“收款到賬”的音頻文件直接命名為“skdz”。
“收款到賬”的音頻放在 assets\sound 路徑下,而同為音頻文件的“微信電話鈴聲”卻直接放在了 assets 路徑下,可見“新版微信的開發(fā)非?;靵y”。
(2)lib 文件夾
在微信 8.0.24 中,該文件夾大小為 337MB,占用了該微信版本空間的 54%,里面裝的是各種第三方動(dòng)態(tài)庫,如解壓文件所用到的 7-Zip 庫,實(shí)時(shí)解碼播放 ape、flac、mp3、ogg 音頻文件用到的庫,編解碼視頻用到的 ffmepg 庫等等,一共有 157 個(gè)庫。
據(jù) UP 主分析,這些庫的由來大多是因?yàn)椤懊嫦驈?fù)制粘貼編程”:很多情況下,編程并不是從 0 開始硬寫,而是缺少什么功能就去網(wǎng)上找實(shí)現(xiàn)這種功能的“輪子”再縫合進(jìn) App 里,這就導(dǎo)致了往 App 塞入的功能越多,其安裝包體積也會(huì)因?yàn)楦鞣N動(dòng)態(tài)庫的加入變得越臃腫。
反觀微信 1.0,其 lib 文件夾下只有 1 個(gè)動(dòng)態(tài)庫,大小也僅有 127KB,即可實(shí)現(xiàn)“聊天”這個(gè)最重要的功能。
(3)META-INF 文件夾
該文件夾用于存儲(chǔ)開發(fā)者的數(shù)字簽名,微信 8.0.24 中的大小為 2.1MB,微信 1.0 中則為 34.4KB。
(4)r/res 文件夾
在微信 8.0.24 中,r 文件夾大小 29.9MB,它在微信 1.0 中對(duì)應(yīng)的是 res 文件夾,大小為 250KB,主要存放 App 的資源庫,如各種圖形化界面的框架素材、圖標(biāo)素材等。
(5)resdec 文件夾
不論在微信 1.0 還是在微信 8.0.24 中,該文件夾都是空的,因此不再贅言。
(6)其他文件
除此之外,在微信 8.0.24 的根目錄下還有 17 個(gè)文件:配置文件 AndroidManifest.xml,記錄 classes.dex 文件 MD5 值的 baseInfo.dat,記錄文件之間對(duì)應(yīng)關(guān)系的 resources.arsc,以及 14 個(gè) classes.dex 文件,也就是 Java 經(jīng)過源碼編譯后生成的 Java 字節(jié)碼文件,即微信編譯后的程序本體。
在微信 8.0.24 中,14 個(gè) classes.dex 文件共占 161 MB,對(duì)應(yīng)微信 1.0 中僅有 1 個(gè),且僅占 256KB。
(7)源代碼組成
分析完解壓文件后,UP 主稱還通過逆向工程查看了編譯前的微信源代碼,結(jié)果令其震驚。
先看微信 1.0 源代碼所包含的內(nèi)容,其組成源代碼的基本單元如下:
再看微信 8.0.24 的源代碼組成單元:
通過對(duì)比可輕易看出微信 8.0.24 中各種單元都增加了 500 倍以上,尤其是 string 字符串,從最初的 1845 個(gè)到新版中暴漲近 150 萬個(gè)。UP 主對(duì)此調(diào)侃道:“可見新版微信中有 99.9% 的內(nèi)容都是垃圾,真正實(shí)現(xiàn)聊天部分的代碼可能只占 0.1%?!?/p>
在視頻尾聲,這名 UP 主總結(jié)道:“微信把自己當(dāng)操作系統(tǒng)來做 App,什么打車、快遞、外賣、游戲,不管你用不用得上都給你塞進(jìn)去,然后淘寶、支付寶、美團(tuán)等各種 App 又來占一遍你的手機(jī)空間,導(dǎo)致手機(jī)提升的性能和增加的內(nèi)存都用來運(yùn)行這些垃圾功能的代碼,而用戶絲毫沒有選擇權(quán)?!?/p>
網(wǎng)友:“電腦一個(gè)瀏覽器,手機(jī)塞滿 App”
“科技老男孩”的這則視頻在 B 站引起大量討論的同時(shí),也登上了微博熱搜,眾多網(wǎng)友對(duì)他的解析發(fā)表了自己的看法。
有許多人認(rèn)可 UP 主的結(jié)論:
“電腦一個(gè)瀏覽器,手機(jī)塞滿 App?!?/p>
“微信占我十個(gè)多 G,手機(jī)已經(jīng)快爆了?!?/p>
部分人指出,這名 UP 主的分析并不專業(yè),且過于主觀:
“作為一名 Android 開發(fā),這個(gè)視頻是篇爽文,但毫無技術(shù)價(jià)值,沒幾個(gè)正確的點(diǎn)?!?/p>
“雖然微信垃圾是事實(shí),但你這個(gè)逆向明顯說不通?!?/p>
“主觀意識(shí)太強(qiáng)烈了?!?/p>
同時(shí)也有部分網(wǎng)友借此說出了一些理想化建議:
“如果可以自己下載模塊化就好了,在基礎(chǔ)聊天功能上,短視頻和看點(diǎn)自己選擇性下載。”
“希望軟件都出個(gè)純凈版,不要整些花里胡哨、不需要的功能增加內(nèi)存。”
一個(gè)個(gè)超級(jí) App 的誕生,是福還是禍?
還記得在去年的微信之夜上,微信創(chuàng)始人張小龍?jiān)f:“微信一開始就是奔著小而美的產(chǎn)品去做的,現(xiàn)在也依然還是一款小而美的產(chǎn)品?!笨僧?dāng)我們看著手機(jī)里即便經(jīng)常清緩存也幾乎穩(wěn)居 App 內(nèi)存占用第一名的微信,不免有些茫然。
最初,微信作為“方便快捷簡便”的“輕聊天工具”走紅,而如今,承載了支付、短視頻、搜索、購物等多項(xiàng)功能的微信儼然已成長為一個(gè)超級(jí) App。
除卻微信,目前許多企業(yè)做 App 也是一副“我全都要”的態(tài)度,為了吸引并穩(wěn)固更多流量,不管相不相關(guān)、好不好用,只要火的功能就都往里塞,一個(gè)個(gè)都想成為全能瀏覽器、超級(jí) App。
但實(shí)際上對(duì)于很多用戶來說,這些功能往往并不會(huì)被用到,App 體積的增加對(duì)他們而言也并不必要——這就引發(fā)了一個(gè)思考:一個(gè)又一個(gè)超級(jí) App 的誕生,對(duì)消費(fèi)者而言究竟是便利的狂歡還是福利的悲哀?
最后,可否分享你手機(jī)中的微信占據(jù)多少內(nèi)存?你對(duì)微信又有什么建議或看法?
參考鏈接
https://www.bilibili.com/video/BV1cB4y1b77n?spm_id_from=333.337.search-card.all.click
https://s.weibo.com/weibo?q=%E5%BE%AE%E4%BF%A1%E5%AE%89%E8%A3%85%E5%8C%8511%E5%B9%B4%E8%86%A8%E8%83%80575%E5%80%8D&Refer=realtime_weibo
關(guān)鍵詞: 占用空間 逆向工程 一個(gè)又一個(gè)
責(zé)任編輯:hnmd004
- 全球熱點(diǎn)評(píng)!11 年膨脹 575 倍,微信為2022-07-28
- 環(huán)球新資訊:被拉黑的羅敏,到底“坑害”了2022-07-28
- 世界最資訊丨支付寶再招募MCN,但做過的不2022-07-28
- 全球最資訊丨「一庭一品」“法治之花”在呼2022-07-27
- 熱推薦:寧波軌道交通6號(hào)線一期規(guī)劃選址公2022-07-27
- 【全球報(bào)資訊】集中整治!涉及長春出租房屋2022-07-27
- 環(huán)球觀速訊丨長白山及周邊地區(qū)實(shí)現(xiàn)連續(xù)1002022-07-27
- 環(huán)球微速訊:夕陽正紅踐初心2022-07-27
- 環(huán)球新動(dòng)態(tài):我國加快建設(shè)能源強(qiáng)國保障能源2022-07-27
- 全球快看:美國總統(tǒng)拜登新冠病毒檢測(cè)結(jié)果轉(zhuǎn)2022-07-27
- 當(dāng)前熱門:FF91量產(chǎn)交付時(shí)間被再推遲FF回應(yīng)2022-07-27
- 當(dāng)前快看:中國酒業(yè)協(xié)會(huì)副秘書長劉振國:醬2022-07-27
- 天天視訊!臨渭區(qū)推進(jìn)城市更新提振“精氣神2022-07-27
- 當(dāng)前熱訊:女生假期朋友圈發(fā)自拍被處分,學(xué)2022-07-27
- 訊息:渭南實(shí)現(xiàn)夏糧十八連豐的秘訣——聚焦2022-07-27
- 每日看點(diǎn)!法官送法到田間|桓臺(tái)縣法院法官2022-07-27
- 全球微動(dòng)態(tài)丨上街區(qū)開展民生領(lǐng)域案件查辦“2022-07-27
- 快報(bào):教育部提醒:警惕“野雞大學(xué)”招生詐2022-07-27
- 環(huán)球熱文:這種車載式移動(dòng)設(shè)備犯法!犯罪窩2022-07-27
- 蟬聯(lián)日本的銷量雙料冠軍 森下仁丹守護(hù)你的2022-07-27
- 每日訊息!新聞詳情存量增量兩手抓務(wù)實(shí)聚力2022-07-27
- 焦點(diǎn)快報(bào)!煙臺(tái)黃渤海新區(qū)力爭(zhēng)全年新開產(chǎn)業(yè)2022-07-27
- 全球今熱點(diǎn):「美麗中國網(wǎng)絡(luò)媒體生態(tài)行」水2022-07-27
- 全景求是創(chuàng)新研發(fā)中心:多元化且正規(guī)化的背2022-07-27
- 全球微資訊!融資丨「宴太湖」完成A輪融資2022-07-27
- 天天速讀:為了爭(zhēng)奪年輕人,可口可樂看上了2022-07-27
- 環(huán)球聚焦:融資丨「錢大媽」完成最新一輪融2022-07-27
- 支付行業(yè)競(jìng)爭(zhēng)加劇,B端角逐,支付機(jī)構(gòu)如何2022-07-27
- 新資訊:平?jīng)鐾苿?dòng)國企改革三年行動(dòng)走深走實(shí)2022-07-27
- 全球熱訊:Web3.0還沒焐熱,Web2.5又是什么鬼?2022-07-27