最近在網上查了關於不少Android消息推送的資料,其中主要有四種方法。html
1) 使用GCM服務(Google Cloud Messaging) 2) 使用XMPP協議(Openfire + Spark + Smack) 3) 使用MQTT協議 4) 使用HTTP輪循方式java
以上這四種方法的優缺點你們均可以到網上搜到,這裏提供一個參考的鏈接:http://blog.csdn.net/shagoo/article/details/7899466 在這裏我將使用GCM服務(Google Cloud Messaging)來實現Android消息的推送。 注:本人已實現該推送功能,不過有些限制條件。android
Google Cloud Messaging推送消息流程:這裏我就稍微提下,咱們從本身的服務器上發送消息到google的服務器上,在經過google的服務器推送出去,具體的實現細節我也不深究了,也許有人就會問爲何要經過google的服務器推送呢,直接從本身的服務器上推送過去就行了;在此以前我也考慮過,但是中間有太多的實現細節,說實話樓主也不是很懂,因此也就妥協了.....web
實現該推送功能的必備條件: 1)你的SDK須要從SDK Manager裏安裝Google Cloud Messaging for Android Library,安裝步驟:啓動SDK Manager->Extras->勾選Google Cloud Messaging for Android Library這一項,而後安裝就能夠了。 2)你用來調試的模擬器或是真機必須支持Google APIs,好比說你用模擬器調試的話,在新建模擬器的時候「target」這一項要選擇Google APIs,版本要高於2.2。 3)gcm.jar文件,等你執行完第一步的時候,你就能夠在你的Android SDK目錄下的extras\google\gcm\samples\gcm-demo-client\libs目錄裏找到這個文件,把它複製到你的項目的libs目錄下,並添加路徑。 4)你的模擬器或是真機必須設置而且登入一個google帳戶,好比你在調試的時候出現ACCOUNT_MISSING錯誤提示,說明就是沒有登入google的賬號。 5)你的耐心。。。。。。 6)若是前面五點你都具有了,請往下看.......編程
下面我將一一介紹我實現的步驟: 1. 註冊用戶,獲得Project Number和APP key,Project Number就是咱們在後面編程時候所要用到的SENDER_ID 。開啓Google Cloud Messaging for Chrome服務。瀏覽器
a) 註冊完後點擊左側的Overview後,咱們在右邊就能夠看到Project Number,如上圖。服務器
b) 一樣,咱們點擊左邊的API Access就能夠看到API key,如上圖紅線的地方;若是你沒有API Key,你能夠點擊紅線部分的「Create new Server key...」來建立一個API key。app
c) 其次咱們要開啓Google Cloud Messaging for Android服務,點擊頁面左邊的「Services」,在右邊的下面咱們就能夠找到Google Cloud Messaging for Android項,開啓它。以下圖。編輯器
2.如今咱們就要創建本身的服務器了(PS:別聽到服務器就懼怕,這裏只是創建一個小小的網站式服務器)。官網有兩種方式簡歷服務器,我採用的是App Engine for Java這個方法,具體能夠參考:http://developer.android.com/google/gcm/demo.html。 這裏我講講我是怎用App Engine for Java創建發送消息的服務器的。APP Engine for Java的下載地址: App Engine for Java a)在你安裝Google Cloud Messaging for Android Library後,你的Android SDK目錄下有一個extras/google/目錄,其中包含的目錄有gcm-client, gcm-server, samples/gcm-demo-client, samples/gcm-demo-server和samples/gcm-demo-appengine. b)進入samples/gcm-demo-appengine/src/com/google/android/gcm/demo/server/這個目錄,找到ApiKeyInitializer.java這個文件,用文本編輯器打開,找到replace_this_text_by_your_Simple_API_Access_key這句話,並用你的註冊時獲得的APP key替換它,保存。 c)打開dos窗口,開始->運行,在dos窗口下進入 samples/gcm-demo-appengine目錄,在dos中輸入ant -Dsdk.dir=D:\appengine-java-sdk runserver -Dserver.host=192.168.1.10 注:這裏的-Dsdk.dir=D:\appengine-java-sdk要根據本身的實際狀況來,-Dsdk.dir就是你存放appengine-java-sdk的目錄,而-Dserver.host就是你本身電腦的IP。 d)以上步驟你都沒出錯的話,就能夠打開瀏覽器輸入:http://192.168.1.10:8080/home若是出現的界面和一下的圖片同樣說明你已經配置成功,能夠開始寫Android的客戶端了。oop