乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      為什么 12G 內(nèi)存的 Android 手機(jī),依舊會(huì)被殺后臺(tái)

       alayavijnana 2019-10-08
      不知不覺(jué)間 Android 陷入了一個(gè)關(guān)于「后臺(tái)」的怪圈:一邊各大廠(chǎng)商陸續(xù)推出了 12G RAM 的手機(jī),另一邊你剛剛放到后臺(tái)的下載任務(wù)沒(méi)有如預(yù)期那樣后臺(tái)掛機(jī)下載,打開(kāi)微信發(fā)現(xiàn)還得陪啟動(dòng)畫(huà)面的孤獨(dú)小人共賞藍(lán)色星球,按照教程辛辛苦苦做了半個(gè)小時(shí)的 Tasker 規(guī)則、卻沒(méi)有按照計(jì)劃自動(dòng)執(zhí)行……
      于是一個(gè)耳熟能詳?shù)木渥娱_(kāi)始在我們腦海中成型——我的后臺(tái)又被「殺」了。

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

      如果你第二天早上醒來(lái)發(fā)現(xiàn)睡眠追蹤應(yīng)用里的記錄數(shù)據(jù)「一馬平川」,并不是因?yàn)槟恪杆盟馈?,而是睡眠追蹤?yīng)用根本就沒(méi)有正常工作。
      遇到上述問(wèn)題的人不止你一個(gè),很多人選擇向這些應(yīng)用的開(kāi)發(fā)者反饋問(wèn)題,殊不知問(wèn)題其實(shí)不在應(yīng)用本身。
      Android 平臺(tái)著名睡眠追蹤應(yīng)用 Sleep as Android 的開(kāi)發(fā)團(tuán)隊(duì) Urbandroid Team 不堪其擾,索性上線(xiàn)了一個(gè)名為「別『殺』我應(yīng)用」的網(wǎng)站,矛頭直指手機(jī)廠(chǎng)商糟糕的后臺(tái)管理機(jī)制。
      Don't kill my app! 網(wǎng)站對(duì) OEM 系統(tǒng)的評(píng)分
      以三星為例,Urbandroid Team 稱(chēng),三星的部分機(jī)型在升級(jí)到基于 Android 9 的 One UI 后「殺后臺(tái)」現(xiàn)象變得尤為嚴(yán)重,自適應(yīng)電池(Adaptive Battery)機(jī)制相比原生 Android 變得尤為激進(jìn),3 天內(nèi)沒(méi)有啟動(dòng)過(guò)的應(yīng)用甚至無(wú)法從后臺(tái)再次啟動(dòng)。最為糟糕的情況是,如果你安裝了一個(gè)可以自動(dòng)跳過(guò)周末的第三方鬧鐘,那這個(gè)鬧鐘應(yīng)用很有可能不會(huì)像系統(tǒng)鬧鐘那樣在下周一早上準(zhǔn)時(shí)響起……
      正如「別『殺』我應(yīng)用」網(wǎng)站上控訴的那樣,擁有類(lèi)似機(jī)制的還包括華為、一加、小米、華碩等等手機(jī)廠(chǎng)商的定制版 Android 系統(tǒng),它們管理后臺(tái)的方式大同小異,但都秉承著 iOS 上那一套「劃掉就殺掉」的原則——當(dāng)我們把某款應(yīng)用的任務(wù)卡片從多任務(wù)界面劃去,它們也就徹底從手機(jī)后臺(tái)中抹除掉了。
      這里你可能會(huì)問(wèn)很多問(wèn)題:
      • Android 運(yùn)行內(nèi)存越來(lái)越充裕,為什么會(huì)有如此嚴(yán)重的「殺后臺(tái)」現(xiàn)象?
      • 原生 Android 也采用了一套類(lèi)似的卡片多任務(wù)交互方式,有什么區(qū)別?
      • Android 究竟需不需要借助「一鍵清理」這樣的方式來(lái)釋放運(yùn)行內(nèi)存?
      我們得從一些基礎(chǔ)的原理說(shuō)起。

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

      官方文檔中,Google 將「不受應(yīng)用自身直接控制的應(yīng)用進(jìn)程生命周期」描述為 Android 最為基礎(chǔ)也最為獨(dú)特的核心特性,這里我們不妨將「應(yīng)用進(jìn)程生命周期」暫時(shí)理解為文章開(kāi)頭和第一部分所說(shuō)的「后臺(tái)」或「后臺(tái)進(jìn)程(process)」。
      所以 Android 應(yīng)用的后臺(tái)進(jìn)程去留本應(yīng)是由 Android 系統(tǒng)來(lái)決定的
      當(dāng)可用運(yùn)行內(nèi)存空間不足時(shí),Android 系統(tǒng)會(huì)自行決定對(duì)特定應(yīng)用后臺(tái)進(jìn)程占用的空間進(jìn)行回收釋放,這個(gè)過(guò)程中 Android 揮舞著的那把大刀,叫做 LMK(Low Memory Killer)。那 LMK 又是如何判斷哪些應(yīng)用可以被「殺」掉、哪些應(yīng)用又該暫時(shí)放過(guò)的呢?
      每個(gè)應(yīng)用都有各種各樣的組成部分,其中特定組件的運(yùn)行狀態(tài)共同組成了一套供 LMK 進(jìn)行內(nèi)存回收的「優(yōu)先級(jí)」參考,包括:前臺(tái)進(jìn)程、可見(jiàn)進(jìn)程、服務(wù)進(jìn)程和緩存進(jìn)程。
      一款應(yīng)用通常會(huì)包含的進(jìn)程類(lèi)型
      前臺(tái)進(jìn)程、可見(jiàn)進(jìn)程和服務(wù)進(jìn)程往往與我們正在手機(jī)上執(zhí)行的操作直接或間接相關(guān),比如正在前臺(tái)供我們交互和操作的活動(dòng)窗口(Activity)、正在通過(guò)廣播接收器(BroadcastReceiver)等待觸發(fā)的 Tasker 規(guī)則、正在后臺(tái)通過(guò) Wi-Fi 網(wǎng)絡(luò)自動(dòng)上傳備份照片的 Google Photos 以及前面提到的有待觸發(fā)的鬧鐘等等。這些進(jìn)程優(yōu)先級(jí)從高到低依次遞減,LMK 一般不會(huì)觸及。
      緩存進(jìn)程則是那些暫時(shí)放在運(yùn)行內(nèi)存中的部分,也是和本文探討話(huà)題主要相關(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)程、可見(jiàn)進(jìn)程和前臺(tái)進(jìn)程采取回收策略。而當(dāng)這些我們?cè)谡J褂弥心軌蛑庇^感受到的進(jìn)程都不得不被被回收時(shí),文章開(kāi)頭提到的微信重載、音樂(lè)中斷、下載消失等等現(xiàn)象也就出現(xiàn)了。

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

      在可用內(nèi)存充裕的情況下遭遇「殺后臺(tái)」現(xiàn)象,一方面可能是 LMK 這把「大刀」出了問(wèn)題(常見(jiàn)于 Android 9 時(shí)期的 Pixel 3 用戶(hù)),另一方面則有可能是其它規(guī)則額外干預(yù)了 Android 系統(tǒng)正常的內(nèi)存回收機(jī)制。
      這里提到的「其它規(guī)則」主要有兩種形式,一種類(lèi)似部分華為設(shè)備上預(yù)裝的「省電精靈」,它會(huì)將所有沒(méi)有加入后臺(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ī)型中常見(jiàn),這里廠(chǎng)商們通常會(huì)用到一種類(lèi)似「白名單」的方法來(lái)進(jìn)行過(guò)濾。
      以三星手機(jī)基于 Android 9 的 One UI 為例,除了微信、QQ 等國(guó)內(nèi)常見(jiàn)應(yīng)用,One UI 默認(rèn)會(huì)為所有第三方應(yīng)用關(guān)閉「允許后臺(tái)活動(dòng)」這一選項(xiàng),同時(shí)開(kāi)啟「優(yōu)化電池使用量」這一功能。
      One UI 的后臺(tái)管理
      部分搭載氫 OS 的一加機(jī)型則將上面提到的應(yīng)用進(jìn)程進(jìn)行拆分,除了基于原生 Android 的后臺(tái)限制、電池優(yōu)化,還有一套名為「自啟動(dòng)管理」的設(shè)置來(lái)對(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)記錄等等功能的失效。
      氫 OS 的自啟動(dòng)管理
      問(wèn)題在于上述功能埋藏較深,一般用戶(hù)在安裝應(yīng)用后往往不會(huì)第一時(shí)間前往設(shè)置,一加的氫 OS 更是以系統(tǒng)更新之后自動(dòng)重置部分用戶(hù)設(shè)置聞名,那些需要在后臺(tái)正常工作的應(yīng)用,因此也被都被直接扔進(jìn)了原生 Android 中用來(lái)限制「毒瘤」應(yīng)用的「黑箱」里。
      換句話(huà)說(shuō),國(guó)內(nèi)大部分定制 ROM 在后臺(tái)管理這件事情上都選擇采用一種「寧肯錯(cuò)殺一千不肯放過(guò)一個(gè)」的做法。

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

      從某種程度上來(lái)說(shuō),國(guó)產(chǎn)手機(jī)廠(chǎng)商在 Android 后臺(tái)管理上的做法雖然偏激,但它們都是國(guó)內(nèi)特殊生態(tài)下的產(chǎn)物 。
      一方面,盡管 Google 為 Android 設(shè)想了一套非常理想化的應(yīng)用運(yùn)行與后臺(tái)管理機(jī)制,但大多數(shù)于原生 Android 中行之有效的后臺(tái)管理機(jī)制在國(guó)內(nèi)似乎都會(huì)變成「雞肋」。
      如果 Google 有 100 種提升 Android 應(yīng)用運(yùn)行效率,保證后臺(tái)綠色、純凈的方法,國(guó)內(nèi)毒瘤應(yīng)用開(kāi)發(fā)商就有 101 種繞過(guò)這些限制的方法。
      借助共用的第三方推送服務(wù)實(shí)現(xiàn)鏈?zhǔn)絾拘?、借助透明的懸浮窗保證后臺(tái)存活、通過(guò)不斷獲取定位的方式來(lái)避免進(jìn)程被系統(tǒng)回收……不管是出于實(shí)現(xiàn)消息推送這樣單純的目的還是為了不斷喚醒用戶(hù)設(shè)備以實(shí)現(xiàn) KPI 目標(biāo)這種下作的行為,在國(guó)內(nèi) Android 生態(tài)中均有出現(xiàn)。
      綠色守護(hù)專(zhuān)門(mén)針對(duì)鏈?zhǔn)絾拘淹瞥龅膯拘炎粉櫣δ?/span>
      雖然國(guó)內(nèi)外的具體環(huán)境有所不同,但這類(lèi)設(shè)計(jì)不規(guī)范的 Android 應(yīng)用帶來(lái)的問(wèn)題卻是一樣的,這類(lèi)應(yīng)用放在后臺(tái)不僅不會(huì)為我們帶來(lái)便利,反而還會(huì)因?yàn)轭l繁喚醒設(shè)備帶來(lái)不小的耗電問(wèn)題。待機(jī)續(xù)航問(wèn)題作為懸在國(guó)產(chǎn) Android 機(jī)頭頂?shù)膸装牙麆χ?,手機(jī)廠(chǎng)商不得不各自從系統(tǒng)層面推出自家的應(yīng)對(duì)機(jī)制——這就有了上面提到的各種偏激式的后臺(tái)管理方法。
      另一方面,這里還涉及到一個(gè)非常重要的概念區(qū)分多任務(wù)管理和后臺(tái)管理究竟是不是一回事?
      國(guó)內(nèi) Android 生態(tài)由于早期受 iOS 影響較深,無(wú)論是開(kāi)發(fā)商還是用戶(hù)都更傾向于把「將應(yīng)用卡片從多任務(wù)列表里劃掉」的行為理解為清除對(duì)應(yīng)用的后臺(tái)進(jìn)程。在上面提到的特殊生態(tài)環(huán)境的影響之下,這里被清除的后臺(tái)進(jìn)程往往又包括那些用于保證應(yīng)用后臺(tái)運(yùn)行的可見(jiàn)進(jìn)程、服務(wù)進(jìn)程乃至前臺(tái)進(jìn)程在內(nèi)。
      iOS 的任務(wù)管理方式 | 圖:Javi Pérez
      在酷安應(yīng)用市場(chǎng),甚至還有得以在原生 Android 上實(shí)現(xiàn)類(lèi)似「劃掉卡片即停止運(yùn)行」效果的應(yīng)用,iOS 的后臺(tái)管理理念在國(guó)內(nèi)有多么深入人心可見(jiàn)一斑。
      但這種后臺(tái)管理理念卻與 Google 對(duì) Android 的多任務(wù)管理設(shè)計(jì)方式相悖。Google 一直以來(lái)都將 Android 手機(jī)上呼出任務(wù)卡片的那個(gè)界面叫做 Recents,最近幾個(gè)版本的 Android 系統(tǒng)更是將其本地化為「概覽」。結(jié)合 Google 在 Android 9 和 Android 10 手勢(shì)交互上的變革,注重多任務(wù)管理而非后臺(tái)管理的意圖也越發(fā)明顯。
      當(dāng)最近運(yùn)行的應(yīng)用以一張張卡片的形式呈現(xiàn)在我們面前時(shí),Google 想要呈現(xiàn)的是一個(gè)能夠讓我們?cè)诓煌蝿?wù)間快速切換的多任務(wù)交互,而在理想狀態(tài)下,后臺(tái)管理則是交由系統(tǒng)處理、完全不應(yīng)被用戶(hù)感知的。
      至于如何理性看待 Android 平臺(tái)的后臺(tái)管理,這里我們不妨借用綠色守護(hù)開(kāi)發(fā)者 @OasisFeng 在「Android 多任務(wù)界面的劃除交互」這個(gè)話(huà)題上的答疑來(lái)回答這個(gè)問(wèn)題:
      Android 從 8.0 開(kāi)始大幅度調(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)耗電太過(guò)分了,那么你可以在應(yīng)用設(shè)置中限制應(yīng)用的后臺(tái)能力(非原生系統(tǒng)可能不一定有這個(gè)選項(xiàng))。總之,你并不需要「殺應(yīng)用」,也沒(méi)必要為這些破事兒操碎心。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多