• 
    

    
    

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

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

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

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

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

      技術交流

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

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

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

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

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

      0 引言

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

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

      1 Android平臺結構簡介

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

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

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

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

      (4) 應用程序(Application)。

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

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

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

      2.1 JPush極光推送接收

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

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

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

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

      2.1.2 JPush推送服務SDK的集成

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

      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是一套為開發(fā)者免費提供的基于百度地圖的應用程序接口,包括JavaScript、iOS、Andriod、靜態(tài)地圖和Web服務等多種版本,它可以運行百度地圖Android SDK開發(fā)的應用程序[11]。

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

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

      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波倒計時時間的顯示

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

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

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

      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 行業(yè)內同類軟件對比及應用前景

      3.1 行業(yè)內同類軟件對比

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

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

      3.2 應用前景

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

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

      4 功能測試

      軟件仿真采用華為榮耀6手機實機測試,分別對系統(tǒng)的三個主要功能進行測試。手機主要參數(shù)是Android4.4操作系統(tǒng)、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平臺和極光推送服務、百度開源服務(百度定位和百度地圖)開發(fā)了地震預警終端顯示軟件平臺。該平臺主要獲取各類地震預警信息:一是通過JPush推送消息,最快地獲取預警信息;二是獲取地震震中后,獲取用戶當前位置和震中距;三是計算顯示S波剩余到達時間。通過Android系統(tǒng)真機測試證明,該平臺可實現(xiàn)以上功能且對市場上的主流手機普遍兼容。

      References)

      [1] 趙士達,張楠,楊爽.基于云計算和Android的地震應急信息獲取系統(tǒng)[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平臺的軟件自動化監(jiān)控工具的設計開發(fā)[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].現(xiàn)代計算機,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平臺的應用開發(fā)研究[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].臺北:廣悅文化事業(yè)有限公司,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結構問卷系統(tǒng)[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實現(xiàn)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] 張波,王娟,邱宏茂,等.一種自動掃描地震漏檢事件方法的研究與實現(xiàn)[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事業(yè)部[J].互聯(lián)網周刊,2012,11(5):53-55. DOU Rui-xing.Baidu Set up LBS Division[J].Internet Weekly,2012,11(5):53-55.(in Chinese)

      [12] 許德瑋,桑梓勤,劉磊,等.基于云計算的醫(yī)療衛(wèi)生位置服務平臺研究[J].醫(yī)學信息學雜志,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平臺即時通信系統(tǒng)的設計與實現(xiàn)[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應用開發(fā)詳解[M].北京:電子工業(yè)出版社,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] 于凱,左自波,王穎軼,等.基于遠程實時監(jiān)測的高烈度區(qū)沉管隧道施工可視化系統(tǒng)[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 基金項目:天津市“十二五”防震減災綜合能力提升工程“地震監(jiān)測技術系統(tǒng)完善與建設”分項;中國地震局地震科技星火計劃項目(XH15003);天津市地震局青年基金課題(20141010)

      朱 宏(1989-),男,助理工程師,主要研究方向為地震應急信息軟件研發(fā)。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

      猜你喜歡
      百度預警終端
      X美術館首屆三年展:“終端〉_How Do We Begin?”
      Robust adaptive UKF based on SVR for inertial based integrated navigation
      通信控制服務器(CCS)維護終端的設計與實現(xiàn)
      法國發(fā)布高溫預警 嚴陣以待備戰(zhàn)“史上最熱周”
      百度年度熱搜榜
      青年與社會(2018年2期)2018-01-25 15:37:06
      園林有害生物預警與可持續(xù)控制
      多功能北斗船載終端的開發(fā)應用
      電子制作(2016年15期)2017-01-15 13:39:14
      機載預警雷達對IFF 的干擾分析
      百度遭投行下調評級
      IT時代周刊(2015年8期)2015-11-11 05:50:22
      百度“放衛(wèi)星”,有沒有可能?
      太空探索(2014年4期)2014-07-19 10:08:58
      泰安市| 德钦县| 嵩明县| 攀枝花市| 新乡市| 来凤县| 璧山县| 东港市| 文水县| 麻城市| 张家川| 金秀| 唐海县| 合肥市| 虎林市| 常山县| 鄢陵县| 萨迦县| 绥阳县| 迁安市| 泰兴市| 龙口市| 浦江县| 松江区| 东乌珠穆沁旗| 武强县| 晋城| 黑河市| 通江县| 含山县| 大化| 和顺县| 陕西省| 尉氏县| 蒙阴县| 巩义市| 扬中市| 登封市| 澄江县| 辉南县| 武宣县|