• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于 Web 和 Android 的 APP 信息統(tǒng)一推送系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2019-11-03 13:11:42李柏林劉占偉
      電腦知識與技術(shù) 2019年24期

      李柏林 劉占偉

      摘要:針對APP常駐后臺以保證消息的推送,所造成的Android設(shè)備耗電發(fā)熱、卡頓、降低續(xù)航,進(jìn)而影響了用戶的體驗(yàn)。設(shè)計(jì)了一個實(shí)用、實(shí)時且高效的信息推送服務(wù)系統(tǒng),代理第三方應(yīng)用需要推送的信息,由系統(tǒng)服務(wù)器統(tǒng)一通過WebSocket長連接推送至設(shè)備上的推送服務(wù)進(jìn)程,再分發(fā)信息給目標(biāo)應(yīng)用,實(shí)現(xiàn)了信息推送等功能。有助于改善Android系統(tǒng)當(dāng)前的生態(tài)環(huán)境亂象。

      關(guān)鍵詞:Android;推送;SSM框架;WebSocket

      中圖分類號:TP393? ? ? ? 文獻(xiàn)標(biāo)識碼:A

      文章編號:1009-3044(2019)24-0293-04

      開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

      由于Android系統(tǒng)的消息推送服務(wù)FCM(GCM)在國內(nèi)不方便使用,APP和廠商各自為政,APP使用后臺?;?、互相喚醒、全家桶等方式來保證后臺消息推送,廠商則采取殺后臺、限制喚醒等手段反制。這造成手機(jī)耗電發(fā)熱、卡頓等現(xiàn)象,影響正常功能,降低了用戶體驗(yàn)。泰爾實(shí)驗(yàn)室聯(lián)合谷歌、國內(nèi)各手機(jī)廠商、APP提供方和第三方推送方成立了安卓統(tǒng)一推送聯(lián)盟,旨在解決這一亂象。

      借鑒這一思想,基于Web和Android開發(fā)一套可行的APP信息統(tǒng)一推送服務(wù)系統(tǒng),提供解決方案。APP使用本系統(tǒng)后,不在后臺駐留服務(wù)和喚醒系統(tǒng),節(jié)約備的電量和網(wǎng)絡(luò)數(shù)據(jù)等資源,提高Android的系統(tǒng)體驗(yàn)。為開發(fā)者提供一個服務(wù)友好且高效的推送服務(wù),有助于改善Android系統(tǒng)當(dāng)前的生態(tài)環(huán)境亂象。

      1系統(tǒng)設(shè)計(jì)

      主要功能,是提供安卓應(yīng)用廠商和用戶設(shè)備中應(yīng)用之間的信息統(tǒng)一推送渠道,基于此確定系統(tǒng)設(shè)計(jì)的目標(biāo):實(shí)用性,高效性,實(shí)時性。

      實(shí)用性:將應(yīng)用后臺時的推送收歸于本系統(tǒng),解決當(dāng)前Android系統(tǒng)中實(shí)際存在的各種問題,方便開發(fā)者和手機(jī)用戶。

      高效性:由與目標(biāo)連接的設(shè)備數(shù)量巨大、部分應(yīng)用推送頻繁,系統(tǒng)需要較高的效率來處理業(yè)務(wù)。

      實(shí)時性:去年發(fā)生的事件是舊聞而不是新聞,推送的信息需保持實(shí)時性。

      1.1需求分析

      1.1.1基礎(chǔ)功能分析

      基于J2EE和Android的開發(fā)框架,開發(fā)者可以通過網(wǎng)頁端申請和管理應(yīng)用、推送信息,也可以直接通過編程接口(API)推送和獲取信息。系統(tǒng)管理員可以通過網(wǎng)頁配置系統(tǒng)功能,并對開發(fā)者申請的服務(wù)進(jìn)行管理。

      系統(tǒng)主要分為開發(fā)者模塊、推送模塊、系統(tǒng)管理模塊以及一個Android端接收處理推送信息。系統(tǒng)提供給開發(fā)者推送服務(wù)接口以獲取設(shè)備地理位置和推送信息,同時提供一個封裝了部分功能接口的Android開發(fā)SDK包方便接入。下圖1是系統(tǒng)的模塊框架圖。

      1.1.2系統(tǒng)用例分析

      圖2是系統(tǒng)管理員用例圖,圖3是開發(fā)者用例圖。

      1.2模塊設(shè)計(jì)

      主要的功能模塊有:開發(fā)者模塊、推送模塊、Android端、系統(tǒng)管理模塊等。

      1.2.1開發(fā)者模塊

      包含開發(fā)者的注冊登陸、應(yīng)用服務(wù)的申請、管理,以及賬戶的密碼變更、解封申請。

      注冊時必須提供郵箱,作為以后各種業(yè)務(wù)提醒的渠道。登陸頁面除了常規(guī)的用戶名密碼外,提供一個驗(yàn)證碼,防止機(jī)器程序惡意攻擊,登陸驗(yàn)證碼是一張圖片,由服務(wù)器動態(tài)生成。

      應(yīng)用服務(wù)的申請時需選擇應(yīng)用需要的類型,根據(jù)最小權(quán)限原則,避免申請用不到的權(quán)限。服務(wù)類型分為三個級別:

      普通:只能批量、全部推送;

      位置:提供基礎(chǔ)的位置服務(wù),可以批量獲取設(shè)備地理位置并處理后推送,也可直接按行政區(qū)域推送信息;

      高級:對于聊天等推送頻繁應(yīng)用,提供WebSocket通道保持應(yīng)用服務(wù)器與本系統(tǒng)的連接,提高效率。高級類型同時擁有前兩級權(quán)限??紤]到聊天應(yīng)用的隱私性、實(shí)時性、準(zhǔn)確性,此類型的應(yīng)用走WebSocket通道時不會進(jìn)行敏感詞過濾,也不執(zhí)行權(quán)限過濾(本身已是最高權(quán)限),更不會記錄日志,SDK不會處理信息,需要應(yīng)用自行處理。

      開發(fā)者可以對已申請的應(yīng)用進(jìn)行管理,包括刪除應(yīng)用、升級服務(wù)級別、查看應(yīng)用的推送記錄,且能夠?qū)С鐾扑陀涗洝?/p>

      1.2.2推送模塊

      主要功能是權(quán)限和敏感詞過濾、信息推送、設(shè)備返回信息處理并記錄日志。

      推送服務(wù)需要在項(xiàng)目應(yīng)用啟動時初始化一些必須的數(shù)據(jù),初始化完成后等待并處理業(yè)務(wù)。業(yè)務(wù)的處理時并行的。

      推送的信息需通過敏感詞過濾,若檢測出敏感詞,則返回錯誤信息,并郵件通知開發(fā)者獲得一次警告,多次警告后賬戶會被封禁。

      敏感詞過濾使用GitHub開源的工具類sensitive-words-filter,該工具采用DFA(確定有窮自動機(jī))算法,性能較為優(yōu)秀。同樣,高級服務(wù)(如聊天應(yīng)用等)使用WebSocket通道推送信息時不經(jīng)敏感詞過濾,同時也保障了用戶的信息隱私。

      推送信息經(jīng)權(quán)限和敏感詞過濾后,再經(jīng)預(yù)處理,最終得到發(fā)送的目標(biāo)設(shè)備ID,由此ID獲取會話Session,將信息發(fā)送到設(shè)備。

      推送的方式包括全部推送(推送到所有安裝此應(yīng)用的設(shè)備)、區(qū)域推送(特定地理位置的推送,如天氣應(yīng)用推送城市天氣預(yù)報)、批量推送(推送到一批(一個)指定設(shè)備)。前兩種推送應(yīng)包含推送過期時間,系統(tǒng)在過期后清理隊(duì)列。系統(tǒng)會維護(hù)設(shè)備和應(yīng)用、地理位置之間的關(guān)系索引。

      1.2.3系統(tǒng)管理模塊

      系統(tǒng)提供系統(tǒng)管理頁面便于維護(hù)人員審核與管理開發(fā)者和應(yīng)用,并維護(hù)敏感詞。

      管理員有權(quán)限封禁、解封開發(fā)者,封禁開發(fā)者時需給出理由,封禁后會發(fā)送郵件給開發(fā)者。開發(fā)者若申請解封,需發(fā)送郵件到指定郵箱,管理員審查后予以操作。

      開發(fā)者申請新的應(yīng)用服務(wù)和申請的服務(wù)升級均需要通過管理員審核。管理員根據(jù)申請描述予以操作,系統(tǒng)將郵件通知開發(fā)者。

      系統(tǒng)管理包括開發(fā)者管理、應(yīng)用管理和敏感詞管理。

      1.3 Android端

      通過AndroidSDK接受并顯示推送信息的端點(diǎn)。服務(wù)啟動后通過WebSocket連接服務(wù)器,發(fā)送相應(yīng)的初始化信息。設(shè)備和服務(wù)器的連接需要保持心跳。收到推送信息時發(fā)送到對應(yīng)應(yīng)用中處理并記錄結(jié)果。

      由于網(wǎng)絡(luò)服務(wù)提供商會斷開長時間未使用的連接路徑回收資源,所以長連接的保持都需要實(shí)現(xiàn)心跳。TCP/WebSocket自帶的心跳功能性單一,為了實(shí)現(xiàn)業(yè)務(wù)的一些特性,心跳由應(yīng)用層實(shí)現(xiàn),還可以附帶設(shè)備當(dāng)前的定位信息,一舉兩得。

      設(shè)備的定位調(diào)用Android系統(tǒng)或百度地圖提供的API實(shí)現(xiàn)。

      為方便開發(fā)者接入本系統(tǒng),提供一個應(yīng)用SDK。通過此SDK,應(yīng)用可以方便的獲取設(shè)備ID信息、注冊/注銷服務(wù)、接收并處理推送信息、返回通知點(diǎn)擊信息等。

      1.4 數(shù)據(jù)庫設(shè)計(jì)

      數(shù)據(jù)庫是本系統(tǒng)設(shè)計(jì)中的重要部分。數(shù)據(jù)庫在設(shè)計(jì)時需考慮效率和優(yōu)化問題,必要時添加適量的冗余字段,有利于提高數(shù)據(jù)庫查詢操作的性能。同時也要考慮設(shè)計(jì)合理的表間關(guān)聯(lián),減少表之間的耦合,符合數(shù)據(jù)庫設(shè)計(jì)的規(guī)范。

      本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)圍繞著開發(fā)者及其申請的應(yīng)用服務(wù)展開,設(shè)計(jì)難度最大的地方在于推送信息的表的設(shè)計(jì),一條推送信息可能會推送至許多設(shè)備,為了降低冗余,需要將推送信息的內(nèi)容和推送至設(shè)備的記錄分開。同時等待推送的記錄訪問頻率高,需設(shè)計(jì)為獨(dú)立的一張表。

      2系統(tǒng)實(shí)現(xiàn)

      2.1開發(fā)者功能

      開發(fā)者作為系統(tǒng)的目標(biāo)用戶,需注冊并登陸成功后才能正常使用系統(tǒng)提供的服務(wù)。注冊時提供郵箱地址,點(diǎn)擊獲取驗(yàn)證碼時,驗(yàn)證碼信息會發(fā)送到此郵箱,用以驗(yàn)證此郵箱地址的真實(shí)性和有效性。注冊成功后,開發(fā)者可以進(jìn)行登陸操作,登陸的驗(yàn)證碼是系統(tǒng)隨機(jī)生成的含有數(shù)字的圖片,點(diǎn)擊圖片切換驗(yàn)證碼。下圖6是開發(fā)者注冊、登錄界面。

      2.2應(yīng)用申請與管理

      使用本推送系統(tǒng)的第一步是先申請應(yīng)用服務(wù),通過系統(tǒng)審核后下載SDK并開始應(yīng)用開發(fā)。已申請的應(yīng)用服務(wù)可以查看詳情和推送記錄并進(jìn)行調(diào)整、注銷等操作。下圖7是開發(fā)者申請應(yīng)用服務(wù)界面。

      2.3推送信息

      推送信息不需要開發(fā)者登陸,只需要提供對應(yīng)的key就可以實(shí)現(xiàn)推送,下圖8是普通方式的網(wǎng)頁推送界面,包含敏感詞會禁止推送。推送成功,移動設(shè)備會彈出推送信息。

      推送信息的方式是可選的,若選擇批量推或者位置推送,會自動多出一個文本框供輸入具體信息。下圖9是位置推送并附帶圖片的推送結(jié)果。

      同時該系統(tǒng)為了方便開發(fā)者進(jìn)行業(yè)務(wù)分析,還推出了推送系統(tǒng)的記錄與導(dǎo)出功能。

      2.4系統(tǒng)管理功能

      系統(tǒng)后臺的應(yīng)用管理和開發(fā)者的應(yīng)用管理基本一致,僅查詢條件增加按開發(fā)者過濾且操作中添加審核按鈕。

      開發(fā)者管理如圖10的界面。

      實(shí)現(xiàn)社會主義核心價值觀,要求網(wǎng)絡(luò)信息中杜絕一些敏感詞匯。敏感詞隨著各方面的因素而變動著,對其的維護(hù)也是一個重要的方面。

      3結(jié)語

      基于SSM框架和WebSocket技術(shù),進(jìn)行開發(fā)的Android平臺信息推送系統(tǒng)。統(tǒng)一的信息推送系統(tǒng)和各應(yīng)用獨(dú)立的信息推送方式相比,減少了應(yīng)用的后臺活動和網(wǎng)絡(luò)連接,降低了對系統(tǒng)資源的占用,使設(shè)備續(xù)航得以優(yōu)化,延長了設(shè)備壽命,提升了設(shè)備和Android系統(tǒng)的使用體驗(yàn)。對設(shè)備廠商、開發(fā)者和設(shè)備用戶三方都是有利的。

      參考文獻(xiàn):

      [1] 李興華. 基于WebSocket的移動即時通信系統(tǒng)[D]. 重慶大學(xué), 2013.

      [2] 王盼盼. 基于BPEL工作流的服務(wù)組合技術(shù)研究[D]. 沈陽理工大學(xué),2011.

      [3] 張愛華, 呂京濤. CSS快速入門[D]. 山東:青島出版社,2000.

      [4] 房體盈. 基于JavaScript技術(shù)的WebGIS設(shè)計(jì)與實(shí)現(xiàn)[D]. 大連理工大學(xué),2008.

      [5] 張志強(qiáng). 基于Web環(huán)境的高??蒲泄芾硐到y(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 電子科技大學(xué),2006.

      [6] 李洋. SSM框架在Web應(yīng)用開發(fā)中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(12):190-194.

      [7] 蔚曉娟. 基于SSVH框架的綜合集中告警WEB系統(tǒng)的研究與實(shí)現(xiàn)[D]. 西南交通大學(xué),2007.

      [8] 嚴(yán)科磊. 基于J2EE的小學(xué)信息技術(shù)課CAI系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 浙江工業(yè)大學(xué),2012.

      [9] 葛丹. 物聯(lián)網(wǎng)傳感器數(shù)據(jù)處理平臺的設(shè)計(jì)與實(shí)現(xiàn)[D]. 南京郵電大學(xué),2016.

      [10] 易仁偉. 基于WebSocket的實(shí)時Web應(yīng)用的研究[D]. 武漢理工大學(xué),2013.

      [11] 俞超飛. 騰訊公司手機(jī)設(shè)備管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 大連理工大學(xué),2016

      【通聯(lián)編輯:唐一東】

      乐安县| 揭东县| 太和县| 唐海县| 根河市| 资阳市| 辉南县| 江北区| 文成县| 文昌市| 商河县| 汉源县| 易门县| 晋宁县| 吴桥县| 辽宁省| 松溪县| 山阴县| 玛沁县| 饶平县| 芦溪县| 翼城县| 大埔县| 高尔夫| 电白县| 阿坝县| 武城县| 宁津县| 读书| 德江县| 和平区| 乌鲁木齐县| 项城市| 江孜县| 美姑县| 仲巴县| 洮南市| 大城县| 温宿县| 香港 | 潼关县|