為何APP越更新 所佔的手機內存會越大

有用戶發現,現在的APP的體積越來越大了。動不動上百MB,甚至幾百MB。新買的手機裝幾個APP,存儲空間就會被佔用大半。而且現在的APP更新頻繁,一個新版本更新之後,甚至根本看不出來修改了哪裏。

這時候你也許會發現──為什麼最常用的APP越做越大了??

以微信為例,2011年發布的微信2.0版是第一個加上語音功能的微信,但當時它的Android版安裝包僅有1.4MB。六年過去,現在它的Android版本安裝包體積已經高達44MB,增大30倍!而在iOS平台上更加嚇人 ——149MB的安裝包體積甚至已經在一些手遊之上了。

1. 功能增加是主因

這是最容易想到的——新的功能必然會需要更多的代碼和資源來實現,應用因此變大再正常不過。

2011年的時候,微信不過只是「加上語音功能的聊天軟體」;如今它卻已經成為具備社交、視頻、購物、遊戲、運動、新聞、郵件等諸多功能的集合體,甚至還有運行在其上的
「小程式」……這樣一來,體積能不大嗎?

2. 設備規格促進程式進化

除了功能增加,硬體設備本身的規格改變也會逼程式師對程式作出較大的改動。

最典型的例子是iPhone和 iPad——最早的幾代iPhone熒幕解析度是480×320,到了iPhone 4,熒幕解析度一下子提高四倍(960×640)。由於蘋果強制要求APP適配新的解析度 ——這意味.,用於iPhone 4之後的APP中,界面素材的部分要佔用至少原來4倍大的存儲空間。那麼iPadPro熒幕解析度高達 2732 ×2048,對應的APP僅在界面部分的圖片資源比初代iPhone對應APP要大36倍……

當然,除了單純的因為界面解析度提升而導致的空間佔用增大外,由於手機性能大幅增強,過去我們不曾想像的諸多高畫質手遊、大型計算程式也開始出現在手機上。它們畫面複雜、功能先進、用戶體驗極為強大,負面作用就是超大的安裝包。2816QC006_.jpg3. 「碎片化」不容忽視

實際上,由於新老設備會在使用者群中共存很長很長的時間,對於開發者來說,要想保證自家的APP在各種不同規格的設備上都能正常工作,只好針對每種不同解析度、硬體平台的手機分別寫不同的優化代碼。

這種情況下,APP在發行的時候出現問題了──理想的做法是給每個不同解析度和硬體平台的設備分別出一個分支版本,但問題是──不是所有的應用商店都足夠「聰明」啊!

雖然一般認為這種硬體上的「碎片化」導致的軟體臃腫現象只會出現在Android系統設備上。事實上,蘋果近兩年來持續改變新iPhone/iPad的熒幕解析度,iOS設備也已經有了碎片化的跡象……

4. 富裕的極客開發者

相信看到這裏的朋友,一定會對這條原因有點詫異 ——開發者有錢,和程式本身的臃腫有什麼關係麼?

實際上還真有:根源來自開發者本身在編寫應用時所使用的調試設備(通俗地來說,就是程式師用來測試已經寫好的程式時使用的手機、平板、電腦)。

因為開發者們長期接觸到業界最新的技術、開發文檔、程式設計思想;他們也有足夠的財力購買剛推出的最新最強的手機、平板以便進行針對性的優化。

試想,當你已習慣了電腦.好幾TB的固態硬體陣列,所用的手機最少也有64GB或者128GB的存儲空間 ——你會覺得這是理所當然的,它就是未來的技術發展方向,所以只要自己寫出的應用可以適配這些「旗艦機」就好。

這種想法並沒有什麼惡意,也確實符合整個業界可持續發展的利益 ——但無形中,這就把那些生活拮据、或是自己沒有能力、動力更新硬體設備的消費者排除在外了。

5. 努力減小APP體積

目前,其實很多的開發商都注意到APP體積越來越大這個問題,一般開發期間都會做精簡。比如壓縮圖片,刪除無用的代碼,優化代碼結構等等。甚至使用新的圖片類型,發布不同版本針對不同用戶等等。

最後,科技在不斷進步,你可能更需要的是一張外置記憶卡了。



發表迴響

%d 位部落客按了讚: