基于Android的跨断层测距记簿程序的开发

周辉+王文青+赵峰+郭啟倩


摘 要: 为了解决原有跨断层测距记簿器老旧及记簿程序功能不完善的问题,结合实际需求和自身优势,选用目前最为流行的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. 技术文