由于公司之前使用的手機客戶端推送服務是極光推送,給公司造成一年幾十萬的服務費,因此,公司決定開發(fā)自己的一套推送服務,初步的技術選型是:
成都創(chuàng)新互聯(lián)公司專注于隆昌網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供隆昌營銷型網(wǎng)站建設,隆昌網(wǎng)站制作、隆昌網(wǎng)頁設計、隆昌網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務,打造隆昌網(wǎng)絡公司原創(chuàng)品牌,更為您提供隆昌網(wǎng)站排名全網(wǎng)營銷落地服務。
服務端:netty4
關于netty框架在我的下面的博客里面我整理了相關資料,本來還有一些關于mina的由于時間原因暫時沒整理出來。
為了便于自己測試,自己動手實現(xiàn)了如何使用netty完成服務端消息推送以及在Android客戶端如何將接受到的信息顯示在通知欄,整體思路大概是這樣的:
服務端使用netty框架開啟基于TCP監(jiān)聽服務。
客戶端發(fā)起TCP連接(不關閉,長連接),并實現(xiàn)心跳包,斷開重連機制。
服務端對長連接進行管理(接受心跳包,處理異常連接),并推送消息。
客戶端監(jiān)聽到消息后顯示在通知欄,查看消息時客戶端會將數(shù)據(jù)提交到服務端進行統(tǒng)計。
服務端對自己來說實現(xiàn)起來比較簡單,但是由于自己之前沒有搞過android這塊,不得不去補一些有關android的知識,我是這么分析的:
首先需要知道android是通過什么機制通知系統(tǒng)通知欄顯示東西的。
其次要了解的是android組件的組成以及各個組件的通信方式。
OK!有了基本的思路之后就開始在網(wǎng)上找資料了。
android是通過NotificationManager 來異步通知通知系統(tǒng)通知欄的,這里說的異步可能就決定了我在統(tǒng)計數(shù)據(jù)的時候有一種數(shù)據(jù)時統(tǒng)計不了的(用戶人為關閉了APP通知欄),在網(wǎng)上找了很多資料,又說要root權(quán)限又說android系統(tǒng)不會提供關掉通知欄的設置的(實際上我的小米手機上是有那個功能的)。但是我一開始的思路是這樣的,既然會提供手動關閉通知欄的系統(tǒng)功能,那么系統(tǒng)內(nèi)部應該廣播一下這個操作才合理一點啊,可惜的是沒有這個廣播。
關于android的組件大致可以分為四大類:
Activity:通常就是一個單獨的屏幕,它上面可以顯示一些控件也可以監(jiān)聽并處理用戶的事件做出 響應。
Service:一段長生命周期的,沒有用戶界面的程序,可以用來開發(fā)如監(jiān)控類程序。
Content Provider:內(nèi)容提供者,
BroadcastReceiver:廣播接收器。
他們的通信一般是使用intent來通信的,當然為了安全,里面都有各自的方式,重寫方法的時候就能拿到組件之間需要發(fā)送的信息了。
最后,由于上面的過程自己只花了一個下午的時間來搭建,android客戶端的代碼基本上都是百度搜到的,故就不把源碼貼出來了,不過自己總算是入門了,整體感覺還是蠻簡單的,操作的時候也沒遇到什么困難,把思路分享出來希望對一些沒找對學習方法的人有用。
分享標題:Android推送服務開發(fā)
網(wǎng)頁地址:http://aaarwkj.com/article26/isjhcg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、域名注冊、企業(yè)網(wǎng)站制作、定制開發(fā)、App設計、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)