android熱門消息推送橫向測評![轉]

關於這個話題,已經不是什麼新鮮事了。對於大多數中小型公司通常都是選擇第三方的服務來實現。可是如今已經有不少提供推送服務的公司和產品,如何選擇一個適合本身項目的服務呢?它們之間都有什麼差異?在此爲你們作了一個簡單的調研,但願能夠幫到你們。



簡介:
php

手機推送服務是指服務器定向將信息實時送達手機的服務。推送服務,主要就是將最新資訊和最近的活動信息及時推送給用戶,與用戶保持互動,從而提升用戶粘性,提高用戶體驗。例如,微信,新浪微博等APP的通知欄消息。



原理:
java

1)輪詢(Pull)方式:應用程序應當階段性的與服務器進行鏈接並查詢是否有新的消息到達,你必須本身實現與服務器之間的通訊,例如消息排隊等。並且你還要考慮輪詢的頻率,若是太慢可能致使某些消息的延遲,若是太快,則會大量消耗網絡帶寬和電池。





2SMS(Push)方式:在Android平臺上,你能夠經過攔截SMS消息而且解析消息內容來了解服務器的意圖,並獲取其顯示內容進行處理。這是一個不錯的想法,我就見過採用這個方案的應用程序。這個方案的好處是,能夠實現徹底的實時操做。可是問題是這個方案的成本相對比較高,咱們須要向移動公司繳納相應的費用。咱們目前很難找到免費的短消息發送網關來實現這種方案。





3)持久鏈接(Push)方式:這個方案能夠解決由輪詢帶來的性能問題,可是仍是會消耗手機的電池。IOS平臺的推送服務之因此工做的很好,是由於每一臺手機僅僅保持一個與服務器之間的鏈接,事實上C2DM也是這麼工做的。不過剛纔也講了,這個方案存在着不少的不足之處,就是咱們很難在手機上實現一個可靠的服務,目前也沒法與IOS平臺的推送功能相比。



瞭解了原理以後對於咱們這樣的中小型公司開發一個本身的推送服務仍是比較高成本的,時間成本也比較高。爲了快速開發,咱們通常會選擇第三方推送服務。




國內經常使用解決方案:


1、MQTT協議實現Android推送功能android

