3、針對以往Android版本的各種保活技術回顧
Android P之前為了搞定客戶的投訴:“為什么微信能收到消息而你們的IM卻不能?”,為了解決這個“痛點”,廣大的Android開發者們只能讓各種黑科技輪番上場、各顯神通,最典型的:比如曾今在手機QQ上的1像素保活(雖然QQ官方從沒正面承認過)、后台無限播放無聲音的音頻、應用互相拉活等,大家都耳熟能詳。
下面就是即時通訊網整理過的各種典型保活需求和思路,可以回顧學習一下:
《應用保活終極總結(一):Android6.0以下的雙進程守護保活實踐》
《應用保活終極總結(二):Android6.0及以上的保活實踐(進程防殺篇)》
《應用保活終極總結(三):Android6.0及以上的保活實踐(被殺復活篇)》
《Android端消息推送總結:實現原理、心跳保活、遇到的問題等》
《微信團隊原創分享:Android版微信后台保活實戰分享(進程保活篇)》
4、國內各種Android廠商級推送通道出現了
為了響應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正式版即將到來:后台應用保活、消息推送的真正噩夢