999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android平臺的地震預警終端軟平臺的設計與一種實現

2017-01-13 02:43:35王曉磊趙士達高文晶
地震工程學報 2016年6期
關鍵詞:百度用戶服務

朱 宏, 王曉磊, 劉 磊, 趙士達, 高文晶

(天津市地震局,天津 300201)

技術交流

基于Android平臺的地震預警終端軟平臺的設計與一種實現

朱 宏, 王曉磊, 劉 磊, 趙士達, 高文晶

(天津市地震局,天津 300201)

探討Android平臺在地震預警軟件中的開發技術。首先介紹系統的整體框架以及Android的架構,然后詳細分析極光JPush推送、百度定位服務和百度地圖API開源服務在Android系統上的開發方法及其在地震預警軟件的應用。該系統可實現Android終端獲取Jpush推送的地震預警信息、實時顯示當前場所位置和顯示震中距及S波到達剩余時間等預警信息功能。

安卓; 地震預警; JPush推送; 百度地圖API

0 引言

地震災害一直是人類面臨的主要災害之一。為了減少地震災害造成的損失[1],中國地震臺網中心已經開始應用云技術和消息推送技術進行地震速報結果的發布工作。而地震預警的技術更苛刻,要求從報警時間上獲取秒量級上的突破。不管是地震速報還是地震預警,其地震信息獲取及發布涉及的技術都可以歸結到通訊領域。

為進一步利用通訊領域近年的科學技術,特別是廣大用戶使用的Android移動平臺[2],有必要從底層核心技術角度開發地震信息推送平臺,提高震害防御信息的信息社會服務功能。基于這些因素,本文結合JPush推送、LBS(定位服務)定位和百度地圖API(應用程序編程接口)的特點,研究基于Android平臺的地震預警終端軟平臺的設計與應用及相關開發技術。

1 Android平臺結構簡介

Android系統是由Google公司和開放手機聯盟推出的開放源碼的操作系統[3],主要用于移動設備,如智能手機和平板電腦。該軟件層次結構自下而上分為以下幾個層次[4]:

(1) 基于Linux的內核的系統(OS);

(2) 各種庫(Libraries)和Android運行環境(RunTime);

(3) 應用程序框架(Application Framework);

(4) 應用程序(Application)。

Android主流的開發環境是Java,開發平臺選用Eclipse(一種基于Java的開源的、可擴展的平臺)[1]。Eclipse安裝ADT(Android Development Tools,安卓開發工具)后就可以下載并使用Android的SDK(Software Development Kit, 軟件開發工具包)。同時SDK還提供可視化的模擬器以及DDMS(Dalvik虛擬機調試監控服務)工具,用于實時查看軟件運行情況等操作[8-9]。本文的軟平臺開發基于以上工具開發和調試,并最終在手機終端上通過測試和使用。

2 地震預警軟終端信息獲取及顯示

本團隊開發的地震預警軟終端顯示平臺App主要分為三部分:一是通過極光推送將地震預警信號推送到手機上;二是在界面上實時顯示當前位置,即定位功能,并顯示用戶當前位置的經緯度;三是通過界面顯示地震S波到來的倒計時時間。

2.1 JPush極光推送接收

極光推送(JPush)是極光公司開發者提供的消息推送服務,它通過利用云端與客戶端之間建立穩定、可靠的TCP/IP的長連接來向客戶端應用推送實時消息。極光推送服務提供消息暫存、轉發和推送的功能,消息不會丟失,因此客戶端無需保持在線狀態及進行反復輪詢。單一終端多個應用共享一個服務進程和一條TCP(傳輸控制協議)長連接,從而能有效降低手機的耗電量和數據流量[10]。極光推送服務為開發者提供了一個快速推送信息的管理控制臺,將推送功能可視化,可以直接通過控制臺針對特定的用戶群完成通知、消息的推送。

2.1.1 JPush推送接收客戶端整體設計

在Android平臺開發Jpush推送接收客戶端需要在項目中添加JPush服務的Android SDK。如圖1所示,JPush SDK起到了用戶應用程序與JPush服務器的橋梁作用,用戶的應用程序不需要直接與復雜的Push HTTP/HTTPS API進行交互,而是由JPush SDK與Push HTTP/HTTPS API進行交互來訪問Push服務器,從而使推送開發簡單化[1]。

圖1 JPush服務的框架設計Fig.1 Frame design of JPush service

2.1.2 JPush推送服務SDK的集成

