深度比較EMUI和MIUI后臺(tái)處理

安卓的后臺(tái)機(jī)制既是安卓的一個(gè)優(yōu)勢(shì),也是碎片化很嚴(yán)重的一個(gè)特性罩缴,作為三款依賴安卓后臺(tái)服務(wù)的App的開發(fā)者蚊逢,寫下這篇文章來比較一下EMUI和MIUI這兩個(gè)最常見的安卓系統(tǒng)的后臺(tái)處理邏輯,先把要比較的系統(tǒng)列一下:

  • EMUI 10.0.0箫章, Android 10
  • MIUI 12.0.6烙荷, Android 10

比較后臺(tái)機(jī)制的前提是兩個(gè)系統(tǒng)均使用缺省設(shè)置,不考慮諸如省電模式檬寂、極簡(jiǎn)模式等特殊情況终抽,這樣符合大部分用戶的使用情況。

概述

常見的安卓App駐留后臺(tái)方式有三種:

  • 注冊(cè)系統(tǒng)服務(wù)桶至,比如無障礙服務(wù)
  • 使用安卓定時(shí)服務(wù)
  • 常駐通知欄的前臺(tái)服務(wù)昼伴,即Foreground Service

這三種后臺(tái)模式,我都開發(fā)過相應(yīng)的App镣屹,下面會(huì)分別舉例來比較圃郊。除此以后,還有一些匪夷所思女蜈,也非官方認(rèn)可的謀取駐留后臺(tái)的方式持舆,比如播放一個(gè)無聲的音樂、開啟一個(gè)單像素的懸浮窗等等伪窖,畢竟不屬于正道逸寓,本文就不比較了。

在比較之前覆山,有必要說明一下竹伸,對(duì)于現(xiàn)在各廠商安卓系統(tǒng),比如我們要比較的EMUI和MIUI汹买,僅僅按照這種正規(guī)方式注冊(cè)服務(wù)是不夠的佩伤,還是很容易被系統(tǒng)凍結(jié)或殺掉,原因是因?yàn)榘凑?guī)方式注冊(cè)服務(wù)晦毙,所有的應(yīng)用都可以做到生巡,后臺(tái)多了,加上一些應(yīng)用沒有節(jié)制见妒,手機(jī)就必然卡頓費(fèi)電孤荣,所以廠商們的做法也很好理解,默認(rèn)全殺,做一個(gè)只能手工配置的白名單盐股,用戶加入白名單才允許后臺(tái)服務(wù)钱豁,這樣對(duì)于大部分普通用戶,不用做任何設(shè)置就免受惡意軟件之苦疯汁。

需要注意牲尺,不同系統(tǒng)白名單配置稍有不同:

  • MIUI 設(shè)置 》應(yīng)用設(shè)置 》應(yīng)用管理 》選擇應(yīng)用 》 設(shè)置省電策略、自啟動(dòng)
  • EMUI 設(shè)置 》 應(yīng)用 》 應(yīng)用啟動(dòng)管理 》 選擇應(yīng)用 》 設(shè)置允許后臺(tái)活動(dòng)幌蚊、自啟動(dòng)

下面開始測(cè)試三種后臺(tái)方式谤碳。

無障礙服務(wù)

我開發(fā)的微動(dòng)手勢(shì),就是一個(gè)典型的無障礙服務(wù)類應(yīng)用溢豆,安卓系統(tǒng)支持應(yīng)用注冊(cè)為無障礙服務(wù)蜒简,無障礙服務(wù)不僅提供了一種駐留后臺(tái)的方法,其本身還提供了很多普通應(yīng)用無法做到的功能漩仙,比如模擬系統(tǒng)交互搓茬、模擬手勢(shì)等。所以很多安卓App都借助無障礙服務(wù)來完成某些功能队他,比如就連抖音App都提供了一個(gè)無障礙服務(wù)卷仑。

這里就以微動(dòng)手勢(shì)為例,安裝完成并打開無障礙服務(wù)漱挎,然后我分別測(cè)試以下四種情況:

  • 默認(rèn):就是默認(rèn)安裝后不做任何設(shè)置
  • 加鎖:在多任務(wù)界面中給應(yīng)用的卡片加鎖
  • 白名單:在系統(tǒng)中將應(yīng)用加入后臺(tái)白名單
  • 鎖+白名單:上面兩個(gè)都設(shè)置

