沒有干貨,只有濕貨
不講技術,只是一個程序員的吐槽,僅此而已。。
突然冒出了n多消息推送平臺。
記得2年前,Android消息推送,就像雨后的春筍一樣,冒出來了很多,主要以友盟,極光為代表,再然后BAT也陸續推出了自己的消息推送平臺,可以說,這么多的消息推送平臺,讓咱們挑花了眼,各有各的優點,我也在當時問了下周圍的朋友,用什么平臺的都有。各大消息推送平臺, 都想在這里分得一杯羹,就像當初的云盤一樣,再看看現在的消息推送平臺,要死不活的平臺一堆。
殺不死的推送小強。
現在推送,基本上就是后臺和服務器,保持一個長連接,如果后臺有新的消息,需要推送到用戶的手機上,只需通過這個長連接,就可以直接推送,這個長連接維持,在Android里面,咱們靠的是Service組件,所以說,這個Service起著至關重要的作用,如果我們要保證消息能夠及時的推送到用戶手機上,就必須保證這個Service的運行,為了Service的運行,咱們把能監聽的系統廣播(網絡連接狀態廣播,開關屏廣播,開機廣播等),都給監聽了,為的就是提高Service的存活率,說實話,這些廣播足以維持Service的存活。
手機廠商祭出了屠龍刀!!
這樣殺不死的推送小強,存在了好長一段時間,用戶只要多開幾個app,手機就開始發熱,卡頓,于是各種衛士管家啥的都出來了,說是提供一鍵清理的功能,雖然當時似乎有那么點效果,但是過不了多久,手機又開始卡,發熱,耗電等等一系列問題接踵而至,當然用戶發現這種問題,第一個責怪的就是手機廠商,廠商成為了無辜的背鍋俠,于是怒了,終于祭出了屠龍刀,手機提供一個系統級別的一鍵清理,只要不是白名單的程序,一律干掉,各大app尸首遍地,慘目忍睹。
道高一尺魔高一丈!!
當然咱們程序員也不是吃素的,于是推出了各種保活策略,例如:多進程守護,native層直接fork一個進程等等所謂的黑科技,有的效果還不錯,在部分的國內廠商的手機上,還真有效果,不過現在看看,所謂的保活黑科技還真的有效嗎?據我現在的測試,目前在小米,華為,魅族手機上,所謂的黑科技都已經失效了,咱們程序員和廠商的斗智斗勇,最后還是以廠商的勝利告終,道可道,非常道!
哥倆好,手拉手往前走。。
記得一次,產品經理說:“為啥人家微信QQ,怎么都能收到推送消息,咱們的就不可以!”,當時心里成千上萬的草泥馬在奔騰,你說咱們程序員咋就這么苦逼,不就一個消息推送嗎,搞得人要死要活的,誰叫咱們的Google大爹,不硬氣呢,凡是使用Android系統的必須集成Google服務,那咱們豈不爽歪了,咱們android也可以像Apple一樣,那叫一個簡單,想想都覺得美,算了,別做夢了,咱們帝國還有一堵高墻。不過,曙光即將到來,那就是廠商為了解決這種相愛相殺的矛盾,終于出了自己的推送,而且還是系統級別的,記得小米推送出來的時候高興了半天,終于不用擔心小米的一鍵清理了,隨后各大廠商的推送陸續的出來了,像是華為,魅族都有自己的推送。
到底有沒有好的推送解決方案呢?
說實話,這個問題困擾了我很久,不能等著產品罵你不行,而你又無動于衷,于是開始查找一些關于消息推送的解決方案,當時也發現了一個解決方案,那就是阿里云推,它可以提供一個輔助推送通道,不過仔細看了下文檔,還是發現存在一些問題的。
看到阿里的這個說明,咱得先明白兩個詞“通知”和“透傳”,由于阿里的輔助通道使用的透傳,而透傳在app被一鍵清理掉,那就收不到透傳,但是通知,小米和華為卻是以系統服務維持的,就算app被清理掉,手機還是能接收到通知的,所以說,阿里的這個輔助通道,也不能完全保證消息的送達。既然通知是系統級維護的,那么根據不同的手機型號,集成不同的消息推送,通過廠商平臺,發送通知,這不就可以大大提高消息推送達率的,于是就誕生了OnePush。
優勢對比
OnePush | 非廠商推送 | 廠商推送 | 輔助通道推送 | |
---|---|---|---|---|
存活率 | 高 | 低 | 高 | 低 |
送達率 | 廠商高,其他根據當前系統 | 中 | 手機區分 | 中 |
拓展性 | 強 | 低 | 低 | 低 |
目前OnePush,提供了小米和華為的推送拓展,你可以自由拓展其他的消息推送平臺,當然你也不用拓展其他的消息推送,完全使用小米和華為的拓展也是可以的,華為平臺使用華為推送,其他平臺使用小米推送,小米推送完全可以替代其他的非廠商推送,為啥呢,因為小米推送,不僅支持小米手機,還支持其他手機,當然在其他手機上不是系統級別的服務而已。
推廣一下OnePush
附上OnePus開源地址: https://github.com/pengyuantao/OnePush
喜歡就star下,說不定能用著,吐槽完了,這么多文字,能看到最后,你很有前途!