用戶應用程序要接收JPush服務器推送的信息就必須對JPush SDK進行集成。在本設計中采用無賬號登錄方式,用戶無需接入JPush用戶體系,每個終端直接通過API Key向服務端請求用戶標識id,服務器根據端上的屬性生成userid。Jpush SDK前端將生成一個SS的服務,啟用設備的相關權限進行處理,優化與服務器進行長連接的鏈路。例如接駁使用天津移動的網絡去接入天津移動本地的機房是最佳選擇,延遲是10~20 ms,但如果因為信道故障等原因導致切換到邊遠地區的某一臺服務器上,延遲可能在300 ms以上。因此前端增加了可選服務器的設置,根據接入網絡的地點與接入進來的運營商去連接最佳服務器。JPush推送服務實際上還提供了一個類似于DNS的服務。建立長連接之后,通過JPush推送的MQ的機制,進到其他的IDC(Internet Data Center互聯網數據中心)做處理,實現各接收機房數據匯集到一起,集中處理。集成所需的核心代碼如下:

android:theme=“@android:style/Theme.Translucent.NoTitleBar”

android:configChanges=“orientation|keyboardHidden”>

android:name=“cn.jpush.android.ui.PushActivity” />

android:name=“android.intent.category.DEFAULT” />

android:name=“cn.jpush.android.service.DownloadService”

android:enabled=“true”

android:exported=“false” >

android:name=“cn.jpush.android.service.AlarmReceiver”/>

2.2 基于百度地圖API地震預警的信息顯示

百度地圖API是一套為開發者免費提供的基于百度地圖的應用程序接口,包括JavaScript、iOS、Andriod、靜態地圖和Web服務等多種版本,它可以運行百度地圖Android SDK開發的應用程序[11]。

2.2.1 用戶當前位置定位和實時顯示

百度地圖 Android SDK是一套基于Android 2.1及以上版本設備的應用程序接口,通過調用定位SDK的方法,實現地圖當前位置的準確定位。以下定義了一個類來實現BDLocationListener接口的方法,包含onReceiveLocation方法和onReceivePoi方法。其中onReceiveLocation方法實現定位并獲取用戶當前經緯度和方向。代碼如下:

