android熱門訊息推送橫向測評![轉],android橫向
關於這個話題,已經不是什麼新鮮事了。對於大多數中小型公司一般都是選擇第三方的服務來實現。但是現在已經有很多提供推送服務的公司和產品,如何選擇一個適合自己項目的服務呢?它們之間都有什麼差別?在此為大家做了一個簡單的調研,希望可以幫到大家。
簡介:
手機推送服務是指伺服器定向將資訊即時送達手機的服務。推送服務,主要就是將最新資訊和最近的活動資訊及時推送給使用者,與使用者保持互動,從而提高使用者粘性,提升使用者體驗。例如,,新浪微博等APP的通知欄訊息。
原理:
1)輪詢(Pull)方式:應用程式應當階段性的與伺服器進行串連並查詢是否有新的訊息到達,你必須自己實現與伺服器之間的通訊,例如訊息排隊等。而且你還要考慮輪詢的頻率,如果太慢可能導致某些訊息的延遲,如果太快,則會大量消耗網路頻寬和電池。
2)SMS(Push)方式:在Android平台上,你可以通過攔截SMS訊息並且解析訊息內容來瞭解伺服器的意圖,並擷取其顯示內容進行處理。這是一個不錯的想法,我就見過採用這個方案的應用程式。這個方案的好處是,可以實現完全的即時操作。但是問題是這個方案的成本相對比較高,我們需要向移動公司繳納相應的費用。我們目前很難找到免費的短訊息發送網關來實現這種方案。
3)持久串連(Push)方式:這個方案可以解決由輪詢帶來的效能問題,但是還是會消耗手機的電池。IOS平台的推送服務之所以工作的很好,是因為每一台手機僅僅保持一個與伺服器之間的串連,事實上C2DM也是這麼工作的。不過剛才也講了,這個方案存在著很多的不足之處,就是我們很難在手機上實現一個可靠的服務,目前也無法與IOS平台的推送功能相比。
瞭解了原理之後對於我們這樣的中小型公司開發一個自己的推送服務還是比較高成本的,時間成本也比較高。為了快速開發,我們一般會選擇第三方推送服務。
國內常用解決方案:
一、MQTT協議實現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應用程式中。
-------------------------------------------------
二、RSMB實現推送功能。
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將訊息發送給RSMB的PHP指令碼。
-------------------------------------------------
三、XMPP協議實現Android推送功能
XMPP(可擴充通訊和表示協議)是基於可延伸標記語言 (XML)(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、靈活的推送目標,可以向具體的單個使用者推送。
2、支援富媒體推送
3、比較穩定,效率較高
-----------------------------------------------------
百度雲推送
<ignore_js_op>百度雲推送(Push)是百度開放雲向開發人員提供的訊息推送服務;通過利用雲端與用戶端之間建立穩定、可靠的長串連來為開發人員提供向用戶端應用推送即時Message Service。百度雲推送服務支援推送三種類型的訊息:通知、透傳訊息及富媒體;支援向所有使用者或根據標籤分類向特定使用者群體推送訊息。
功能特色:1、多個APP合并一條長串連,共用鏈路。
2、推送策略中除了使用者分組和標籤還有位置的區分(定位功能)。
3、百度賬戶系統支援(百度賬戶的登入)
4、SDK體積小
5、支援富媒體推送
------------------------------------------------------
友盟推送
<ignore_js_op>友盟是中國最專業、最有資料凝聚力的移動開發人員服務平台,於2010年4月在北京建立。友盟以行動裝置 App統計分析為產品起點,發展成為綜合性的移動開發人員服務平台。友盟推送是一款幫你將應用的內容更新或活動通知主動推送給終端使用者,讓使用者第一時間擷取到相關資訊,有效提升使用者活躍度和留存率的一種服務。
功能特色:1、多個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累加式更新 |
百度賬戶系統登入 |
|