每種情況下我進(jìn)行四種操作測(cè)試系枪,這四種情況都是用戶常做的一些操作雀哨,然后判斷微動(dòng)手勢(shì)的后臺(tái)是否工作正常磕谅,四種操作分別如下:

  • 鎖屏:鎖屏等一分鐘后再解鎖
  • 劃卡片:直接在多任務(wù)頁(yè)面中劃去應(yīng)用
  • 一鍵清理:在多任務(wù)頁(yè)面中點(diǎn)一鍵清理
  • 耗盡內(nèi)存:通過啟動(dòng)多個(gè)大型軟件或游戲擠占剩余內(nèi)存

測(cè)試結(jié)果,我繪制表格如下:

EMUI MIUI EMUI(加鎖) MIUI(加鎖) EMUI(白名單) MIUI(白名單) EMUI(鎖+白名單) MIUI(鎖+白名單)
鎖屏 正常 凍結(jié) 正常 正常 正常 正常 正常 正常
一鍵清理 被殺 被殺 正常 正常 正常 被殺 正常 正常
劃卡片 被殺 被殺 被殺 被殺 正常 被殺 正常 被殺
耗盡內(nèi)存 正常 正常 正常 正常 正常 正常 正常 正常

我們仔細(xì)看下這里的結(jié)果雾棺,明顯MIUI比EMUI的后臺(tái)控制更嚴(yán)格膊夹,大概總結(jié)一下:

  • MIUI認(rèn)為用戶操作優(yōu)先于用戶白名單,所以即使加入白名單捌浩,通過劃卡片依然將應(yīng)用殺掉放刨。
  • EMUI認(rèn)為用戶白名單優(yōu)先,只要加入白名單尸饺,用戶即使劃卡片进统,后臺(tái)都能正常保留,只將前臺(tái)界面關(guān)閉浪听。

兩種方式孰優(yōu)孰劣螟碎,我不做評(píng)價(jià),但顯然MIUI的方式迹栓,如果想保留后臺(tái)掉分,用戶在設(shè)置白名單之后,還需要加鎖并小心避免劃卡片。提醒一點(diǎn)酥郭,如果你在系統(tǒng)里同時(shí)為應(yīng)用設(shè)置了允許自啟動(dòng)华坦,那么一些后臺(tái)應(yīng)用在被殺之后會(huì)立刻重啟,也就是殺的效果變成了重啟不从。

定時(shí)服務(wù)

這里說的定時(shí)服務(wù)是個(gè)統(tǒng)稱惜姐,指借助安卓的某個(gè)"定時(shí)"API來實(shí)現(xiàn)一個(gè)定時(shí)運(yùn)行的后臺(tái),安卓自己在這里也很亂椿息,前前后后提供了AlarmManager载弄、JobSchedule、WorkManager等很多不兼容的API來支持后臺(tái)的定時(shí)任務(wù)撵颊,我這里統(tǒng)稱為定時(shí)服務(wù)宇攻,我開發(fā)的碎片記憶就是典型的定時(shí)服務(wù),這是一個(gè)背單詞的應(yīng)用倡勇,需要定時(shí)來檢查卡片是否需要復(fù)習(xí)逞刷,然后自動(dòng)從后臺(tái)彈出。

依然按上述測(cè)試方法妻熊,結(jié)果如下:

EMUI MIUI EMUI(加鎖) MIUI(加鎖) EMUI(白名單) MIUI(白名單) EMUI(鎖+白名單) MIUI(鎖+白名單)
鎖屏 正常 凍結(jié) 正常 正常 正常 正常 正常 正常
一鍵清理 被殺 被殺 正常 正常 被殺 被殺 正常 正常
劃卡片 被殺 被殺 被殺 被殺 被殺 被殺 被殺 被殺
耗盡內(nèi)存 被殺 被殺 被殺 正常 正常 被殺 正常 正常

從這個(gè)結(jié)果來看夸浅,定時(shí)服務(wù)相對(duì)無障礙服務(wù),優(yōu)先級(jí)要低一些扔役,在某些無障礙服務(wù)仍然可以正常工作的場(chǎng)景下(比如劃卡片和內(nèi)存耗盡)帆喇,定時(shí)服務(wù)就被殺了,不過這次MIUI和EMUI表現(xiàn)的相對(duì)一致一些亿胸。

這里有一點(diǎn)值得一提坯钦,安卓提供的定時(shí)機(jī)制里,有一部分是允許應(yīng)用被殺后依然能被定時(shí)喚醒的侈玄,但這樣的話婉刀,惡意軟件顯然可以利用這一點(diǎn)做到永生不死,所以像EMUI和MIUI這樣的系統(tǒng)對(duì)這種定時(shí)都做了額外的限制序仙,這里不再展開詳述了突颊。

