国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Socket的安卓端的虛擬短信發(fā)送框架研究與實現(xiàn)

2016-06-20 08:08:19蒲海洋徐舟李堯
2016年18期
關(guān)鍵詞:引言

蒲海洋++徐舟++李堯

摘要:手機作為世界上科學進步的產(chǎn)物,它的出現(xiàn),影響了全世界的人們生活方式。在這以手機作為媒介的背景下,隨之短信的出現(xiàn)也逐漸替代了以文字溝通為主的傳統(tǒng)信件。通過短信,可以達到實時存取且永久保存信息的功能。在這以網(wǎng)絡(luò)為主體的當前現(xiàn)狀下,為了節(jié)約通信費用,我們可以采用當前技術(shù)來實現(xiàn)模擬短信的功能。本文介紹了一種通過基于Socket的DDPUSH框架來實現(xiàn)在安卓端進行短信模擬發(fā)送與接收的功能。

關(guān)鍵詞:Android;Socket;虛擬短信;ddpush一、引言

手機短信由于其具有實時性與便捷性而被廣泛使用。手機短信創(chuàng)建于上上世紀八十年代晚期,用于配合GSM(全球移動通信系統(tǒng))的數(shù)字技術(shù),通過基站來傳輸數(shù)據(jù)。但由于每發(fā)送一條短信,需要支付一定的費用,如果有另一種辦法來實現(xiàn)短信的功能,就可以了。

二、DDPUSH研究

(一)DDPUSH簡介。DDPush (Dimension Door Push),任意門推送,是一款開源免費的單機千萬級實時信息推送服務(wù)器,使用Java語言開發(fā),具有簡單、穩(wěn)定、高性能、高容量等特點,適用于互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、Android、智能設(shè)備、硬件設(shè)備等各種環(huán)境。

(二)DDPUSH特點與實現(xiàn)原理。Ddpush采用Apache License Version 2.0開源協(xié)議開發(fā),具有源碼開放且使用免費的特點。同時,DDPUSH中的在線部分主要采用UDP協(xié)議開發(fā),支技1000萬終端在線的服務(wù)器,最少只需要4G內(nèi)存,故采用一臺普通的PC機都可以作為服務(wù)器。其中的消息推送部分采用JAVA NIO(非阻塞網(wǎng)絡(luò)技術(shù))和TCP協(xié)議開發(fā),如采用普通PC即可支持至少數(shù)千臺應(yīng)用服務(wù)器同時通過長連接方式將消息推送到終端,且每秒可推送上萬條數(shù)據(jù)。具有容量高,速度快,要求低的特點。在耗電與流量使用情況方面,DDPUSH經(jīng)過測試比目前大多應(yīng)用耗電低,同時具有流量少,省電等特點。

三、DDPUSH安裝與部署

(一)DDPUSH獲取。DDPush由于是免費的開源項目,用戶可從其官方網(wǎng)站(www.ddpush.net)下載。通過鏈接,找到對應(yīng)的下載鏈接,下載ddpush Server端即可。

(二)DDPUSH安裝與部署。DDPUSH由JAVA語言編寫,安裝時確保機器上已有JDK環(huán)境。部署時,如想采用默認配置,則直接運行工程目錄下的start.bat即可,運行成功后,會占用9900、9966、9999端口,故在部署前確保9900、9966、9999端口未被其他程序占用。若無異常情況等待幾秒后,則會部署成功,運行成功。

四、安卓端APP短信接收研究

(一)AndroidAPP短信接收原理。在安卓系統(tǒng)中,當有短信到來時,會首先給手機發(fā)出一個廣播(android.provider.Telephony.SMS_RECEIVED),在此廣播中存放了與短信相關(guān)的信息,在安卓系統(tǒng)中,存放在Bundle中。當系統(tǒng)接收到此廣播后,系統(tǒng)會根據(jù)當前的系統(tǒng)設(shè)置對此短信進行操作處理,如播放短信到來的鈴聲、震動、通知欄添加。最終,將此短信插入到系統(tǒng)的sqlite數(shù)據(jù)庫中,其具體位置為:”./data/data/com.android.providers.telephony/databases/mmssms.db”。其中短信對應(yīng)的表為sms。

(二)短信數(shù)據(jù)庫URI。在安卓系統(tǒng)四大組件中,提供了一個可以訪問數(shù)據(jù)的組件,即內(nèi)容提供者(Content Provider)。安卓系統(tǒng)中將短信所對應(yīng)的表已開放出來了,故我們可以通過ContentResolver對數(shù)據(jù)進行操作。通過翻看Android API文檔,便可以獲取短信所對應(yīng)的Uri的地址,為content://sms/。

五、采用DDPUSH實現(xiàn)虛擬短信的Android客戶端設(shè)計

(一)短信服務(wù)端搭建。短信服務(wù)端故可以直接運行ddpush的Server端,將其ddpush服務(wù)端運行在服務(wù)器上,并開放設(shè)定好的端口,服務(wù)端的搭建工作完成。

