今天小編分享的科技經驗:遏制“殺後台”要搞定手機廠商,谷歌抓住了關鍵,歡迎閲讀。
目前正在測試階段的 Android 14 又有新消息引發了外界的關注,不過這次并非功能更新,而是一個新的計劃。近日有消息顯示,三星與谷歌方面已達成一項合作,将在 Android 14 中修復 " 前台服務和後台工作 " 不協調的問題,從而在 OneUI 6.0 中減少 " 殺後台 " 的頻率。
對此,谷歌方面在相關聲明中透露,為了解決這些一致性挑戰,将與 Android 硬體制造商建立更為深入的合作夥伴關系,以幫助确保在整個生态系統中,用于後台工作的 API 實現可預測、且一致的支持。三星将成為加入該計劃的首個合作夥伴,未來在 OneUI 6.0 上運行的應用,只要根據 Android 的全新前台服務 API 政策進行開發,就能确保前台服務按預期工作。
簡單來説,谷歌和三星的此次合作旨在解決 Android 機型 " 殺後台 " 的現象。沒錯,從 Android 11 喊到了即将到來的 Android 14," 殺後台 " 的治理其實一直都沒能完成。而此次谷歌與三星達成合作,在某種意義上也代表谷歌此前試圖用技術手段來解決這個問題的失敗。
為什麼會這麼説呢?其實這要從 " 殺後台 " 這一現象誕生的原因説起了。
在 Android 生态中,APP 互相喚醒、強制駐留後台無疑是一大毒瘤,這也是 Android 機型的内存比 iPhone 更大的導火索之一。如今 Android 使用的是 " 真後台 " 機制,從設計上追求的是充分利用物理内存,并将需要用到的數據從閃存讀入到内存,再借助内存的更高速度,确保系統數據的訪問性能,即可用内存越小,内存的利用率就更高、緩存中的數據就越多,數據訪問的命中率就越高,系統運行速度也就随之越快。
為了确保系統對内存的充分利用,Android 設計了一個名為 Low Memory Killer 的内存回收機制,也就是當系統發現内存低于警戒線時,通過對進程的重要性進行評估,來決定關閉進程釋放内存以确保系統的流暢度。但問題是,應用往往為了 " 保活 " 可謂是各出奇招,會用鏈式喚醒、随意緩存、強制自啓等方式扎根在後台,并讓這一内存回收機制失效。所以這就是為什麼,當時只有 2G 内存的 iPhone 會比 6G 内存的 Android 旗艦機流暢,以及 Android 越用越卡的原因。
為了遏制這一問題,各大手機廠商都在自家的 ROM 裏用上了可謂是更 " 變态 " 的策略,用近乎一刀切的方式讓大量駐留後台的應用被徹底關閉,而這反過來又讓開發者怨聲載道。甚至手機廠商這樣 " 殺後台 " 的策略讓谷歌都坐不住了,此前在 2021 年夏季,面對着開發者對于手機廠商定制系統頻繁 " 殺後台 " 的問題,谷歌啓動了針對第三方定制系統 " 殺後台 " 的情況調查。
在一年之後的 I/O 開發者大會 2022 上,Android 13 的 AOSP 源碼中就添加了對 MGLRU(多頁面回收策略)的支持,借助這一策略,在 75% 内存占用時也減少了 85% 的後台誤殺情況。然而谷歌對于 MGLRU 的效果持謹慎态度,并表示依然在努力從多個角度來嘗試解決這個問題。然而很遺憾的是,最終效果并不盡如人意," 殺後台 " 現象近年來依舊有增無減。
雖然谷歌很努力,但手機廠商不買賬的原因其實很簡單,因為雙方的利益出現了分歧。由于手機的螢幕相對更小,就導致用户同一時間最多只會使用有限的幾個應用,而 Android 系統的特性又決定了後台駐留的應用越少、留給前台應用的資源就會越多,使用就越流暢。但手機廠商 " 殺後台 " 的策略盡管會讓用户體驗更好,卻完全漠視了開發者的利益。
APP 為何要千方百計地駐留在 Android 系統的後台,無疑是開發者為了 " 保活 "、為了确保 APP 能随時向用户推送信息,所以頻繁 " 殺後台 " 就會讓開發者很難受。
當年,蘋果走的是自己解決一切的全封閉模式,并靠着喬布斯作為產品經理的超強能力将 iPhone 帶上了神壇。而谷歌的 Android 走的則是開放路線,并用開放手機聯盟來籠絡盟友,用恩威并施的手段共同做大蛋糕。因此在 Android 社區裏,開發者是一股重要的力量,也導致谷歌需要不斷籠絡他們。
但手機廠商并不需要為開發者負責、只需争取用户就好,而且有白名單機制的存在,諸如微信、淘寶、抖音等真正的利益相關方,早已被保護了起來。可谷歌方面并不直接面對用户、卻需要安撫開發者,所以利益的分歧也造就了在 " 殺後台 " 一事上,手機廠商與谷歌雙方只能自説自話。要知道,Android 可從來沒有規定第三方定制 ROM 必須照搬谷歌的代碼。
這就是直至 Android 13 也沒能解決 " 殺後台 " 這個問題的原因,盡管 MGLRU 的設計确實很優秀,但奈何手機廠商不買賬的情況下,谷歌這個策略政策就推行不下去。那麼問題出在哪裏了呢?其實是出在手機廠商與開發者之間不存在信任的土壤。
由于歷史原因,部分開發者的肆意妄為确實在客觀上導致了 " 殺後台 " 的出現,也使得手機廠商不敢相信開發者。畢竟在當下這個智能手機已經進入存量市場的環境下,已經容不得手機廠商心慈手軟,萬一有開發者 " 故技重施 ",讓用户的體驗下降,損失可就大了。
因此谷歌現在拉上三星,就是在給其他手機廠商做一個示範,如果真的能夠讓用于後台工作的 API 實現可預測、且一致的支持,那麼手機廠商和開發者之間的信任就有重建的可能," 殺後台 " 現象才能從根本上得到解決。否則的話,谷歌單純從技術層面做再多的優化,或許也是無濟于事的。
【本文圖片來自網絡】