陳三清,殷 鵬
(攀枝花學院 數學與計算機學院,四川 攀枝花 617000)
基于Android平臺的推送技術應用設計與實現
陳三清,殷 鵬
(攀枝花學院 數學與計算機學院,四川 攀枝花 617000)
推送技術在移動平臺上有著非常重要的應用,文章首先介紹了推送技術的概念、推送方式及常見推送框架;針對高校群體手機使用非常普及的情況,提出了基于第三方平臺的APP設計方案和流程設計,重點闡述了各模塊的功能設計,實現了推送技術的應用。
消息推送;Android;推送框架;好友聊天
隨著4G時代的到來,智能手機、平板電腦等各種智能設備在大眾日常生活中普及,人們可以方便地利用高速的移動網絡或無線網絡獲得各種各樣的消息和信息;如何在爆炸式、海量的信息中讓用戶獲得感興趣、有價值的信息,越來越多的軟件應用服務商不再被動地等待用戶主動請求信息服務,而是主動地向用戶推送消息,提供用戶應用的存留率;一般來說,應用服務商在進行消息推送時會根據用戶的使用特征、興趣、喜好等來判斷用戶希望接收到的信息,然后將分析后的消息推送給用戶,使用戶獲取盡可能有價值的消息。
推送技術(Push Technology,PT)是由服務端向客戶端主動發送消息的一種技術。它不用客戶發出請求,而是把信息自動地傳送給客戶,減少客戶使用網絡搜索信息的時間,主動為客戶提供有價值的信息[1]。目前消息推送方式主要有輪詢(pull)、SMS(push)、TCP/IP持久的長連接(push)3種方式[2],成熟的消息推送實現方案中主要基于兩種通信協議:可擴展通訊和表示協議(Extensible Messaging and Presence Protocol,XMPP)和消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT),基于XMPP協議的成熟的實現框架有Openfire和AndroidPn;Google提供了C2DM服務[3],實質上也是基于XMPP協議的;MQTT是由IBM公司提供的,一個輕量級的消息發布/訂閱協議,它是實現基于手機客戶端的消息推動服務器的理想解決方案。
目前有很多第三方網站提供免費的消息推送服務及開發框架,如百度云推送、個推推送、友盟推送、極光推送等[4],這些網站提供服務器和應用開發的接口,開發者只需在應用中添加開發組件,就可以免費使用消息推送服務,這對于對推送消息沒有很苛刻要求的中小規模的企業或單位來說,搭建這樣的小型應用是非常經濟實惠的。針對目前高校教師學生群體使用手機非常普遍這一情況,本文采用極光推送平臺搭建基于Android平臺的消息推送系統,設計一款具有消息推送和聊天功能的軟件,為高校教師學生群體提供免費的消息推送服務。
基于手機平臺的消息推送軟件,系統架構一般采用C/S模式,服務器的提供數據處理、消息推送服務,客戶端(手機端)用來接收消息,當然也可以向服務器端發送服務請求。由于極光推送平臺免費提供服務器及推送服務,還提供基于客戶端的軟件開發框架,因而基于Android平臺的消息推送方案設計只需關注APP端的功能設計及實現。
2.1 APP功能設計
根據軟件實際使用需要和設計要求,手機客戶端總體模塊功能劃分及定義如圖1所示。(1)“通知”模塊:主要用接收服務器推送過來的消息,以列表的形式展現出來;(2)“信息”模塊:主要用于好友之間進行實時在線聊天,可以接收好友發來的信息,同時發送信息;(3)“好友”模塊:用于實現好友邀請、建好友群組、好友列表等功能;(4)“設置”模塊:用于實現與應用相關信息的更改和保存等功能。

圖1 軟件功能模塊
2.2 流程設計
基于極光推送服務的APP軟件,必須要向極光服務平臺注冊后登錄才能使用此軟件,因此在APP軟件要設計注冊/登錄模塊,使用流程如圖2所示。

