精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕
打開APP
未登錄
開通VIP,暢享免費電子書等14項超值服
開通VIP
首頁
好書
留言交流
下載APP
聯系客服
iOS和Android的后臺推送工作原理各是如何?
Tornador
>《IOS開發》
2015.11.17
關注
應該說,蘋果這種方式在技術上沒有什么創新。但是,整個架構是很了不起的。因為:
1.使用久經考驗的協議,技術風險小。
2.蘋果勇于承擔責任:他需要維護一個代價不小的服務器集群,而且要為服務器的down機負責。
選擇低風險的技術方案Bug更少,減輕了用戶的痛苦,這是構架師的功勞。蘋果承擔責任,盡可能的減少了不可控的意外,保證了用戶體驗。這只能說是公司決策者的功勞。(從側面說明有個懂技術的VP是多重要......而Scott走人了......)
他們帶給用戶的好處也是實實在在的。
1.安全。只有登錄過的開發者可以通過蘋果的服務器推送。
2.快速,穩定,可靠。蘋果掌控推送服務器和OS。
3.更省電。
4.讓整個系統的體驗更統一和簡單。
不會出現殺后臺這種腦殘事(不用大量Apps/Apps的服務為了推送掛后臺),也不會出現Apps被殺就收不到推送這種腦殘事(早一點的新浪微博Android版仍然如此)。
5.開發容易。當然,開發者還是要做些事情,比如維護個服務器什么的:http://www.ifanr.com/3979。但是復雜度無疑降低很多了。
Android的推送
Apps掛后臺一直是Android引以為豪的特性(雖然我真的不知道是好處多還是壞處多),大家掛后臺等待推送就成為技術選擇。當然,Google事后也提供類似蘋果的推送方式了,倒也談不上抄襲,畢竟蘋果的整個技術實現也沒有什么特別創新之處。
用戶的電池?
Apps的開發者不會站在系統層面考慮的。他會假設其他Apps沒有那么"不自覺"。而Google不強制的結果就是:沒人真正為用戶的電池負責。
但是,Google的方案也并非全是悲劇:也因為整個技術方案非強制,Android的Apps在接收到推送后的表現更為靈活。
像Line的Android版本可以在推送通知的Popup上直接回復,iOS就需要越獄才能做到了。
最后的話
強制和封閉,有時候并非壞事。他意味著做出這個決定的人,要為此負責。所以,如果說蘋果的推送方案有何創新?
我以為是超越技術,不惜讓公司承擔更多風險和責任的解決方案(類似的還有BB的專用網絡,Kindle的全球3G)。個人相信,擔負起這些"額外"的責任,是值得的......只要是為了用戶。
PS:勇于承擔責任的公司也更像個可靠的成年人,而不是一個隨意胡鬧的孩子。
鄭紫陽,表演時不知應該望向邊。
51票,來自周文杰、閑云野鶴、謝浩然更多
iOS系統的推送(APNS,即ApplePushNotificationService)依托一個或幾個系統常駐進程運作,是全局的(接管所有應用的消息推送),所以可看作是獨立于應用之外,而且是設備和蘋果服務器之間的通訊,而非應用的提供商服務器。
你的例子里面,騰訊QQ的服務器(Provider)會給蘋果公司對應的服務器(APNs)發出通知,然后再中轉傳送到你的設備(Devices)之上。當你接收到通知,打開應用,才開始從騰訊服務器接收數據,跟你之前看到通知里內容一樣,但卻是經由兩個不同的通道而來。
而Android就不同,更像是傳統桌面電腦系統做法。每個需要后臺推送的應用有各自的單獨后臺進程,才能和各自的服務器通訊,交換數據。另外其實Android也有類似APNS的GCM(GoogleCloudMessage),屬于開發者可選,非強制。(更多請看本回答評論區里面@BillCheng的補充)
所以你大概看出來區別,iOS的消息推送機制面世之時是一種全新的解決方案(堪稱平臺中的平臺),應用本身不能有常駐的后臺進程,系統的開銷少,內存使用更少,電量也更少(把更多的運算和資源開銷放在云端,非設備端)。而Android的特點,雖然開銷大,優點是更穩定快速,但不明顯。
更多請閱開發文檔:ApplePushNotificationService(APNs)|
這就是APNs的邏輯所在:iOS自己做個長駐后臺保持連接。所有應用,有必要(申請)并且被允許(用戶可以改設置)的話,可以通過APNs中轉到達用戶。這樣就完善了!
有可能很多人沒有真正地體會到iOS不允許后臺應用的好處。我是Android開發人員,Android手機上一般只保留幾個常用的應用,不常用就卸載。但是我的iPhone/iPad上則是,除非空間不足,一般不會刪除應用。
Android就像Windows,你要真的很費心去維護:有軟件在干背后干壞事么?設備又給拖慢了,要清理。要考慮殺毒了......
Android因為后臺可以長駐,尤其是國內的Android的手機上Google自家的推送服務GCM處于基本不可用的狀態。所以,各App各顯神通。聊天類應用的話,大多數直接借用XMPP規范里的一些成果。少量如微信有IM底子的,自己開發協議。這些在實現原理上與APNs/GCM沒有本質的區別,但有一定的技術門檻。而大多數普遍應用,要使用推送的話,則使用輪詢的方式簡單實現。
其實,國外如UrbanAirship自己實現了Android上的第三方提供的推送平臺。近期國內如極光推送也實現了第三方的推送平臺(技術與微信、GCM、APNs類似)。理論上,如果一個Android設備上多款應用都使用極光推送這種第三方推送平臺的話,也可以如APNs一樣達到節省電量、流量消耗的效果。
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請
點擊舉報
。
打開APP,閱讀全文并永久保存
查看更多類似文章
猜你喜歡
類似文章
Android 手機越用越卡?我們可能真的錯怪它了
Android與iOS系統的消息推送機制
純干貨!教你如何讓安卓手機像iPhone一樣流暢和爽滑
谷歌Play功能強大到難以想象,可惜國內安卓手機用不了
認識MQTT通信協議
Android終極調教指南:綠色守護的實現原理與超詳細設置
更多類似文章 >>
生活服務
首頁
萬象
文化
人生
生活
健康
教育
職場
理財
娛樂
藝術
上網
留言交流
回頂部
聯系我們
分享
收藏
點擊這里,查看已保存的文章
導長圖
關注
一鍵復制
下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!
聯系客服
微信登錄中...
請勿關閉此頁面
先別劃走!
送你5元優惠券,購買VIP限時立減!
5
元
優惠券
優惠券還有
10:00
過期
馬上使用
×
主站蜘蛛池模板:
渝北区
|
拜城县
|
博客
|
西盟
|
游戏
|
龙山县
|
永丰县
|
吉安市
|
临汾市
|
定襄县
|
清水县
|
建阳市
|
广河县
|
龙海市
|
清苑县
|
肥城市
|
石柱
|
宿州市
|
桑日县
|
将乐县
|
白河县
|
吉林省
|
云安县
|
富蕴县
|
皮山县
|
榆社县
|
普宁市
|
乐至县
|
囊谦县
|
武强县
|
响水县
|
阳春市
|
南投市
|
苏尼特左旗
|
喜德县
|
西乡县
|
疏附县
|
本溪
|
克东县
|
奉新县
|
东港市
|