所了解的第三方推送引擎有極光推送(JPush), 百度, 個推,騰訊信鴿等。根據了解,最專業的據說是極光推送,先看極光推送。
一、極光推送
配置:
1.JPush網站創建相應包名的應用,然后網站會生成自動配置好的demo.
2.創建完畢后點擊相應應用的"下載Android Example",導入Eclipse運行
3.網站管理台發送消息,測試成功
經過測試,極光推送的文檔是很完善的,而且集成很容易,快速,而且有很多合作商家,同類引擎中應該可以考慮使用。
極光的合作小伙伴:
跟騰訊信鴿、百度雲推送相比是最多的。
百度雲推送的經典案例:
同時安裝兩個JPush引擎的軟件測試完全正常,但是后台運行的service數目卻是線性增加的,也就是有10個用了JPush的應用就會有10個service在運行,下圖是測試分別運行1個和2個不同JPush應用的后台程序截圖:
IOS平台的推送服務之所以工作的很好,是因為每一台手機僅僅保持一個與服務器之間的連接,從這點上來看,極光推送沒有做到。
極光推送,個推,騰訊信鴿主要功能大體相似,沒有深入比較的必要,要選一個的話肯定選極光推送。
關於個推有人評論:
首先個推是個垃圾,有N多東西要配置,后台有4個服務要跑,Manifest里要配一些meta數據,命名是appid appkey appsecret....名字非常不專業,再看看個推配置的幾個service和broadcastreceiver,名字都是sdk.download.**打頭的,命名相當不規范。
還有,新浪微博官方客戶端好像用的就是個推,還有他的微友好像也用的是,好像新浪和個信有什么關系。
騰訊信鴿:http://xg.qq.com/
騰訊信鴿測試通過,未做深入比較探討,截圖中運行的XGPushDemoV2就是騰訊信鴿的服務。
評論2;之前一個項目用,從個推否掉以后,看極光文檔最專業就用了,基本都還不錯,就是偶爾高峰期,連接服務器特別慢,HTTP請求基本3-4秒才返回,擔心量大了出問題,就換了百度。
二、百度雲推送
http://developer.baidu.com/cloud/push
單數說一下百度是因為百度雲推送特意指出了其單通道的特點:單播消息推送,開發者可以向應用的特定終端或特定用戶推送消息。特定終端既是安裝了某應用的一台具體的設備。特定用戶可能有多個終端,應用在給特定用戶發送消息時,他的多個終端都可以收到消息。單一終端多個應用共享一個服務進程和一條 TCP 長連接,從而有效降低手機的耗電量和數據流量。
個人使用經驗,經常手機裝幾個軟件后即使什么都不開也會卡,運行慢,因此不得不卸掉幾個,因此共享一個服務進程的特點值得考慮一下。
另外,百度還有個測試中的新功能:基於地理位置的推送(或"LBS推送"),有了LBS推送,開發者可以根據用戶所在的地理位置,有針對性的推送消息,更好的契合用戶的信息消費需求。比如,向全北京的用戶推送一條暴雨預警通知,向上海的用戶推送地鐵故障信息,等。
LBS推送是在現有的三種推送模式上的增強,無論是推送通知,透傳消息,還是富媒體消息,都可以加上LBS定向這個選項。目前支持省、直轄市、市、區級別的行政區域,后續會增加商圈及自定義地理圍欄等功能(僅限Android平台)。
百度的后台管理相當難用,花了半個小時沒搞懂怎么創建應用,而且文檔跟管理台還是不匹配的,提示的操作找不到:
最后換IE瀏覽器才看到東西(萬能的chrome竟然打不開百度推送的管理頁面)
點擊快速實例,下載設置好的應用demo,導入Eclipse,運行,安裝:
默認會彈出百度賬號的登錄頁面,注釋掉LoginActivity的跳轉后就不會出現了。
測試安裝1個和2個百度推送應用后后台運行截圖分別如下:
點開后進程信息如下:
注意第二張截圖中通知欄里的兩個百度推送圖標,是分別給兩個不同的應該發送的通知。只有第一個運行的應用的process和service運行,而且兩個應用都能收到推送的通知,確實共用了一個推送服務。(截圖中有意思的是百度地圖竟然沒有使用自家的推送服務)
而且卸載掉第一個app后第二個app的推送服務會自動啟動:
然后再安裝下百度提到的經典案例,看看后台的服務進程,以糗事百科為例。
先安裝BaiduPushDemo2,再安裝糗事百科:
截圖1可以看出仍然啟動了一個服務,截圖2是點開該服務后的信息,名字為:VersionCheckService,版本檢查服務(話說如果這個服務真的只是檢查版本的功能的話那這個程序太二了),然后卸載掉先安裝的BaiduPushDemo2,在看一下后台服務運行情況,仍然糗事百科的1個process和1個service。
先運行糗事百科,再運行PushDemo1,會發現PushDemo1的推送服務完全沒有啟動,后台只有糗事百科的推送服務:
但是PushDemo1的消息第一次發送時過了5分鍾收到,不知道是服務器慢了還是中間我觸發了某個東西才能收到,后來發送的都很快。
安裝糗事百科新版本(2.7)后,無論先安裝PushDemo還是先安裝糗事百科,只有糗事百科的service在運行,而且PushDemo可以收到通知,也就是糗事百科的push service完全替代了PushDemo的push service。
以上分析可以得出結論,百度雲推送確實實現了單通道的特點,至於是否真的能減少耗電和內存消耗,暫時沒有明確的標准可以來衡量和探討。
富媒體消息方面,百度的測試通過,而極光推送的是收費的,但是從這方面來說百度將來關閉推送服務的可能性要比極光推送大一些。
三、極光推送vs百度推送
1、后台管理頁面上,顯然是極光推送的好用
2、極光支持按Alias和Tag發送,可以定時發送,而百度推送僅支持按Tag發送;
Tag:發給特定用戶群,多個。
Alias:發給特定用戶,一個。
3、極光推送可以記錄API調用發送的消息,而百度僅可以記錄通過界面發送的消息;
4、統計同表方面,有細小的不同,但總體功能區別不大,百度終端統計較詳細一些(包括設備型號、系統版本、分辨率、運營商、聯網方式、應用版本、渠道分布);
百度sdk可以集成的服務:
總體上來看,極光主要關注的是消息的推送,而百度還關注app運行的整個環境,考慮到數據分析的需求,推薦使用百度推送。