android 推送?;?為什么很多安卓手游不能做到永遠(yuǎn)后臺(tái)?而微信和QQ都行?
為什么很多安卓手游不能做到永遠(yuǎn)后臺(tái)?而微信和QQ都行?在安卓中,目前軟件能不能駐留后臺(tái)主要是操作系統(tǒng)說(shuō)了算,尤其像MIUI這樣的國(guó)產(chǎn)ROM,后臺(tái)自啟動(dòng)是有白名單的一般來(lái)說(shuō)起一個(gè)后臺(tái)進(jìn)程多多少少會(huì)耗電,
為什么很多安卓手游不能做到永遠(yuǎn)后臺(tái)?而微信和QQ都行?
在安卓中,目前軟件能不能駐留后臺(tái)主要是操作系統(tǒng)說(shuō)了算,尤其像MIUI這樣的國(guó)產(chǎn)ROM,后臺(tái)自啟動(dòng)是有白名單的
一般來(lái)說(shuō)起一個(gè)后臺(tái)進(jìn)程多多少少會(huì)耗電,比如說(shuō)為了你隨時(shí)切過(guò)來(lái)都立即響應(yīng)到最新的畫(huà)面,一般會(huì)做后臺(tái)更新之類(lèi)的
微信和QQ我印象中在哪看到過(guò),為了讓用戶感覺(jué)自己?jiǎn)?dòng)得飛快,會(huì)自己截自己一張界面截圖,啟動(dòng)的時(shí)候先顯示上一次的截圖,等真正的界面畫(huà)出來(lái)了再變成真的界面,可以說(shuō)是666了
游戲引擎其實(shí)有可以留后臺(tái)、以及進(jìn)入后臺(tái)后不暫停的設(shè)置,
問(wèn)題是,普通App大多只有個(gè)UI,在內(nèi)容變動(dòng)的時(shí)候刷新局部。在后臺(tái)幾乎不用動(dòng)。
游戲就不一樣了,游戲是按幀運(yùn)行的,哪怕說(shuō)放在后臺(tái)不做界面渲染,
但是游戲內(nèi)容只要不暫停,就會(huì)每幀運(yùn)算,還有固定時(shí)鐘運(yùn)算,
弄幾個(gè)游戲掛后臺(tái),對(duì)于手機(jī)來(lái)說(shuō),資源占用和耗電量都是吃不消的。
那么你說(shuō),把游戲暫停住停在后臺(tái)呢,
照理說(shuō)是可行的,但是現(xiàn)在很多App一般是走HTTPS通訊,使用token之類(lèi)的東西作登陸驗(yàn)證的,你半天連一次服務(wù)器都沒(méi)問(wèn)題。游戲這玩意,它有個(gè)東西叫心跳包,
簡(jiǎn)單說(shuō)就是客戶端必須每隔一段時(shí)間(有的可能就幾秒)往服務(wù)器發(fā)一條消息,告訴服務(wù)器我還在線。服務(wù)器過(guò)段時(shí)間收不到心跳包,就會(huì)判定這個(gè)玩家離線。這時(shí)候盡管你在后臺(tái)駐留了游戲,服務(wù)器卻認(rèn)為你離線了,所以切回去的時(shí)候還是要重新登錄。
另外一方面,游戲的服務(wù)器開(kāi)銷(xiāo)比普通app大得多,服務(wù)器也不可能跟你一個(gè)不玩掛后臺(tái)的客戶端耗著不是。一般app留后臺(tái)是為了干嘛呢,推送通知這些。游戲的話,你要推送通知,也可以用系統(tǒng)的推送服務(wù),但是按照題主的描述,不僅僅是推送通知,而是要在后臺(tái)繼續(xù)游戲的狀態(tài),根據(jù)上述種種,這當(dāng)然就不可能了
以小米為例,默認(rèn)微信QQ支付寶是允許開(kāi)啟自啟動(dòng)的,(擁有這個(gè)權(quán)限的APP從任務(wù)列表劃掉是不會(huì)關(guān)閉的,只是從列表消失)
如果沒(méi)有強(qiáng)殺后臺(tái),MIUI的安全中心默認(rèn)設(shè)置是阻止不了國(guó)產(chǎn)軟件在后臺(tái)為所欲為的
除了任務(wù)列表劃掉和一鍵清理,絕大部分用戶可能根本就不知道什么是電池優(yōu)化,后臺(tái)十分鐘/禁止后臺(tái)設(shè)置