前臺(tái)服務(wù)

Android的前臺(tái)服務(wù)是一個(gè)術(shù)語(yǔ):Foreground Service,表示用戶可以感知到的后臺(tái)服務(wù)潘悼,所以會(huì)在通知欄給出一個(gè)常駐通知律秃,這是很多應(yīng)用使用的后臺(tái)機(jī)制,我開發(fā)的電池守護(hù)就使用了這個(gè)機(jī)制治唤,通過這個(gè)機(jī)制棒动,讓應(yīng)用可以在后臺(tái)獲取電量變化信息,從而對(duì)用戶進(jìn)行充電或拔除充電器的告警肝劲。

依然使用相同的測(cè)試方法迁客,測(cè)試結(jié)果如下:

EMUI MIUI EMUI(加鎖) MIUI(加鎖) EMUI(白名單) MIUI(白名單) EMUI(鎖+白名單) MIUI(鎖+白名單)
鎖屏 正常 正常 正常 正常 正常 正常 正常 正常
一鍵清理 被殺 被殺 正常 正常 正常 被殺 正常 正常
劃卡片 被殺 被殺 被殺 被殺 正常 被殺 正常 被殺
耗盡內(nèi)存 被殺 正常 被殺 正常 正常 正常 正常 正常

從耗盡內(nèi)存的測(cè)試結(jié)果來看郭宝,前臺(tái)服務(wù)的優(yōu)先級(jí)級(jí)似乎介于無障礙服務(wù)和定時(shí)服務(wù)之間,并且EMUI和MIUI依然有不小的差異掷漱。

總結(jié)

從上面的測(cè)試來看粘室,無障礙服務(wù)、定時(shí)服務(wù)卜范、前臺(tái)服務(wù)幾種服務(wù)類型之間有微妙的差異衔统。而且MIUI和EMUI的的處理也有不少的差異,從我測(cè)試的兩個(gè)版本看海雪,MIUI更嚴(yán)苛一些锦爵,某些情況下EMUI不殺,MIUI會(huì)殺奥裸。對(duì)于開發(fā)者來說這是比較痛苦的事情险掀,而對(duì)于用戶來說,就更難理解這些細(xì)微的差異了湾宙。好在添加白名單和加鎖之后樟氢,基本上還是能保住后臺(tái),所以這類需要后臺(tái)的應(yīng)用侠鳄,通常只能引導(dǎo)用戶去做這些設(shè)置埠啃。

這個(gè)測(cè)試只對(duì)比了MIUI和EMUI,我相信谷歌原生伟恶、三星以及其他廠商還是會(huì)有更多的差異碴开,安卓的碎片化可見一斑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末博秫,一起剝皮案震驚了整個(gè)濱河市潦牛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌台盯,老刑警劉巖罢绽,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異静盅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寝殴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門蒿叠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚣常,你說我怎么就攤上這事市咽。” “怎么了抵蚊?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵施绎,是天一觀的道長(zhǎng)溯革。 經(jīng)常有香客問我,道長(zhǎng)谷醉,這世上最難降的妖魔是什么致稀? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮俱尼,結(jié)果婚禮上抖单,老公的妹妹穿的比我還像新娘。我一直安慰自己遇八,他們只是感情好矛绘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刃永,像睡著了一般货矮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斯够,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天次屠,我揣著相機(jī)與錄音囚霸,去河邊找鬼悬秉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扔嵌,可吹牛的內(nèi)容都是我干的掖桦。 我是一名探鬼主播本昏,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼枪汪!你這毒婦竟也來了涌穆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤雀久,失蹤者是張志新(化名)和其女友劉穎宿稀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赖捌,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祝沸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了越庇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罩锐。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卤唉,靈堂內(nèi)的尸體忽然破棺而出涩惑,到底是詐尸還是另有隱情,我是刑警寧澤桑驱,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布竭恬,位于F島的核電站跛蛋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏痊硕。R本人自食惡果不足惜赊级,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寿桨。 院中可真熱鬧此衅,春花似錦、人聲如沸亭螟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)预烙。三九已至墨微,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扁掸,已是汗流浹背翘县。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谴分,地道東北人锈麸。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像牺蹄,于是被迫代替她去往敵國(guó)和親忘伞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354