欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android幾種消息推送方案總結

 更新時間:2017年01月03日 09:44:24   作者:Joanna.Yan  
本文主要總結下Android平臺下幾種推送方案的基本情況以及優(yōu)缺點,具有一定的參考作用,下面跟著小編一起來看下吧

首先看一張國內Top500 Android應用中它們用到的第三方推送以及所占數量:

現在總結下Android平臺下幾種推送方案的基本情況以及優(yōu)缺點:

一、使用GCM(Google Cloude Messaging)

Android自帶的推送GCM可以幫助開發(fā)人員給他們的Android應用程序發(fā)送數據。它是一個輕量級的消息,告訴Android應用程序有新的數據要從服務器獲取,或者它可能是一個消息,其中包含了4KB的payload data(像即時通訊這類應用程序可以直接使用該payload消息)。GCM服務處理排隊的消息,并把消息傳遞到目標設備上運行的Android應用程序。

優(yōu)點:Google提供的服務、原生、簡單,無需實現和部署服務端。

缺點:1.要求Android 2.2以上,對于不少2.2以前的系統(tǒng)沒法推送;

     2.國內服務不穩(wěn)定。而且不少國內的終端廠商紛紛把Google的服務去掉,替換上自己的。

     3.需要用戶綁定Google賬號,但不少國內用戶沒有Google賬號。

二、使用XMPP協(xié)議(Openfire+Spark+Smark)

XMPP是一種基于XML的協(xié)議,它繼承了在XML環(huán)境中靈活的發(fā)展性,有很強的可擴展性。包括上面講的GCM服務器底層也是采用XMPP協(xié)議封裝的。

優(yōu)點:協(xié)議成熟、強大、可擴展性強、目前主要應用于許多聊天系統(tǒng)中,且已有開源的Java版的開發(fā)實例androidpn。

缺點:協(xié)議較復雜、冗余(基于XML)、費流量、費電,部署硬件成本高。

而androidpn(Android Push Notification)就是基于 XMPP 開源組件的一套整合方案,服務端基于Openfire、客戶端基于Smack。到AndroidPN項目主頁( http://sourceforge.net/projects/androidpn/ ) 下載2個文件: androidpn-server-0.5.0-bin.zip 和 androidpn-client-0.5.0.zip 分別是服務器和客戶端的代碼。詳細的實現方式網上有不少文章。

  1.androidpn服務端重啟后客戶端不會重連,這個非常悲劇

  2.由于服務器不保存消息,造成了如果客戶端當前離線就收不到消息

  3.androidpn發(fā)送完消息就不管了,所以沒有消息回執(zhí)報表之類,造成沒法做應用后續(xù)的數據分析用戶體驗的改善,這對于企業(yè)級的應用是個致命傷。

XMPP協(xié)議比較費電費流量,這個對當前智能機的消耗太大,在窄帶網絡和不穩(wěn)定的(手機)網絡都不是最優(yōu)的選擇。但總體來說,XMPP協(xié)議還是比較成熟的。

三、使用MQTT協(xié)議(想了解更多可以看http://mqtt.org/

輕量級的、基于代理的“發(fā)布/訂閱”模式的消息傳輸協(xié)議。

優(yōu)點:協(xié)議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業(yè)領域(參考: http://mqtt.org/software),且已有C++版的服務端組件rsmb。

缺點:不夠成熟、實現較復雜、服務端組件rsmb不開源,部署硬件成本較高。

四、HTTP輪循方式

定時向HTTP服務端接口(Web Service API)獲取最新消息。

優(yōu)點:實現簡單、可控性強,部署硬件成本低。

缺點:實時性差。

五、采用第三方服務

就是前面介紹的第三方推送,客戶端只需要導入第三方提供的lib庫,有第三方監(jiān)理長連接,負責消息的接收/發(fā)送。同時對消息都有比較詳細的報表數據,可以用于做數據分析、挖掘,改善用戶體驗。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關文章

  • Android深入淺出之Binder機制

    Android深入淺出之Binder機制

    本文主要介紹 Android深入淺出之Binder機制,這里整理了詳細的Binder機制資料,研究Android源碼的朋友可以看下,以便了解Android 通信知識
    2016-08-08
  • 關于androidstuio導入系統(tǒng)源碼的問題

    關于androidstuio導入系統(tǒng)源碼的問題

    小編最近在做系統(tǒng)源碼導出來的小項目,在導入androidstudio過程中遇到過一些問題,本文以Schedule power on off為例給大家詳細介紹,需要的朋友參考下吧
    2021-06-06
  • Android自定義控件之日期選擇控件使用詳解

    Android自定義控件之日期選擇控件使用詳解

    這篇文章主要為大家詳細介紹了Android自定義控件之日期選擇控件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • android開發(fā)教程之listview使用方法

    android開發(fā)教程之listview使用方法

    這篇文章主要介紹了android的listview使用方法,需要的朋友可以參考下
    2014-02-02
  • java從輸入流中獲取數據并返回字節(jié)數組示例

    java從輸入流中獲取數據并返回字節(jié)數組示例

    這篇文章主要介紹了java從輸入流中獲取數據并以字節(jié)數組返回,這是一個常用的方法,以后可以直接拿來用。這種輸入流可以來自Android本地,也可以來自網絡
    2014-01-01
  • 一篇文章弄懂kotlin的擴展方法

    一篇文章弄懂kotlin的擴展方法

    這篇文章主要給大家介紹了如何通過一篇文章弄懂kotlin的擴展方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用kotlin具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • Android開發(fā)之DialogFragment用法實例總結

    Android開發(fā)之DialogFragment用法實例總結

    這篇文章主要介紹了Android開發(fā)之DialogFragment用法,結合實例形式總結分析了Android使用DialogFragment代替Dialog功能的相關使用技巧與注意事項,需要的朋友可以參考下
    2017-11-11
  • OpenGL ES透視投影實現方法(四)

    OpenGL ES透視投影實現方法(四)

    這篇文章主要為大家詳細介紹了OpenGL ES透視投影的實現方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android實現帶指示點的自動輪播無限循環(huán)效果

    Android實現帶指示點的自動輪播無限循環(huán)效果

    這篇文章主要為大家詳細介紹了Android實現帶指示點的自動輪播無限循環(huán)效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android 多渠道打包進階版

    Android 多渠道打包進階版

    上篇文章更了Android 多渠道打包,這篇文章將做一個后續(xù)繼續(xù)更Android 多渠道打包進階版,上次意未盡的朋友可以繼續(xù)啦,第一次點進來的朋友也可以看上次文章
    2021-09-09

最新評論