Android、iOS 和 Windows Phone 的推送機制有何差異?哪一種機制最好?
據說安卓推送其實是程序後台運行的假推送,而iOS和wp上才是真推送。求詳解。
找到一篇敘述的很準確而且比我詳細得多的文章,可以無視我的回答了:
CSDN博客 移動手機消息推送機制--------------------------------------------------------------------------------------
關於消息推送的,大致分兩種方式:
1、應用伺服器→用戶設備。這樣消息到達是實時的,缺點是應用一直在聯網,所以消耗的資源流量較多。 2、應用伺服器→系統提供商伺服器→用戶設備。在WP和IOS上,是沒有真正的後台的,所有在後台的應用都是被凍結的,消息都是從微軟/蘋果伺服器那邊給你送來的,所以WP和IOS的應用後台時候只能使用這種方式。這樣的好處就是省電省流量,壞處大家都明白,要是伺服器那邊做得不好,推送就會經常出問題。這點蘋果做得比微軟前期的好,但是現在微軟的推送也跟上了。而谷歌因為伺服器在國外,第二種方式體驗非常差,加上andriod應用是可以隨意在後台聯網的,因此國內應用大多數都只使用第一種接收方式。
其實嚴格地來說只有第二種接收才叫推送(push)。第一種只能算是拉(pull)。即第一種是應用主連接到伺服器,檢查是否有新消息,有就拉過來;而第二種方式是蘋果/微軟/谷歌伺服器在接收到應用伺服器的提供的消息時,再發送到設備上。
所以說,不是安卓沒有「真推送」,而是國內應用幾乎不用。
至於優劣,上面大概已經列出來了。
第1種方式會導致你一連網,或者打開WIFI,眾多應用就自啟動聯網查詢是否有新消息,因而也是安卓「卡」的一方面原因。
第2種推送方式雖然也會主動聯網,但所有應用都沒有啟動,只是系統做一次連接而已。
微信在通知欄上給你推送了一條消息,當你進微信的時候是不會馬上看到這條消息,而是要等一兩秒重新連接上才能看到。這個問題在三個系統都有。很多人覺得莫名奇妙,為什麼我通知欄明明已經看到這條消息的內容了,進應用之後還要接收一次才能看到?還有,在WP和IOS上,如果你有Facebook應用並且曾經登陸成功過,即使你目前沒有翻牆,也能接收到推送消息——但是進去應用卻連接失敗。原因就是狀態欄上的那條消息,是推送伺服器給你的(這個伺服器在IOS和WP上是屬於蘋果和微軟的,在android上可以是谷歌的,也可以是各大應用提供商的);而你進應用之後,消息是即時連接的那個伺服器給你的,因此就要再收一次。
雖然都是一個現象,但是本質不一樣的。在IOS/WP上,貌似(沒嚴格去查)只能由蘋果/微軟提供推送服務。而android是允許應用連接自己的推送伺服器的,而不是一定要用谷歌提供的。找到幾篇關於推送機制的文章可以參考一下:android: http://blog.sina.com.cn/s/blog_48964b12010191lt.htmlIOS: http://www.cnblogs.com/cdts_change/p/3240893.html
Android也有官方推送,GCM(Google cloud message),我香港買的華為,谷歌郵箱或YouTube有信息都會顯示通知,而我進入電池管理時發現那些程序並沒有運行。
推薦閱讀:
※Windows 10 Mobile 開發人員模式和安卓系統的 USB調試等開發者功能有何異同?
※APP應用同質化這麼嚴重,新產品要想脫穎而出,應該往哪些方向努力呢?
※科技播客很少深入討論Android相關問題,WP更慘,基本都是蘋果,為什麼?
※小米6會不會現貨發售?
※google 除了youtube和android以外的項目都未能成功,說明了什麼?
TAG:iOS | WindowsPhone7 | Android |