“刪除”應用版本號是Android的無奈,也是進步
如果你最近有關注我們三易生活的相關內容可能會記得,近來我們接連對一些罕見機型或稀有移動平臺進行了“考古”。
其實這類文章的準備工作基本都挺繁瑣,不過比起尋找那些罕見的老手機、老平板,真正讓我們感到頭大的,往往是到手後的整備過程。
畢竟,這些老機型的硬體也好、系統也罷,普遍都過於“古老”,因此也就導致其所內建的應用商店往往都已不能使用。於是,我們通常需要先用一臺其他裝置訪問一些靠譜的、存有大量古早APK檔案的資源站,找到老機型能用的軟體、並將其下載,然後再將APK檔案傳輸到這些機型上嘗試安裝和執行。
很顯然,在這個過程中,如何判斷應用“能否相容”其實是最困難的一個環節。事實上,很多時候我們都不得不提前準備多個版本,然後再一個一個地去“試錯”。正因如此,當日前我們注意到谷歌開始在官方應用商店裡不再顯示應用的版本號資訊時,內心裡其實是毫無波瀾,甚至有一種“這天終於來了”的感覺。
-
為什麼?因為應用“版本號”對於使用者來說本無太大作用
在解釋谷歌此舉的用意前,我們首先想要讓大家來解答一個“簡單”的問題。下面這四個不同版本的Google Play Service應用,哪一個才能用於華碩Zenfone Zoom這款機型上?
A. Google Play Service 22.09.20.040300-434869283
B. Google Play Service 22.12.25.190400-439420056
C. Google Play Service 22.18.20.040700-451484765
D. Google Play Service 22.24.13.100400-455379025
怎麼樣,是不是感覺光看這幾串數字眼睛就已經花了?但如果有著豐富的“玩機經驗”,你可能會知道,Zenfone Zoom是一款基於Intel Atom平臺的x86架構機型,同時其最後一個官方系統版本是Android 6.0。而在上述這四個應用的版本號裡,“040700”欄位中的前三位數字“040”,所指的是相容Android 6.0系統,而後三位數字“700”則正是為x86處理器適配。因此,正確答案應該選C。
但問題在於,一方面能看懂這種“軟體版本號”隱藏資訊的人,本就少之又少。
很多軟體的完整版本號,對於大多數使用者來說其實都如同天書
另一方面,對於絕大多數朋友而言,在通過手機內建應用商店更新軟體(而不是像我們這樣,辛辛苦苦去資源站找APK下載)時,應用商店本就會自動識別硬體資訊、系統版本,並自動推送最相容的應用版本,所以大部分人本來就完全沒有必要去了解和記住Android應用版本號裡的各種門道。
-
在最新的Android生態下,軟體版本已經失去了意義
當然,Android軟體的“版本號”如今不只是對使用者而言已無意義,哪怕是對於開發者和谷歌來說,也確實到了該與它說再見的時刻。
為什麼這麼講?首先大家都知道,Android生態最大的短板就在於裝置的“碎片化”。即便不算那些徹底過時的老機型,目前也有著不下十種不同的主流SoC方案,至少三四個不同的常見系統版本,還有不知道多少種各自不同的螢幕解析度和長寬比。
這款常用應用,就為不同Android機型硬體匹配了多個版本
如何才能確保對以上所有這些裝置的完美相容呢?以前行業中常見的辦法有兩種。一種就如同上圖所舉的這個例子一樣,針對每一個不同的硬體平臺、系統版本,甚至是每一個不同的螢幕解析度都單獨編寫一個版本。另一種辦法則是將所有不同平臺、不同系統版本,乃至不同解析度的素材和程式碼全部打包成一個安裝包,由程式在安裝、執行時自動適配。
很顯然,第一種辦法能讓應用安裝包更小、下載和安裝速度更快,但缺點是開發者自己很累。而第二種辦法則相反,開發者可以省事,但消費者(使用者)就得多耗費無用的流量和儲存空間,來容納那些他(這臺裝置)所不需要的程式碼。
所以其實自2021年8月開始,谷歌就已經在自己的應用商店裡力推新的Android App Bundles(.AAB)安裝格式,用以取代此前的APK程式包。在這個新的安裝格式下,開發者們嚮應用商店上傳應用時,不再需要針對每一個不同平臺都上傳一個完整的APK安裝包,更不用把所有程式碼都打成一個“大包”,取而代之的是可以直接上傳針對不同硬體、不同系統版本,乃至不同解析度的介面程式碼“模組”。
AAB格式應用的語言、介面、底層架構程式碼等,都是模組化的
等到消費者從Google Play Store下載應用時,應用商店就會自動根據使用者的機型、系統情況,挑選出最佳的“程式碼模組”進行即時整合。如此一來,既能確保每臺裝置下載到的都是最相容自身的應用程式碼(版本),又能節約流量和儲存空間。
只不過這同時也意味著,一方面開發者實際上不再需要維護“整個軟體”,每次更新軟體功能時只要上傳特定的、被更新過的功能模組就行。另一方面,不同消費者使用不同的裝置,在應用商店裡下載到的軟體本身,就會存在著各種細微上的差異。既然每個人下到的軟體可能都不一樣,再糾結“版本號”自然就已毫無意義。而且更準確地說,在這種情況下,軟體本身其實也壓根就不再需要有“版本”的概念了。
-
“消滅版本號”不見得是一種進步,但確實更適合市場
請注意,前文中我們所提及、所有關於目前移動應用“版本號”消失的事實和背後的技術理由,其實都有一個共同的大前提,那就是在當前由谷歌所引領的Android生態下。
谷歌輸入法此前的APP資訊介面
谷歌輸入法現在的APP資訊介面,可以看到冗長的版本號已不顯示了
為什麼要強調這一點?因為除了Android手機外,目前還沒有任何一個其他的軟硬體生態產生過如此強烈的,需要“消滅”軟體版本號的需求。蘋果的iOS、iPadOS和macOS生態,幾乎未曾遭遇過嚴重的“碎片化”;甚至就連PC上的Windows系統,也很少有聽說因為系統或硬體迭代,老款軟體突然就變得不能用、非得要專門進行適配更新的例子。
那麼,為什麼Android生態就格外“特殊”,非得要依靠Android App Bundles、靠“消滅”軟體版本號的做法,才能確保效能與相容性呢?
其實說白了,一方面這是源自Android的開源血統。谷歌畢竟不像蘋果那樣,是依靠自研硬體來撐起系統生態,既然Android開放給了無數硬體廠商,自然就會面臨比iOS、比iPadOS複雜得多的硬體適配問題。
另一方面,與“老成持重”、每次大版本更新都必需以穩定相容為優先的PC作業系統相比,Android所面臨的、快節奏的手機市場,又決定了它每一代系統之間必須要有足夠大的差異,必須要讓消費者“一看、一用”就能感受到變化和進步。因此每次大版本Android系統的更新,往往都會帶來底層設計上的較大改動,這就意味著大量應用都必須要重新進行鍼對性優化,才能發揮出最好的能效甚至是相容性。
當然,最為重要的是,通過新的軟體封包和部署技術、通過“淡化”版本號的概念,谷歌實際上變相封堵了那些第三方APK資源站。如此一來,使用者自然就只能更加倚重手機自帶的應用商店,而這顯然是整個Android生態中絕大多數參與者所希望看到的事情。
【本文圖片來自網路】
推薦閱讀:
早期德儀的“異構大小核”設計雖然先進,但最終失敗並不意外。
日前公佈的這一判例,或將改變遊戲行業的這個慣例。
- 影片|摺疊屏旗艦還能怎麼“卷”?vivo X Fold 首發評測
- 拼多多海外電商平臺Temu上線,但砍一刀卻沒了
- 會洩露隱私的瀏覽器,再次暴露了PC市場的無奈
- 攜手Discovery,“發哥”要在影像方面自證實力
- 騰訊ROG遊戲手機6天璣至尊版首發評測:為玩家而生的聯發科旗艦機
- 18歲的OPPO,還有這些你可能不知道的低調往事
- 測過諸多老機型後,我們發現了高通成功的奧祕
- 蘋果全系秋季新品搶先玩:乾貨滿滿,全是細節
- 從實際體驗出發,我們該如何“用好”智慧手錶
- 元宇宙也有地產泡沫?炒房客這下血本無歸了
- “雙向、對等、不越界”,揭祕OPPO的互聯未來
- 在Ryzen 7000身上,我們看到了這樣的未來
- 設計超前卻打不了遊戲?一款“變種機皇”的悲劇
- 給已完全落伍的老機型更新系統,還有必要嗎
- iQOO Z6首發評測:遊戲·影像·快充“小鋼炮”
- Redmi K50至尊版評測:全方位進化,不負“至尊”之名
- “刪除”應用版本號是Android的無奈,也是進步
- 一款罕見的“異構四核”處理器,見證了王者的隕落
- 需要訂閱才能用的車輛功能,會讓汽車黑客成為趨勢嗎
- 從400萬到2億,智慧手機的“多畫素合一”發展史