採用MQTT協議實現Android推送功能也是一種解決方案。MQTT是一個輕量級的消息發佈/訂閱協議,它是實現基於手機客戶端的消息推送服務器的理想解決方案。

 

  wmqtt.jar IBM提供的MQTT協議的實現。咱們能夠從這裏(https://github.com/tokudu/AndroidPushNotificationsDemo)下載該項目的實例代碼,而且能夠找到一個採用PHP書寫的服務器端實現(https://github.com/tokudu/PhpMQTTClient)。




  架構以下圖所示:

 

     <ignore_js_op>




wmqtt.jar IBM提供的MQTT協議的實現。咱們能夠從以下站點下載(http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24006006)它。咱們能夠將該jar包加入本身的Android應用程序中。


-------------------------------------------------
2、
RSMB實現推送功能。


git

  Really Small Message Broker (RSMB) ,他是一個簡單的MQTT代理,一樣由IBM提供,其查看地址是:http://www.alphaworks.ibm.com/tech/rsmb。缺省打開1883端口,應用程序當中,它負責接收來自服務器的消息並將其轉發給指定的移動設備。

 

 SAM是一個針對MQTT寫的PHP庫。咱們能夠從這個http://pecl.php.net/package/sam/download/0.2.0地址下載它.

 

send_mqtt.php是一個經過POST接收消息而且經過SAM將消息發送給RSMBPHP腳本。


-------------------------------------------------
3、
XMPP協議實現Android推送功能
github

XMPP(可擴展通信和表示協議)是基於可擴展標記語言(XML)的協議,它用於即時消息(IM)以及在線探測。這個協議可能最終容許因特網用戶向因特網上的其餘任何人發送即時消息。



androidpn是一個基於XMPP協議的java開源Android push notification實現。它包含了完整的客戶端和服務器端。

 

這是androidpn的項目主頁:http://sourceforge.net/projects/androidpn/

 

androidpn實現意圖以下圖所示:
<ignore_js_op>




上面的這些都是目前比較流行的解決辦法,可是都有必定的難度和實現成本。在這裏我主要介紹快速解決方案第三方平臺。



第三方平臺服務實現推送功能:
安全

進過調查,第三方推送服務有20多個。下面推薦了四個主流的推送平臺。



個推
服務器

<ignore_js_op>
個推是由國內個信互動網絡科技有限公司所推出的平臺,幫助企業的應用經過低成本互聯網通道進行消息推送,提供完善、高效、穩定的服務體系,解決了互聯網雲端到手機端的消息互通問題,依託於已有成熟的推送技術,創建更加穩定符合市場需求的標準化服務平臺。



功能特點:
1、穩定高效:單臺服務器併發支持200-400萬,業內領先;推送下發速率可達20/秒,消息到達率96%以上;多個APP合併一條長鏈接,共享鏈路。
2、個推不只能提供雲端到客戶端的推送服務,也能夠提供從客戶端上傳至雲端的服務,即推送消息鏈路支持上下行雙向通道,開發者與客戶端之間互動更便利。
3、支持增量更新:當開發者在個推後臺提交APP新版本時,個推可向用戶推送告知有新版本,用戶只需下載差量部分的文件,提高更新率與產品體驗。
4支持富媒體推送


---------------------------------------------------
極光推送
微信

<ignore_js_op>
極光推送,英文簡稱 JPush,是一個面向普通開發者開放的,部分免費的第三方消息推送服務。極光推送使得開發者能夠即時地向其應用程序的用戶推送通知或消息,與用戶保持互動,從而有效地提升留存率,提高用戶體驗。平臺提供整合了Android推送、iOS推送的統一推送服務。



功能特點:
1、靈活的推送目標,能夠向具體的單個用戶推送。

 

二、支持富媒體推送

 

3、比較穩定,效率較高


-----------------------------------------------------
百度雲推送
網絡

<ignore_js_op>
百度雲推送(Push)是百度開放雲向開發者提供的消息推送服務;經過利用雲端與客戶端之間創建穩定、可靠的長鏈接來爲開發者提供向客戶端應用推送實時消息服務。百度雲推送服務支持推送三種類型的消息:通知、透傳消息及富媒體;支持向全部用戶或根據標籤分類向特定用戶羣體推送消息。



功能特點:
1、多個APP合併一條長鏈接,共享鏈路。

 

二、推送策略中除了用戶分組和標籤還有位置的區分(定位功能)。

 

3、百度帳戶系統支持(百度帳戶的登陸)

 

四、SDK體積小

 

5、支持富媒體推送


------------------------------------------------------
友盟推送
架構

<ignore_js_op>
友盟是中國最專業、最有數據凝聚力的移動開發者服務平臺,於20104月在北京建立。友盟以移動應用統計分析爲產品起點,發展成爲綜合性的移動開發者服務平臺。友盟推送是一款幫你將應用的內容更新或活動通知主動推送給終端用戶,讓用戶第一時間獲取到相關信息,有效提高用戶活躍度和留存率的一種服務。



功能特點:
一、多個APP合併一條長鏈接,共享鏈路
2推送策略中除了用戶分組和標籤還有位置的區分(定位功能)。


--------------------------------------------------------
更多的推送平臺:





各大平臺對比:




 

平臺
個推
百度雲推送
極光推送
友盟推送
穩定性和到達率
單臺服務器併發支持200-400萬,推送下發速率可達20萬/秒
百度強大的服務器集羣,吞吐能力強
服務端先進技術架構,高併發可擴展性的雲服務
消息推送全部人時有延遲,不支持富媒體推送
電量和流量
多個APP合併一條長鏈接,共享鏈路。SDK特地針對手機優化,空載耗電每日15-50毫安,空載流量0.8-1.2M/月
單通道技術,多應用共享一個推送通道。
客戶端 SDK 採用自定義的協議保持長鏈接,電量、流量消耗都不多
多應用共享一個長鏈接、智能心跳等優化方案
安全性
數據加密
安全隔離技術
通常加密
通常加密
消息推送
推送通知
推送消息
推送富媒體
沒有LBS推送
推送通知
推送消息
推送富媒體
基於地理位置的推送(或「LBS推送」)
推送通知
推送消息
推送富媒體
沒有LBS推送
推送通知
推送消息
沒有富媒體
沒有LBS推送
後臺數據統計
數據報表支撐,智能化分析推送
提供推送信息和用戶行爲的統計
「推送報表」與「用戶統計報表」呈現推送的效果和應用發展趨勢。
提供推送信息和用戶行爲的統計
SDK接入難度/成本
中文文檔,技術支持
有中文文檔,技術支持
中文文檔,技術支持
中文文檔,技術支持
收費狀況
部分功能收費
免費
部分功能收費
免費
服務器端支持
支持Java,PHP,C# Python Node.js服務端
支持Java,PHP,C# Python Node.js服務端
支持Java,PHP,C# Python Node.js Ruby
服務端
支持Java,PHP Python 服務端
消息推送策略
廣播推送
標籤推送
別名推送
用戶分組
廣播推送
標籤推送
別名推送
用戶分組
地理區域劃分推送。
廣播推送
標籤推送
別名推送
用戶分組
廣播推送
標籤推送
別名推送
用戶分組
地理區域劃分推送。
案例
新浪微博,墨跡天氣,唱吧,PPTV,美圖秀秀等
糗事百科 Gif快手


珍愛網,超級課程表,美咖相機
暴風影音,南方週末,別踩白塊
額外功能
app增量更新
百度帳戶系統登陸
相關文章
相關標籤/搜索