public class MyLocationListenner implements BDLocationListener {public void onReceive Location(BDLocation location) {

if (location == null || mMapView ==null)

return;

MyLocationData locData=new MyLocationData.Builder()

.accuracy(location.getRadius())

.direction(100).latitude(location.getLatitude())

.longitude(location.getLongitude()).build();

mBaiduMap.setMyLocationData(locData);

if (isFirstLoc){

isFirstLoc=false;

LatLngll=new LatLng(location.getLatitude(),

location.getLongitude());

MapStatusUpdateu=MapStatusUpdateFactory.newLatLng(ll);

mBaiduMap.animateMapStatus(u);

}

2.2.2 利用TextView控件顯示當前所在地的地理信息

百度地圖SDK提供了獲取經緯度的方法。首先需要實例化BDLocation對象,再通過BDLocation方法的Location.getLatitude()和Location.getLongtitude()方法獲取到當前經緯度后,利用TextView控件以醒目的顏色和合適的字體在屏幕上展示出來。TextView控件為Android平臺的文本編輯框,顯示的重要信息都可以通過此編輯框。 android.graphic.Color.RED表示TextView中文字的顏色為紅色。TextView.setTextSize(15)表示文字的大小為15號。核心代碼如下:

textView1=(TextView)findViewById(R.id.textView1);

textView1.setText(“緯度:”+location.getLatitude()+“”);

textView1.setTextColor(android.graphics.Color.RED);

textView1.setTextSize(15);

textView2=(TextView)findViewById(R.id.textView2);

textView2.setText(“經度:”+location.getLongitude()+“”);

textView2.setTextColor(android.graphics.Color.RED);

textView2.setTextSize(15);

2.2.3 地震預警S波倒計時時間的顯示

地震發生后,首先到達的是上下震動的P波,震動幅度相對較小。由于用戶所處位置與震中位置遠近的不同,要過大約幾秒、十幾秒甚至幾十秒,水平運動的S波才會到來。地震預警就是利用地震發生后P波與S波到達的時間差,提前發布地震信息。統計顯示,在距離震源50 km內的地區,地震S波落后P波約7 s;90~100 km內的地區落后11~13 s,即震源距離與虛波速度約8 km/s的比值。地震預警時間(或顯示終端顯示的S波剩余時間)應小于這個時間才有預警效果。因此對地震P波信號數據處理的準確性、實時性直接影響整個終端軟平臺的正常運行[15]。

1976年7月28日唐山地區發生了里氏7.8級的地震,造成整個華北地區均有強烈震感,而天津市是首都圈地區唯一遭受過烈度達到Ⅷ度以上的特大城市。通過后臺設置,將軟件默認的震中位置設置為唐山“7·28”地震震中進行測試,然后通過DistanceUtil的getDistance()方法得到當前位置和震中的距離,最后將該距離除以S波在地殼中傳播的平均速度3.5 km/s,得到S波到來的時間。

在Android.os.*下存在CountDownTimer這個類,通過繼承這個類,實現它的OnTick和OnFinish方法。將得到的時間值傳入這個方法中,實現倒計時的功能。核心代碼如下:

class MyCountDownTimer extends CountDown

Timer{

public MyCountDownTimer(longd,long countDownInterval){

super(d,countDownInterval);

}

public void onFinish(){

textView4.setText(“done”);

}

public void onTick(long millisUntilFinished) {

textView4=(TextView)findViewById(R.id.textView4);

textView4.setTextColor(android.graphics.Color.RED);

textView4.setText(“倒計時(”+millisUntilFinished/1000+“秒)”);

}

}

其中:d為傳入的倒計時時間值;countDownInterval為時間間隔,這里設置為1 000 ms,即1 s。

3 行業內同類軟件對比及應用前景

3.1 行業內同類軟件對比

成都高新減災所推出的“地震預警”軟件已經可以在安卓市場和蘋果市場上下載。該軟件無論是頁面風格搭配、還是功能實現上都已走在了行業的前端。美中不足的是,在數據來源上,成都高新減災所使用了自主研發的簡易加速度計,使數據的準確性及權威性及與地震臺站的精密儀器之間存在一定的差異,且其預警算法及通訊技術并不公開,無法直接二次開發。

同高新所“地震預警”App相比,本文自主研發的終端軟平臺有自己的核心代碼,可以按用戶需求隨時調整,但也存在一定的劣勢,如界面規劃布局不甚合理、未能提供其他避險搶險知識、地震信息獲取源尚需進一步完善等。

3.2 應用前景

2014年由天津市地震局牽頭申請的國家科技支撐計劃“燃氣管網地震預警與自動處置關鍵技術研究與示范”項目通過了預評審。本文進行終端平臺開發的最終目的是為此項目的地震信息決策與指令發布平臺進行服務。后期項目啟動后,將燃氣管網的分布示意圖集成到軟件中進行展示,并通過預警信息決策與指令發布平臺對預警信息進行發布。整個預警信息發布流程如圖2所示。

圖2 預警信息自動處置工作流程圖Fig.2 Automatic workflow chart of the early-warning information

4 功能測試

軟件仿真采用華為榮耀6手機實機測試,分別對系統的三個主要功能進行測試。手機主要參數是Android4.4操作系統、3G RAM,海思920八核處理器并支持WIFI功能。接收JPush推送消息展示測試如圖3所示。定位經緯度、地震預警S波倒計時和距離顯示如圖4所示。

圖3 JPush推送消息測試展示Fig.3 Message push test using JPush service

圖4 定位當前經緯度、倒計時以及距離展示 Fig.4 Demonstration of current longitude and latitude, location and the countdown and distance of S-wave

5 結語

本文基于Android平臺和極光推送服務、百度開源服務(百度定位和百度地圖)開發了地震預警終端顯示軟件平臺。該平臺主要獲取各類地震預警信息:一是通過JPush推送消息,最快地獲取預警信息;二是獲取地震震中后,獲取用戶當前位置和震中距;三是計算顯示S波剩余到達時間。通過Android系統真機測試證明,該平臺可實現以上功能且對市場上的主流手機普遍兼容。

References)

[1] 趙士達,張楠,楊爽.基于云計算和Android的地震應急信息獲取系統[J].計算機應用, 2014,34(增刊1): 298-300. ZHAO Shi-da,ZHANG Nan,YANG Shuang.Based on Earthquake Emergency Information Acquisition System of Cloud Computing and Android[J].Computer Applications,2014,34 (Supp1):298-300.(in Chinese)

[2] 鄭云卿,黃琦.基于Android平臺的軟件自動化監控工具的設計開發[J].計算機應用與軟件,2013,30(2):235. ZHENG Yun-qing,HUANG Qi.The Design and Development of Software Automation Monitoring Tools Based on Android Platform[J].Computer Applications and Software,2013,30 (2):235.(in Chinese)

[3] 彭璇,吳肖.Google Map API在網絡地圖服務中的應用[J].測繪信息與工程,2010,35(1):25-27. PENG Xuan,WU Xiao.The Application of Google Map API on the Network[J].Surveying and Mapping Information Engineering,2010,35(1):25-27.(in Chinese)

[4] 陳璟,陳平華,李文亮.Android內核分析[J].現代計算機,2009(11):112-114. CHEN Jing,CHEN Ping-hua, LI Wen-liang.The Kernel Analysis of Android[J].Modern Computer,2009(11):112-114.(in Chinese)

[5] 宋小倩,周東升.基于Android平臺的應用開發研究[J].軟件導刊,2011,10(2):104-105. SONG Xiao-qian,ZHOU Dong-sheng.Research on Application Development Based on Android Platform[J].Software Guide,2011,10(2):104-105.(in Chinese)

[6] 高煥堂.Android應用框架原理與程序設計36技[M].臺北:廣悅文化事業有限公司,2008:13-83. GAO Huan-tang.Android Application Framework Principle and Program Design 36 Technology[M].Taipei: Kangyor Culture Co.Ltd.,2008:13-83.(in Chinese)

[7] 陳望挺,林滿足,陳建,等,竺樂慶.基于JSP和Android的C/S結構問卷系統[J].計算機應用,2013,33(3):886-889. CHEN Wang-ting,LIN Man-zu,CHEN Jian,et al.C/S Structure Questionnaire System Based on JSP and Android[J].Computer Applications,2013,33(3):886-889.(in Chinese)

[8] Ed Burnette.Hello,Android:Introducing Google’s Mobile Development Platform[M].American Pragmatic Bookshelf,2009:278-282.

[9] 孟德欣,謝二蓮.使用Google XML APIs Service實現Web查詢[J].計算機應用研究,2004,24(增刊1):252-253. MENG De-xin,XIE Er-lian.The Query of WEB in Use Google XML APIs Service[J].Computer Application Research,2004,24 (Supp1):252-253.(in Chinese)

[10] 張波,王娟,邱宏茂,等.一種自動掃描地震漏檢事件方法的研究與實現[J].地震工程學報, 2013,35(2):321. ZHANG Bo,WANG Juan,QIU Hong-mao,et al.Research and Implementation of an Automatic Scanning Method of Seismic Event Detection[J].China Earthquake Engineering Journal,2013,35(2):321.(in Chinese)

[11] 豆瑞星.百度成立LBS事業部[J].互聯網周刊,2012,11(5):53-55. DOU Rui-xing.Baidu Set up LBS Division[J].Internet Weekly,2012,11(5):53-55.(in Chinese)

[12] 許德瑋,桑梓勤,劉磊,等.基于云計算的醫療衛生位置服務平臺研究[J].醫學信息學雜志,2013,34(6):8-13. XU De-wei,SANG Zi-qin,LIU lei,et al.Research on Medical and Health Location Service Platform Based on Cloud Computing[J].Journal of medical information,2013,34(6):8-13.(in Chinese)

[13] 馬志強.基于Android平臺即時通信系統的設計與實現[D].北京:北京交通大學,2009:11-15. MA Zhi-qiang.Design and Implementation of Instant Communication System Based on Android Platform[D].Beijing Jiaotong University,2009:11-15.(in Chinese)

[14] 郭宏志.Android應用開發詳解[M].北京:電子工業出版社,2010:42-44. GUO Hong-zhi.Detailed Introduction to Android Application and Development[M].Beijing:Publishing House of Electronics Industry,2010:42-44. (in Chinese)

[15] 于凱,左自波,王穎軼,等.基于遠程實時監測的高烈度區沉管隧道施工可視化系統[J].地震工程學報,2014,36(3):762-763. YU Kai,ZUO Zi-bo,WANG Ying-yi,et al.Visualization System of Immersed Tube Tunnel Construction Based on Remote Real-time Monitoring[J].China Earthquake Engineering Journal,2014,36(3),762-763. (in Chinese)

Design and Implementation of an Earthquake Early-warning Terminal Platform Based on Android Platform

ZHU Hong, WANG Xiao-lei, LIU Lei, ZHAO Shi-da, GAO Wen-jing

(EarthquakeAdministrationofTianjinMunicipality,Tianjin300201,China)

This paper discusses the development technology of Android platforms for earthquake early-warning software. First, we introduce the entire framework of our project design and Android application, then detail the development methods of JPush push, the Baidu positioning service, Baidu Maps API (Application Programming Interface), and other open-source Android services, and their application to earthquake early-warning software. The tests reveal that the designed Android terminal can effectively acquire earthquake early-warning information using the JPush push technique, which also displays the user’s current position, epicentral distance, and S-wave arrival time. Simultaneous Android system testing showed that this platform can achieve the above functions and is generally compatible with the mainstream mobile phones on the market. Compared with other similar software in this industry, this earthquake early-warning algorithm and communication technology are relatively open, and can provide a secondary service for the identification of targeted settings in different regions.

Android; earthquake warning; JPush push; Baidu Map API

2015-12-22 基金項目:天津市“十二五”防震減災綜合能力提升工程“地震監測技術系統完善與建設”分項;中國地震局地震科技星火計劃項目(XH15003);天津市地震局青年基金課題(20141010)

朱 宏(1989-),男,助理工程師,主要研究方向為地震應急信息軟件研發。E-mail:577834280@qq.com。

TP311.5; P315.75

A

1000-0844(2016)06-1016-06

10.3969/j.issn.1000-0844.2016.06.1016

猜你喜歡
百度用戶服務
Robust adaptive UKF based on SVR for inertial based integrated navigation
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
百度年度熱搜榜
青年與社會(2018年2期)2018-01-25 15:37:06
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
百度遭投行下調評級
IT時代周刊(2015年8期)2015-11-11 05:50:22
主站蜘蛛池模板: 国产精品自在自线免费观看| 青草视频网站在线观看| 99在线小视频| 国产成人久久综合一区| 高清国产va日韩亚洲免费午夜电影| 无码专区国产精品第一页| 欧美成人h精品网站| 免费人成网站在线观看欧美| 国产制服丝袜91在线| 8090成人午夜精品| 久久天天躁狠狠躁夜夜躁| 97视频精品全国在线观看| 国产91色在线| 丁香亚洲综合五月天婷婷| 综合色区亚洲熟妇在线| 欧美影院久久| 精品无码国产自产野外拍在线| 国产综合精品日本亚洲777| 在线观看国产精美视频| 无码免费视频| 在线观看精品国产入口| 精品夜恋影院亚洲欧洲| 中日韩一区二区三区中文免费视频| 亚洲天堂网在线观看视频| 久久永久免费人妻精品| 亚洲精品自拍区在线观看| 中文精品久久久久国产网址| 日韩中文字幕亚洲无线码| 高清色本在线www| 99久久婷婷国产综合精| 成人综合网址| 亚洲日韩精品伊甸| 影音先锋亚洲无码| 99re66精品视频在线观看| 91午夜福利在线观看| 99热这里都是国产精品| 国产成人精品一区二区| 香蕉精品在线| 日韩资源站| 波多野结衣一二三| 国产欧美视频综合二区 | 亚洲综合久久成人AV| 亚洲系列无码专区偷窥无码| A级全黄试看30分钟小视频| 国产亚卅精品无码| 伊人91视频| 亚洲第一福利视频导航| 精品国产一区二区三区在线观看| 久久精品丝袜高跟鞋| 欧美激情第一欧美在线| 国产成人精品2021欧美日韩| 国产91高跟丝袜| 国产精品一区在线麻豆| av大片在线无码免费| 亚洲第一国产综合| 中文字幕亚洲乱码熟女1区2区| 一级毛片不卡片免费观看| 国产精品福利一区二区久久| 久久综合色视频| 99视频精品在线观看| 久久精品这里只有国产中文精品 | 日本在线国产| 亚洲熟妇AV日韩熟妇在线| 欧美视频免费一区二区三区| 国产第一页亚洲| 男女猛烈无遮挡午夜视频| 在线观看91精品国产剧情免费| 精品一区二区三区四区五区| 色悠久久综合| 亚洲欧洲一区二区三区| 中文字幕人妻无码系列第三区| 91高清在线视频| 国产精品永久在线| 欧美精品高清| 99精品视频播放| 国产精品任我爽爆在线播放6080| 中文字幕人成人乱码亚洲电影| 国产一区二区色淫影院| 99re热精品视频国产免费| 精品国产中文一级毛片在线看| 亚洲人成在线精品| 国产网友愉拍精品视频|