(二)app端搭建。在安卓系統(tǒng)中,由于要使用到Socket通信及對短信數(shù)據(jù)表進行操作,需要在APP中清單文件中申明網(wǎng)絡(luò)訪問權(quán)限、讀取短信權(quán)限、寫入短信權(quán)限。

同時,為了程序的監(jiān)聽實時性考慮,應(yīng)當讓程序一啟動就運行在手機中,且最好永久運行,綜上所述,選用安卓中的Service與Broadcast Receiver相結(jié)合的方式來開發(fā)此應(yīng)用最為合適,通過在APP中聲明一個監(jiān)聽設(shè)備完全啟動的Broadcast,當手機完全啟動后,通過攔截手機完全啟動的廣播,通過Broadcast Receiver啟動與ddpush對應(yīng)的Service,這樣就保證了短信接收進程一直處于啟動狀態(tài)。其次,為了防止網(wǎng)絡(luò)狀態(tài)的變化,再在APP中聲明注冊網(wǎng)絡(luò)狀態(tài)變化的監(jiān)聽器,這樣當手機啟動或網(wǎng)絡(luò)狀態(tài)變化時,都會啟動ddpush短信服務(wù),從而達到短信服務(wù)長久貯存在手機運行內(nèi)存中,提高接收短信的概率。

由于ddpush協(xié)議中只包含兩個字段的定義,一是對消息目標的定義,二是對消息內(nèi)容的定義。然后短信則包含發(fā)送方、內(nèi)容、發(fā)送時間字段,故需要對ddpush協(xié)議進行擴充。由于原目標定義所占用空間較小,不適合二次開發(fā),故選用對消息內(nèi)容進行二次開發(fā)。分析短信的特點后,發(fā)現(xiàn)短信全由文字構(gòu)成,且出于對消息所占用流量等特點考慮,本應(yīng)用選用json作為短信發(fā)送的協(xié)議。本短信協(xié)議定義主要如下:名稱作用toUser目標方fromUser發(fā)送方sendTime發(fā)送時間content發(fā)送內(nèi)容當ddpush短信服務(wù)接收到短信消息后,在APP會首先根據(jù)系統(tǒng)的設(shè)置,通過ContentResolver向短信數(shù)據(jù)表中插入對應(yīng)的數(shù)據(jù),再系手機發(fā)出特定的鈴聲和振動,并通過安卓SDK中的NotificationManager向系統(tǒng)通知欄插入一條短信的條目。

(三)短信發(fā)送測試。將服務(wù)端與APP客戶端(小米4)部署好后,在一個APP中輸入另一個APP的唯一標識,并輸入消息內(nèi)容。點擊發(fā)送,很快,另一端就收到了通過網(wǎng)絡(luò)發(fā)送過來的消息。

六、結(jié)束語

采用這種Socket方式來實現(xiàn)的短信應(yīng)用在費用方面相對于傳統(tǒng)短信可以減少一定的費用,特別是在群組發(fā)送方面更顯示出這種優(yōu)勢。但同時也存在很嚴重的弊端,如發(fā)送雙方都必須安裝此應(yīng)用;保持移動數(shù)據(jù)流量暢通;此應(yīng)用目前僅僅局限于安卓應(yīng)用。同時,網(wǎng)絡(luò)編程也給我們帶來了無限的遐想空間,結(jié)合網(wǎng)絡(luò)編程與當前的互聯(lián)網(wǎng)趨勢,任可以開發(fā)出各種有用的應(yīng)用。

項目名稱:基于Socket的安卓端的虛擬短信發(fā)送框架研究與實現(xiàn),項目編號:15NSD-135

參考文獻:

[1]梅蕊.跨服務(wù)器消息發(fā)布與推送機制的研究[學位論文].武漢:華中科技大學,2011.

[2]IBM.MQ Telemetry Transport.http://mqtt.org.2013-06-05.

[3]DDPUSH. http://www.ddpush.net/ddpush-1.0-doc/index.html

猜你喜歡
引言
藥用植物野外實踐體系構(gòu)建研究
校企合作背景下高職院校學生管理制度的探索
考試周刊(2016年50期)2016-07-12 23:23:23
解讀《歐也妮·葛朗臺》中金錢禁錮下的人生
考試周刊(2016年50期)2016-07-12 13:22:42
基于思維導(dǎo)圖的線性代數(shù)復(fù)習策略
考試周刊(2016年42期)2016-06-18 19:48:45
提高小學低段課堂寫字有效性的研究
考試周刊(2016年42期)2016-06-18 19:44:40
我國農(nóng)村電子商務(wù)物流問題探析
克什克腾旗| 庐江县| 兴国县| 金塔县| 萝北县| 射洪县| 依兰县| 安龙县| 牡丹江市| 正定县| 合山市| 唐山市| 开化县| 凭祥市| 呼图壁县| 乳山市| 丹凤县| 微博| 青冈县| 如皋市| 桦南县| 诸暨市| 繁峙县| 平乡县| 印江| 外汇| 清水县| 石泉县| 庆云县| 车致| 西峡县| 荃湾区| 岳西县| 南溪县| 河西区| 东明县| 鄯善县| 永安市| 永丰县| 丰城市| 商水县|