Android P以前爲了搞定客戶的投訴:「爲何微信能收到消息而大家的IM卻不能?」,爲了解決這個「痛點」,廣大的Android開發者們只能讓各類黑科技輪番上場、各顯神通,最典型的:好比曾今在手機QQ上的1像素保活(雖然QQ官方從沒正面認可過)、後臺無限播放無聲音的音頻、應用互相拉活等,你們都耳熟能詳。html
下面就是即時通信網整理過的各類典型保活需求和思路,能夠回顧學習一下:web
《應用保活終極總結(一):Android6.0如下的雙進程守護保活實踐》微信
《應用保活終極總結(二):Android6.0及以上的保活實踐(進程防殺篇)》網絡
《應用保活終極總結(三):Android6.0及以上的保活實踐(被殺復活篇)》app
《Android進程保活詳解:一篇文章解決你的全部疑問》ide
《Android端消息推送總結:實現原理、心跳保活、遇到的問題等》學習
《爲什麼基於TCP協議的移動端IM仍然須要心跳保活機制?》spa
《微信團隊原創分享:Android版微信後臺保活實戰分享(進程保活篇)》.net
爲了響應Android原版中對省電策略、用戶體驗等設計,也爲了不各類保活亂象,國內主流的Android手機廠商在閹割了谷歌原版的GCM(FCM)推送通道以後(悲劇!),依靠自身的技術力量構建起來各家自有的推送通道。
下面是國內主流Android廠商的推送服務開發者入口:
1)小米消息推送服務;
2)華爲消息推送服務端(Huawei Mobile Services);
3)魅族消息推送服務;
4)OPPO消息推送服務;
5)vivo消息推送服務(建設中..)。
看到上面這串廠商系統級推送通道列表,相信你已經露出了你那排潔白的牙齒了 ^_^。。。
若是劇情都能像都市愛情小說那樣——「男女主角今後過上了幸福美滿的生活...」,那就完美了!
可是(這個可是真的很討厭),不要高興的太早,理想狀況下對接廠商通道確實很爽,但現實很骨感。
對接廠商通道帶來的麻煩,遠比你想像的要多:
1)你得一家一家下載SDK、註冊開發者帳號、搞手機端對接、搞服務端對接;
2)各廠商的SDK都打包在一個APP裏,可能存在各類兼容性問題;
3)由於ROOM版本問題,即便同一個廠商的手機的同一套SDK也存在新舊ROOM的兼容性問題;
4)這一堆的SDK,各類jar包讓你的APP莫名變大了很多;
5)服務端要對接各類廠商的推送後臺,各家的技術水平、SDK水準、服務穩定性良莠不齊,對接起來難受吧;
6)有些手機小廠並無自已的推送通道,你自建的推送能道還不能扔。
凡此種種,對接廠商通道並不輕鬆。
不過:若是公司不排斥使用第3方通送方案的話,現階段這種混亂情況下,能夠考慮直接用第3方的服務,比騰訊的信鴿推送爲例(首先申明,我沒收信鴿的好處費,只是舉個例子!),信鴿推送的方案也是一家一家對接第3方的廠商通道道+自有通道(《[資訊] 信鴿新版上線:號稱Android首家統一推送服務》),對於開發者來講信鴿的實現思路其實跟咱們想的是同樣的。但好處是:別人有專門的團隊死磕這件破事,比你自已一我的帶來的效果要好多了。
Android P正式版即將到來:後臺應用保活、消息推送的真正噩夢