• 八方資訊網(wǎng)歡迎您!
    八方資訊網(wǎng)>科技>正文

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?!

    2021-02-12 04:55:51 來源: 閱讀:-

    不知不覺間 Android 陷入了一個(gè)關(guān)于「后臺(tái)」的怪圈:一邊各大廠商陸續(xù)推出了 12G RAM 的手機(jī),另一邊你剛剛放到后臺(tái)的下載任務(wù)沒有如預(yù)期那樣后臺(tái)掛機(jī)下載,打開微信發(fā)現(xiàn)還得陪啟動(dòng)畫面的孤獨(dú)小人共賞藍(lán)色星球、按照教程辛辛苦苦做了半個(gè)小時(shí)的 Tasker 規(guī)則、卻沒有按照計(jì)劃自動(dòng)執(zhí)行……

    于是一個(gè)耳熟能詳?shù)木渥娱_始在我們腦海中成型——我的后臺(tái)又被「殺」了。

    應(yīng)用開發(fā)者的「控訴」

    如果你第二天早上醒來發(fā)現(xiàn)睡眠追蹤應(yīng)用里的記錄數(shù)據(jù)「一馬平川」,并不是因?yàn)槟恪杆盟馈梗撬咦粉檻?yīng)用根本就沒有正常工作。

    遇到上述問題的人不止你一個(gè),很多人選擇向這些應(yīng)用的開發(fā)者反饋問題,殊不知問題其實(shí)不在應(yīng)用本身。

    Android 平臺(tái)著名睡眠追蹤應(yīng)用 Sleep as Android 的開發(fā)團(tuán)隊(duì) Urbandroid Team 不堪其擾,索性上線了一個(gè)名為「別『殺』我應(yīng)用」的網(wǎng)站,矛頭直指手機(jī)廠商糟糕的后臺(tái)管理機(jī)制。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    Don't kill my app! 網(wǎng)站對(duì) OEM 系統(tǒng)的評(píng)分

    以三星為例,Urbandroid Team 稱,三星的部分機(jī)型在升級(jí)到基于 OneUI 的 Android 9 之后「殺后臺(tái)」現(xiàn)象變得尤為嚴(yán)重,自適應(yīng)電池(Adaptive Battery)機(jī)制相比原生 Android 變得尤為激進(jìn),3 天內(nèi)沒有啟動(dòng)過的應(yīng)用甚至無法從后臺(tái)再次啟動(dòng)。最為糟糕的情況是,如果你安裝了一個(gè)可以自動(dòng)跳過周末的第三方鬧鐘,那這個(gè)鬧鐘應(yīng)用很有可能不會(huì)像系統(tǒng)鬧鐘那樣在下周一早上準(zhǔn)時(shí)響起……

    正如「別『殺』我應(yīng)用」網(wǎng)站上控訴的那樣,擁有類似機(jī)制的還包括華為、一加、小米、華碩等等手機(jī)廠商的定制版 Android 系統(tǒng),它們管理后臺(tái)的方式大同小異,但都秉承著 iOS 上那一套「劃掉就殺掉」的原則——當(dāng)我們把某款應(yīng)用的任務(wù)卡片從多任務(wù)界面劃去,它們也就徹底從手機(jī)后臺(tái)中抹除掉了。

    這里你可能會(huì)問很多問題:

    Android 運(yùn)行內(nèi)存越來越充裕,為什么會(huì)有如此嚴(yán)重的「殺后臺(tái)」現(xiàn)象?

    原生 Android 也采用了一套類似的卡片多任務(wù)交互方式,有什么區(qū)別?

    Android 究竟需不需要借助「一鍵清理」這樣的方式來釋放運(yùn)行內(nèi)存?

    我們得從一些基礎(chǔ)的原理說起。

    Android 的內(nèi)存回收機(jī)制

    在 官方文檔 中,Google 將「不受應(yīng)用自身直接控制的應(yīng)用進(jìn)程生命周期」描述為 Android 最為基礎(chǔ)也最為獨(dú)特的核心特性,這里我們不妨將「應(yīng)用進(jìn)程生命周期」暫時(shí)理解為文章開頭和第一部分所說的「后臺(tái)」或「后臺(tái)進(jìn)程(process)」。

    所以 Android 應(yīng)用的后臺(tái)進(jìn)程去留本應(yīng)是由 Android 系統(tǒng)來決定的。

    當(dāng)可用運(yùn)行內(nèi)存空間不足時(shí),Android 系統(tǒng)會(huì)自行決定對(duì)特定應(yīng)用后臺(tái)進(jìn)程占用的空間進(jìn)行回收釋放,這個(gè)過程中 Android 揮舞著的那把大刀,叫做 LMK(Low Memory Killer)。那 LMK 又是如何判斷哪些應(yīng)用可以被「殺」掉、哪些應(yīng)用又該暫時(shí)放過的呢?

    每個(gè)應(yīng)用都有各種各樣的組成部分,其中特定組件的運(yùn)行狀態(tài)共同組成了一套供 LMK 進(jìn)行內(nèi)存回收的「優(yōu)先級(jí)」參考,包括:前臺(tái)進(jìn)程、可見進(jìn)程、服務(wù)進(jìn)程和緩存進(jìn)程。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    一款應(yīng)用通常會(huì)包含的進(jìn)程類型

    前臺(tái)進(jìn)程、可見進(jìn)程和服務(wù)進(jìn)程往往與我們正在手機(jī)上執(zhí)行的操作直接或間接相關(guān),比如正在前臺(tái)供我們交互和操作的活動(dòng)窗口(Activity)、正在通過廣播接收器(BroadcastReceiver)等待觸發(fā)的 Tasker 規(guī)則、正在后臺(tái)通過 Wi-Fi 網(wǎng)絡(luò)自動(dòng)上傳備份照片的 Google Photos 以及前面提到的有待觸發(fā)的鬧鐘等等。這些進(jìn)程優(yōu)先級(jí)從高到低依次遞減,LMK 一般不會(huì)觸及。

    緩存進(jìn)程則是那些暫時(shí)放在運(yùn)行內(nèi)存中的部分,也是和本文探討話題主要相關(guān)的重點(diǎn)。

    在一個(gè)正常運(yùn)行的(Android)操作系統(tǒng)中,緩存進(jìn)程應(yīng)是內(nèi)存管理機(jī)制唯一需要交互的部分:一個(gè)運(yùn)行良好的 Android 系統(tǒng)通常會(huì)在運(yùn)行內(nèi)存中暫存多個(gè)緩存進(jìn)程以隨時(shí)調(diào)用,提高應(yīng)用間的切換效率,同時(shí)對(duì)那些較為老舊的不活躍進(jìn)程進(jìn)行有計(jì)劃的回收。

    只有在極端情況下,比如 Android 系統(tǒng)在回收掉所有緩存進(jìn)程后發(fā)現(xiàn)空閑內(nèi)存依然不夠用(比如在低內(nèi)存的「老爺機(jī)」上運(yùn)行《崩壞 3》),這時(shí) LMK 才會(huì)根據(jù)優(yōu)先級(jí)繼續(xù)對(duì)服務(wù)進(jìn)程、可見進(jìn)程和前臺(tái)進(jìn)程采取回收策略。而當(dāng)這些我們?cè)谡J褂弥心軌蛑庇^感受到的進(jìn)程都不得不被被回收時(shí),文章開頭提到的微信重載、音樂中斷、下載消失等等現(xiàn)象也就出現(xiàn)了。

    誰動(dòng)了你的后臺(tái)

    在可用內(nèi)存充裕的情況下遭遇「殺后臺(tái)」現(xiàn)象,一方面可能是 LMK 這把「大刀」出了問題(常見于 Android 9 時(shí)期的 Pixel 3 用戶),另一方面則有可能是其它規(guī)則額外干預(yù)了 Android 系統(tǒng)正常的內(nèi)存回收機(jī)制。

    這里提到的「其它規(guī)則」主要有兩種形式,一種類似部分華為設(shè)備上預(yù)裝的「省電精靈」,它會(huì)將所有沒有加入后臺(tái)白名單中的應(yīng)用后臺(tái)統(tǒng)統(tǒng)清除,另一種則依托于 Google 推出的后臺(tái)檢查、后臺(tái)限制和自適應(yīng)電池等功能進(jìn)行「魔改」,讓這些功能的實(shí)際效果遠(yuǎn)超預(yù)期,甚至達(dá)到意料之外的負(fù)面效果。

    根據(jù) Don't kill my app! 的統(tǒng)計(jì),第二種后臺(tái)干預(yù)機(jī)制在三星、一加和早期的諾基亞機(jī)型中常見,這里廠商們通常會(huì)用到一種類似「白名單」的方法來進(jìn)行過濾。

    以三星手機(jī)基于 Android 9 的 One UI 為例,除了微信、QQ 等國內(nèi)常見應(yīng)用,One UI 默認(rèn)會(huì)為所有第三方應(yīng)用關(guān)閉「允許后臺(tái)活動(dòng)」這一選項(xiàng),同時(shí)開啟「優(yōu)化電池使用量」這一功能。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    One UI 的后臺(tái)管理

    部分搭載氫 OS 的一加機(jī)型則將上面提到的應(yīng)用進(jìn)程進(jìn)行拆分,除了基于原生 Android 的后臺(tái)限制、電池優(yōu)化,還有一套名為「自啟動(dòng)管理」的設(shè)置來對(duì)應(yīng)用的自啟動(dòng)進(jìn)行管理以及一套名為「深度優(yōu)化」的電池優(yōu)化機(jī)制,后者會(huì)造成很多智能手表、手環(huán)設(shè)備在一段時(shí)間后丟失與手機(jī)的藍(lán)牙連接,最終導(dǎo)致睡眠追蹤、運(yùn)動(dòng)記錄等等功能的失效。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    氫 OS 的自啟動(dòng)管理

    問題在于上述功能埋藏較深,一般用戶在安裝應(yīng)用后往往不會(huì)第一時(shí)間前往設(shè)置,一加的氫 OS 更是以系統(tǒng)更新之后自動(dòng)重置部分用戶設(shè)置聞名,那些需要在后臺(tái)正常工作的應(yīng)用,因此也被都被直接扔進(jìn)了原生 Android 中用來限制「毒瘤」應(yīng)用的「黑箱」里。

    換句話說,國內(nèi)大部分定制 ROM 在后臺(tái)管理這件事情上都選擇采用一種「寧肯錯(cuò)殺一千不肯放過一個(gè)」的做法。

    關(guān)聯(lián)閱讀:控制頻繁啟動(dòng)的「毒瘤」,Android 9.0 用這些方法讓你的手機(jī)更省電

    多任務(wù)管理還是后臺(tái)管理?

    從某種程度上來說,國產(chǎn)手機(jī)廠商在 Android 后臺(tái)管理上的做法雖然偏激,但它們都是國內(nèi)特殊生態(tài)下的產(chǎn)物 。

    一方面,盡管 Google 為 Android 設(shè)想了一套非常理想化的應(yīng)用運(yùn)行與后臺(tái)管理機(jī)制,但大多數(shù)于原生 Android 中行之有效的后臺(tái)管理機(jī)制在國內(nèi)似乎都會(huì)變成「雞肋」。

    如果 Google 有 100 種提升 Android 應(yīng)用運(yùn)行效率,保證后臺(tái)綠色、純凈的方法,國內(nèi)毒瘤應(yīng)用開發(fā)商就有 101 種繞過這些限制的方法。

    借助共用的第三方推送服務(wù)實(shí)現(xiàn)鏈?zhǔn)絾拘选⒔柚该鞯膽腋〈氨WC后臺(tái)存活、通過不斷獲取定位的方式來避免進(jìn)程被系統(tǒng)回收……不管是出于實(shí)現(xiàn)消息推送這樣單純的目的還是為了不斷喚醒用戶設(shè)備以實(shí)現(xiàn) KPI 目標(biāo)這種下作的行為,在國內(nèi) Android 生態(tài)中均有出現(xiàn)。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    綠色守護(hù)專門針對(duì)鏈?zhǔn)絾拘淹瞥龅膯拘炎粉櫣δ?/p>

    雖然國內(nèi)外的具體環(huán)境有所不同,但這類設(shè)計(jì)不規(guī)范的 Android 應(yīng)用帶來的問題卻是一樣的,這類應(yīng)用放在后臺(tái)不僅不會(huì)為我們帶來便利,反而還會(huì)因?yàn)轭l繁喚醒設(shè)備帶來不小的耗電問題。待機(jī)續(xù)航問題作為懸在國產(chǎn) Android 機(jī)頭頂?shù)膸装牙麆χ唬謾C(jī)廠商不得不各自從系統(tǒng)層面推出自家的應(yīng)對(duì)機(jī)制——這就有了上面提到的各種偏激式的后臺(tái)管理方法。

    另一方面,這里還涉及到一個(gè)非常重要的概念區(qū)分:多任務(wù)管理和后臺(tái)管理究竟是不是一回事?

    國內(nèi) Android 生態(tài)由于早期受 iOS 影響較深,無論是開發(fā)商還是用戶都更傾向于把「將應(yīng)用卡片從多任務(wù)列表里劃掉」的行為理解為清除對(duì)應(yīng)用的后臺(tái)進(jìn)程。在上面提到的特殊生態(tài)環(huán)境的影響之下,這里被清除的后臺(tái)進(jìn)程往往又包括那些用于保證應(yīng)用后臺(tái)運(yùn)行的可見進(jìn)程、服務(wù)進(jìn)程乃至前臺(tái)進(jìn)程在內(nèi)。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    iOS 的任務(wù)管理方式 | 圖:Javi P é rez

    在酷安應(yīng)用市場,甚至還有得以在原生 Android 上實(shí)現(xiàn)類似「劃掉卡片即停止運(yùn)行」效果的應(yīng)用,iOS 的后臺(tái)管理理念在國內(nèi)有多么深入人心可見一斑。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    但這種后臺(tái)管理理念卻與 Google 對(duì) Android 的多任務(wù)管理設(shè)計(jì)方式相悖。Google 一直以來都將 Android 手機(jī)上呼出任務(wù)卡片的那個(gè)界面叫做 Recents,最近幾個(gè)版本的 Android 系統(tǒng)更是將其本地化為「概覽」。結(jié)合 Google 在 Android 9 和 Android 10 手勢交互上的變革,注重多任務(wù)管理而非后臺(tái)管理的意圖也越發(fā)明顯。

    Android 手機(jī)運(yùn)存越來越大,為什么后臺(tái)應(yīng)用還是會(huì)被殺?

    當(dāng)最近運(yùn)行的應(yīng)用以一張張卡片的形式呈現(xiàn)在我們面前時(shí),Google 想要呈現(xiàn)的是一個(gè)能夠讓我們?cè)诓煌蝿?wù)間快速切換的多任務(wù)交互,而在理想狀態(tài)下,后臺(tái)管理則是交由系統(tǒng)處理、完全不應(yīng)被用戶感知的。

    至于如何理性看待 Android 平臺(tái)的后臺(tái)管理,這里我們不妨借用綠色守護(hù)開發(fā)者 @OasisFeng 在「Android 多任務(wù)界面的劃除交互」這個(gè)話題上的 答疑 來回答這個(gè)問題:

    Android 從 8.0 開始大幅度調(diào)整了應(yīng)用的后臺(tái)控制策略……原則上,只要適配了 Android 8+ 的應(yīng)用,就不能再持續(xù)在后臺(tái)占據(jù)內(nèi)存……至于耗電,這是一個(gè)需要平衡的取舍,你如果的確需要某個(gè)應(yīng)用的后臺(tái)機(jī)制,那就得讓它略微耗一點(diǎn)電(不能既要馬兒跑得快,又讓馬兒不吃草吧)。如果你壓根不需要它的后臺(tái)機(jī)制,或者它的后臺(tái)耗電太過分了,那么你可以在應(yīng)用設(shè)置中限制應(yīng)用的后臺(tái)能力(非原生系統(tǒng)可能不一定有這個(gè)選項(xiàng))。總之,你并不需要「殺應(yīng)用」,也沒必要為這些破事兒操碎心。

    這種關(guān)注多任務(wù)管理、將后臺(tái)管理主動(dòng)權(quán)交還給系統(tǒng)的理念,隨著本月初 Android 10 的正式放出還將得到進(jìn)一步強(qiáng)化—— Google 將不再允許預(yù)裝 Android 10 的手機(jī)通過清除多任務(wù)卡片的方式來終止后臺(tái)進(jìn)程,這個(gè)要求同樣也被加入了 Google 的 CTS 認(rèn)證流程。

    換句話說,今后絕大部分需要在海外市場搭載 Google 服務(wù)上市的手機(jī)都必須滿足這個(gè)要求。

    小結(jié)

    就在上周三(9 月 25 日),醞釀已久的安卓統(tǒng)一推送聯(lián)盟正式宣布收到華為、OPPO、一加和 realme 四家公司的進(jìn)度確認(rèn),雖然 Google 的缺席也讓國內(nèi) Android 生態(tài)也變得異常復(fù)雜,但國內(nèi) Android 設(shè)備也能用上的統(tǒng)一推送服務(wù)也算是終于邁出了具有實(shí)際意義的第一步。

    只是距離轉(zhuǎn)變?nèi)藗儗?duì) Android「殺后臺(tái)」這件事的看法依然還有很長的路要走。事實(shí)上,國內(nèi)早在四五年前就出現(xiàn)過一次對(duì)「Android 需不需要『殺后臺(tái)』」問題的科普,但收效甚微,盲從 iOS 設(shè)計(jì)風(fēng)格和交互邏輯國內(nèi) Android 廠商要負(fù)很大一部分責(zé)任。

    希望靠譜、省電的統(tǒng)一推送系統(tǒng)能成為改觀的第一步,也希望 @OasisFeng 口中那個(gè)甚至可以跨越設(shè)備重啟恢復(fù)「后臺(tái)狀態(tài)」的理想化生態(tài)早日到來——至于當(dāng)下,我們依然只能見招拆招,遇到應(yīng)用無法正常執(zhí)行后臺(tái)任務(wù)時(shí)打開手機(jī)設(shè)置仔細(xì)翻找、設(shè)置,把它們?nèi)舆M(jìn)白名單或是給它們的后臺(tái)卡片套個(gè)「鎖」……

    下載、安裝了一款非白名單應(yīng)用,該如何確保它不被「殺后臺(tái)」呢?歡迎在評(píng)論區(qū)把你的設(shè)置方法分享給大家。

    本文為企業(yè)推廣,本網(wǎng)站不做任何建議,僅提供參考,作為信息展示!

    推薦閱讀:天津都市網(wǎng)

    網(wǎng)友評(píng)論
    請(qǐng)登錄后進(jìn)行評(píng)論| 0條評(píng)論

    請(qǐng)文明發(fā)言,還可以輸入140

    您的評(píng)論已經(jīng)發(fā)表成功,請(qǐng)等候?qū)徍?/p>

    小提示:您要為您發(fā)表的言論后果負(fù)責(zé),請(qǐng)各位遵守法紀(jì)注意語言文明

    回到首頁 回到頂部
    八方資訊網(wǎng) 關(guān)于我們| 聯(lián)系我們| 招聘信息| XML地圖| 網(wǎng)站地圖TXT
    免責(zé)聲明:八方資訊網(wǎng)所有文字、圖片、視頻、音頻等資料均來自互聯(lián)網(wǎng),不代表本站贊同其觀點(diǎn),本站亦不為其版權(quán)負(fù)責(zé)。相關(guān)作品的原創(chuàng)性、文中陳述文字以及內(nèi)容數(shù)據(jù)龐雜本站無法一一核實(shí),如果您發(fā)現(xiàn)本網(wǎng)站上有侵犯您的合法權(quán)益的內(nèi)容,請(qǐng)聯(lián)系我們,本網(wǎng)站將立即予以刪除!
    Copyright © 2012-2019 http://www.quan28.cn, All rights reserved.
    主站蜘蛛池模板: 国产精品久久久久影院嫩草 | 亚洲欧美日韩国产精品一区二区| 熟妇无码乱子成人精品| 国产精品激情综合久久 | 久久久久99精品成人片三人毛片| 97久久综合精品久久久综合| 中文字幕一精品亚洲无线一区| 国产精品自在线拍国产第一页| 久久精品国产99国产精偷| 精品国精品无码自拍自在线| 在线精品亚洲一区二区| 久久99精品国产麻豆婷婷| 亚洲精品高清国产一久久| 97精品伊人久久大香线蕉app| 亚洲第一极品精品无码久久| 香港三级精品三级在线专区 | 精品亚洲综合在线第一区| 国产成人精品高清在线观看93 | 色花堂国产精品第一页| 丰满人妻熟妇乱又仑精品| 久久夜色精品国产噜噜亚洲AV| 亚洲一区精品伊人久久伊人| 日韩精品无码Av一区二区| 久久夜色撩人精品国产| 精品亚洲一区二区三区在线观看| 国产成人精品免高潮在线观看 | 国产精品美女免费视频观看| 亚洲国产精品久久久久网站| 国内精品在线视频| 久久精品国产久精国产| 国产精品素人搭讪在线播放| 3D动漫精品一区二区三区| 99re6在线视频精品免费| 国产精品久久久久久吹潮| 乱精品一区字幕二区| 嫩草伊人久久精品少妇AV| 国产精品熟女高潮视频| 91精品视频网站| 国产精品91视频| 国产成人精品综合久久久| 久久久精品日本一区二区三区|