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