圖2 注冊/登錄模塊
3.1 準備工作
在完成界面設計后,進行軟件編碼時,需完成以下工作:
(1)注冊成為極光開發人員,獲得Appkey,下載極光IM的SDK。因為極光IM已經包含了即時通信和消息推送,所以不用再下載極光JPush的SDK。將jar包導入AndroidStudio,并且添加依賴。
(2)在Application進行全局聲明。對極光的推送和即時聊天進行初始化。主要代碼如下:

(3)在AndroidManifest.xml中配置權限,如網絡訪問權限、SD卡的讀寫權限、JPush開發必要的權限及接收推送信息的Receiver組件。
3.2 關鍵實現
3.2.1 注冊/登錄模塊
注冊/登錄功能的實現主要是通過JMessageClient類實現的,其register方法將注冊名和密碼發送到后端服務器,通過判斷返回代碼的值獲知注冊是否成功,方法如下:

登錄是通過的JMessageClient類的login方法實現,將用戶名和密碼發送到后端服務器驗證,根據返回結果決定是否進入主界面,方法如下:

實現界面如圖3—4所示。

圖3 注冊界面

圖4 登錄界面
3.2.2 通知模塊
通知模塊用來處理服務器推送過來的信息,解析出Intent的中包含的通知信息、自定義信息,以及定義用戶點擊了通知信息后采取的動作。
實現接收消息的類,繼承自BroadCastReceive主要代碼如下:


“通知”界面和詳情如圖5—6所示。

圖5 “通知”界面

圖6 “通知”詳情
3.2.3 消息模塊
消息模塊的功能主要是用于好友之間在線聊天,主要分為消息的接收和發送。消息的接收和發送的文件類型主要分為文本類型、圖片類型、語音類型。在接收到消息之后,對消息進行解析,判斷消息類型是哪一種類型,從而進行不同的消息本地存儲。
接收好友發送的消息:


發送消息界面如圖7—8所示。

圖7 發送消息界面

圖8 發送消息后界面
3.2.4 好友模塊
好友之間進行在線聊天之前,必須要添加好友,發送好友邀請,其主要實現如下:

此外,該模塊還可以展現好友列表,在好友之間建立群組,實現效果如下圖9所示。當接收到好友發送過來的消息時,在消息界面進行顯示。當用戶還未點擊進入查看消息數量時,消息數量會不斷地累加。并且以小紅點的形式來顯示,實現界面如圖10所示。
推送技術是當前最新的計算機信息技術,也是非常熱門的計算機應用技術,在移動設備上有著非常重要的應用,現在的智能手機都支持消息推送,故通過使用推送技術,可向廣大的手機用戶主動推送用戶感興趣的、特定的信息服務,從而提高用戶了解、閱讀信息的效率;針對高等學校教師、學生使用手機普及率非常高的情況,本文設計了一款基于Android手機的推送通信軟件,免費為廣大師生信息推送服務,具有一定的應用價值。

圖9 好友列表界面

圖10 接收消息界面
[1]李丹鋒,尹丹云,陳瀟瀟.基于Android平臺的推送技術在移動OA中的應用[J].制造業自動化,2014(12):17-18.
[2]許金喜,張新有.Android平臺基于MQTT協議的推送機制[J].計算機系統應用,2015(1):185-190.
[3]鄒海,李強,邱慧麗.基于AndroidC2DM服務的云端推送研究與實現[J].計算機技術與發展,2012(7):29-32.
[4]汪海占,邸萌,黃祥林.基于XMPP協議的Android消息推送設計與實現[J].科技廣場,2015(2):40-46.
Design and implementation of push technology application based on Android platform
Chen Sanqing, Yin Peng
(Mathematics and Computer School of Panzhihua University, Panzhihua 617000, China)
The push technology has a very important application in the mobile platform. This paper first introduces the concept, the push approach and common push framework. In view of the groups of college students using mobile phone is very popular, the paper put forward the APP design scheme and the process design based on the third party platform, focuses on the function design of each module,realizes the application of push technology.
message push; Android; push framework; chat with friends
攀枝花學院省級大學生創新創業訓練計劃項目;項目編號:2015cxcy055。
陳三清(1980— ),男,湖北廣水,碩士,講師;研究方向:移動互聯網技術與應用。