Android下實現資訊推送

來源:互聯網
上載者:User

最近有幸負責參與開發公司的CMPP簡訊網關程式,採用的是Apache Mina架構實現。通過該項目對Socket通 信、長串連有了更深一步的理解,於是就想試試將Mina用到Android平台的資訊推送上。經過瞭解發現,目前 已經有不少成型的架構能夠實現Android平台的資訊推送,特別是AndroidPn。

平時我們開發手機客戶 端,都少不了要於伺服器互動,那麼當伺服器端有新的資料時,用戶端是怎麼知道的呢?一般可以採用如下兩 種方式來實現:

1)用戶端定期(每隔一段時間,輪詢)向伺服器發起請求,以檢測是否有新的資料。 如果輪詢的頻率太慢,可能導致擷取的資訊已經過時;如果輪詢的頻率過快會很耗電、耗手機流量;

2 )採用Android的廣播機制,攔截服務端發送的簡訊。即當伺服器端有新的資料時,伺服器向所有Android客戶 端傳送簡訊,用戶端基於廣播機制將簡訊攔截並通過手機用戶端應用呈現。該方案成本較高,需要向電信運營 商申請簡訊傳送埠。

以上兩種實現方式多少都存在著弊端,並不能真正滿足要求,那有沒有更好的 實現方式呢?當然有,那就是資訊推送。推送就意味著當有新的資料時,伺服器端會主動將資料“推”到客戶 端,而不需要用戶端不停地檢測。這裡就不再過多地對“資訊推送”進行解釋了,下面將直接通過一個 AndroidPn樣本來示範。

AndroidPn即Android Push Notification,它是Android平台的資訊推送架構 ,基於XMPP協議的Java實現,它包含了完整的伺服器端和用戶端程式。因此,我們不用開發一行代碼,就能體 驗到資訊推送,還在等什麼,馬上動手吧。AndroidPn架構的下載地址: http://sourceforge.net/projects/androidpn/files/,將以下檔案全部下載:

其中,androidpn-server是服務端程式,它包含可執行指令碼,能夠直接啟動運行;android-demoapp是示範 樣本,一會就直接用它來示範;androidpn-client是用戶端原始碼,你可以用它來研究androidpn的內部實現 。

第一步:啟動androidpn服務端程式。即點擊運行android-server-0.5.0\bin\run.bat。啟動完成後,可 以通過瀏覽器訪問到如下介面:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.