周輝+王文青+趙峰+郭啟倩


摘 要: 為了解決原有跨斷層測距記簿器老舊及記簿程序功能不完善的問題,結合實際需求和自身優勢,選用目前最為流行的Android智能終端作為記簿器并開發相配套的跨斷層測距外業記簿應用程序。主要從技術手段、功能設計、總體結構和主要功能模塊的實現等方面做簡要介紹。結果表明該軟件工作正常并實現了所有設計的功能,能夠滿足現有業務的需求。
關鍵詞: 跨斷層測距; 記簿程序; Android; XML文件
中圖分類號: TN926?34 文獻標識碼: A 文章編號: 1004?373X(2017)01?0017?03
Abstract: In order to deal with the problems of ageing and incomplete functions of cross?fault range finding record program, in combination with the actual demand and advantage of the cross?fault range finding recorder, the most popular Android intelligent terminal was chosen as the recorder, and the matched cross?fault range finding record application program was deve?loped. The technical means, functional design, overall structure, and the implementation of the main function module are introduced briefly. The test results show this software works normally, can realize all designed functions and meet the demand of the existing businesses.
Keywords: cross?fault range finding; record program; Android; XML file
0 引 言
跨斷層形變監測被認為是較可靠的地震前兆監測手段之一。跨斷層場地形變觀測是根據大地形變測量原理,在斷層上進行斷層垂直、水平活動的直接觀測技術,觀測量是斷層兩側的相對位移量,其物理意義明確,觀測信息直觀,觀測手段成熟,在我國已有40余年歷史,積累了大量有價值的觀測資料,在地震預測研究、地質探測、地球運動學和地球動力學研究中發揮了重要作用[1?3]。目前中國地震局第二監測中心負責12個跨斷層測距測量場地的觀測任務。之前跨斷層測距外業觀測數據采集仍然使用1993年問世的惠普HP?100LX掌上電腦。由于該掌上電腦已停產多年,機器及數據連接線經過十多年的使用已嚴重老化,故障率高,目前很難找到相匹配的零部件,并且所配套外業記簿軟件功能不完善,雖然有較完整的數據記錄功能但沒有相應的限差檢查等功能,觀測人員需要人工計算觀測結果來檢查是否超限,給正常觀測外業工作帶來極大的不便。
自從Google于2007年推出專為移動設備設計的開源操作系統Android以來,Android吸引了眾多軟件開發者的目光,2012年以來它的市場份額超過70%。鑒于現存的以上情況,本文采用Android智能終端開發相配套的跨斷層測距外業記簿應用程序。
1 系統設計
1.1 Android開發環境
Android是一個基于Linux內核的移動操作系統。可利用Eclipse軟件進行編程,采用Android虛擬設備(AVD)進行仿真,使用Java語言開發Android應用程序。搭建、配置Android開發環境需要如下軟件工具:
(1) Java Development Kit(JDK):JDK是整個Java的核心,包括Java運行環境,Java工具和Java基礎的類庫,是Android軟件開發中最基礎的軟件包。
(2) Eclipse:Eclipse是Android開發中常使用的開發環境(IDE),應用軟件開發工作主要在其上完成。
(3)Android Software Development Kit(Android SDK):Android SDK是一系列Android專屬的軟件開發工具的集合,包含開發Android應用程序的各種工具集,有Android模擬器(Android Emulator)、Android調試工具(Android Debug Bridge)等。
(4) Eclipse插件ADT:ADT旨在為Eclipse提供一個強大的集成環境來開發、調試Android 應用程序。
1.2 功能設計
參考前一款跨斷層外業記簿程序的功能特點,再加入一線觀測人員的意見。本文開發了集觀測數據記錄和超限檢查于一體的跨斷層測距外業記簿軟件,該程序由以下三個模塊組成:外業觀測記簿模塊、實用功能模塊和軟件設置模塊。系統功能模塊如圖1所示。
(1) 外業觀測記簿模塊實現以下功能:根據記錄人員的操作記錄觀測基礎信息、天氣情況和觀測數據等,計算出單次觀測成果;在記錄的過程中對一些限制條件進行超限檢查;最后對原始觀測數據加密,使得原始觀測數據在存儲時以加密方式存儲。
(2) 實用功能模塊實現的功能有:讀取指定跨斷層測邊的觀測數據以及計算相對誤差等觀測成果,根據超限標準進行提示;可根據日期和觀測場地的經緯度等參數計算日出日落時間以及允許觀測的時間段。
(3) 軟件設置模塊主要用于設置和查看程序正常運行所需的各種參數,包含當前觀測期數、是否使用軟鍵盤等。
2 系統實現
2.1 Android應用程序結構分析
Android應用程序由Activity,Intent,Service,Content Provider[4]四個重要部分組成。如圖2所示,Activity實現應用程序的界面,負責與用戶交互;Intent承擔傳遞應用程序中所有數據的工作。它既可在應用程序之間傳送數據,也可用于自身內部的Activity/Service之間的數據交互。Service主要在后臺處理一些耗時的邏輯,或者去執行某些需要長期運行的任務。Content Provider負責存儲數據。本文設計的外業記簿應用程序的主要功能由Activity,Intent和Content Provider組件完成,共設計了12個Activity用戶界面用于用戶查看錄入等操作。
2.2 解析和生成XML文件
本文采用eXtensible Markup Language(XML)格式存儲觀測數據文件和配置文件。XML是W3C制定的電子文件結構和內容描述的一個開放標準,已經得到了人們廣泛的支持與應用[5]。
因此如何正常解析XML格式的文件顯得尤為重要。XML文件解析是指把代表XML文件的一個無結構的字符序列轉換為滿足XML語法的結構化組件的過程[6]。Android支持三種解析技術:DOM,SAX和XMLPull。綜合考慮移動設備內存的大小、XMI文檔的大小以及移動應用程序中解析文檔的主要用途等多方面的因素[5],本文采用XMLPull解析器對XML文件進行解析。XMLPull解析器提供了相應的事件,允許用戶的應用程序代碼從解析器中獲取事件,如開始元素和結束元素事件[6]。使用parser.next()方法可以進入下一個元素并觸發相應的事件。事件將作為數值代碼被發送[5],因此,用戶代碼可以對感興趣的事件進行選擇,然后進行相應的處理。解析XML功能的實現代碼如下:
2.3 數據加密解密
為了獲得真實可靠的原始觀測結果、相關成果及觀測時間等信息,記簿程序有必要對這些信息進行加密保護。本文采用Advanced Encryption Standard(AES),即高級加密標準作為數據加密算法。該標準由美國國家標準與技術研究院(NIST)在2001年11月26日發布,并于2002年5月26日成為正式標準[7]。
AES加密過程是在一個4×4的字節矩陣上運算的,其加密過程分別涉及到4種操作:字節替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和輪密鑰加(AddRoundKey)。解密過程分別為對應的逆操作。由于每一步操作都是可逆的,按照相反的順序進行解密即可恢復明文。本文調用Android SDK提供的API實現對觀測讀數、測量限差、計算結果進行加、解密,其中主要的加、解密代碼如下所示:
3 結 論
目前,本文已經完成了外業記簿應用程序的開發與測試。2015年7月該程序在二測中心跨斷層測距外業中得到了全面應用,圓滿的完成了此次觀測任務。外業記簿程序的主界面如圖3(a)所示,記簿中基礎信息記錄界面如圖3(b)所示。
該應用程序是跨斷層測距外業記簿的最初版本。隨著業務的不斷深入,該應用程序仍需進一步優化:連接測距儀器,實時獲取觀測讀數;集成基于網絡的數據提交功能,使科研人員能夠更方便快捷地獲取到最新的觀測成果;添加測距儀器檢查功能。
參考文獻
[1] 劉文義,張希.用形變測量實現地震跟蹤預測方法的研究[J].大地測量與地球動力學,2006(z1):17?21.
[2] 張希,張四新,王雙緒,等.川滇地區近期地殼運動的應變積累[J].大地測量與地球動力學,2007(4):8?15.
[3] 劉天海,尚紅,寇建新,等.基線測量技術更新的實用化研究[J].大地測量與地球動力學,2011,31(3):150?155.
[4] 嚴海衛,章雒霏,杜雙偉,等.基于Android開發平臺的教學應答系統的研究與設計[J].南京師范大學學報(工程技術版),2015(1):30?34.
[5] 欒詠紅.基于Android的XML解析器的分析與比較[J].南京曉莊學院學報,2011,11(6):98?100.
[6] 李瑞花.基于Android的XML解析技術的分析[J].計算機時代,2010(12):31?33.
[7] 鄒蕾.基于AES的Flash加密實現[J].電腦編程技巧與維護,2014(22):115?116.