Android記一次後臺保活設計心得2018

weixin_34321977發表於2018-02-05

首先我並不推薦也不喜歡手機應用通過各種手段後臺保活,但是當產品經理確定一定以及肯定地提出了這個需求,活著應用有著必須常駐後臺的理由,也就只有硬著頭皮去與各個手機的後臺管理機制做鬥爭了。

背景:因為開發的應用屬於醫療監測型別,而且監測著對於病人十分重要的一項身體指標,所以需求為應用不僅要常駐後臺,更要在後臺不停地接收檢測器發出的資料,實時為患者記錄,及時提出告警,而在投放市場後華為使用者出現了一致的問題,後臺連線不穩定以及無時無刻地後臺被殺。

對於後臺保活的各種手段,在網路上比比皆是,總結下來基本是如下幾種:
1.開啟服務,設定服務殺死重生;
2.開啟服務,傳送通知,設定為前臺服務;
3.雙程式保活;
4.檢測各種系統廣播啟動應用;
5.息屏開啟1畫素點Activity;
6.開啟服務,播放無聲音樂(七傷拳);
7.優化應用記憶體(當我沒說這句大實話);

這七種方法,最優秀的無非是最後一種,但我總是習慣性的不去考慮他,真是壞習慣。
這裡列舉的方式在網上都可以查詢到,但是因為android版本不同rom不同,不一定都能派上用場,這裡就不多說了。

在這次保活戰中一共涉及了個品牌的手機:
隨意蹂躪系
Nexus5、Nexus6、Sony Z5、LG G4、LG G5、Samsung S6 S7(未升級到最新版本)
尚有尊嚴系
小米5X、魅族Note6、OPPO R11、VIVO X9柔光雙攝照亮你的美(...洗腦真可怕)、Samsung J3 J5(升級到最新版本)、華為P9 P10、榮耀8(當你在後臺啥都不做的時候,或者稍微動了一下)
寧死不屈系
華為P9 P10、榮耀8(當你在後臺動個不停的時候)

對於隨意蹂躪系,請好好照顧,他們提供了原生或者接近原生的後臺管理機制,是因為相信每個應用不會作妖,所以,不到萬不得已,不要欺負他們;

對於尚有尊嚴系,多為定製程度較高的第三方ROM,殺死後臺也多處於其定製的功耗管理機制,嘗試過很多靈性方法,很難做到一招鮮吃遍天,但這些ROM都留下了功耗管理白名單,他們需要保證自己系統地流暢執行,同時他們也考慮到了有些應用有他們不得不說的苦(交)衷(易),所以尊重ROM廠商的限制,不要作妖,有需求,開啟白名單,你好,我也好。

最後是寧死不屈系,這也是遇到的最大的難題,前面有提到我的應用不僅需要常駐後臺,更需要在後臺接收裝置發出的藍芽資料,也就是說我需要在後臺動次打次。

以下的故事發生於我按照華為的顯示開啟了功耗管理白名單、後臺清理白名單、忽略電量優化白名單。

於是號稱是18個月不卡頓的華為出現了,也成功制裁了我:

  • 首先是藍芽廣播模式,當你息屏五分鐘之後,由後臺發起的藍芽掃描就被休眠了,GG;
  • 然後是連線模式,息屏後執行一小時,GG;

服務重生+前臺服務+雙程式守護,神裝在手,依舊被華為按在地上打。
直到最後,武林中流傳著這樣一套拳譜,傷敵一千自損八百,名曰七傷拳:無聲音樂保活大法
也就是在服務中迴圈播放一段無聲的音樂,cosplay正在播放的音樂播放器。
沒錯,醬紫確實在華為18個月不卡頓的後臺管理下活了下來,但代價是飆升的功耗,以及多工選單提示的音樂播放icon
但對於我這種特殊的應用來說,能夠常駐後臺,持續監測患者的狀態,給出最及時的健康提示,才是最重要的;

末了,還是想聊一下各個rom做出的後臺限制,對於開發者來說,最歡迎的當然是原生這種隨意蹂躪系,但是汝之蜜糖,彼之砒霜,這種策略如果在流氓肆虐的國內市場,估計早被啃得渣都不剩了,所以我個人覺得在國內市場環境下,尚有尊嚴系的做法挺好的,有需求就手動開啟,各取所需,一切由使用者決定;至於寧死不屈的華為,為了達到18個月不卡頓的效果,做出這種慘絕人寰的後臺三光策略,有點不近人情,有點過分。

希望國內的應用市場流氓越來越少,Android手機越來越好用(就當我放了個屁)



作者:我愛小白小白愛大開
連結:https://www.jianshu.com/p/2fe6250a7503
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

相關文章