基于Android系统的简单测量程序设计

2017-04-20 08:50冯金涛
教育教学论坛 2017年16期
关键词:Android系统程序设计智能手机

冯金涛

摘要:智能手机正在成为新的测量记录和计算处理工具。本文针对三个简单测量问题(前方交会、单一导线和水准路线),研究基于Android智能手机平台的程序设计方法,取得了一些经验,成功编制出相关程序。

关键词:测量;程序设计;Android系统;智能手机

中图分类号:P209;TP311.1 文献标志码:A 文章编号:1674-9324(2017)16-0256-04

随着时代发展和科技进步,智能手机已成为人们必备的日常生活用品,其应用范围不断扩大,可以服务于人们多方面的工作和生活需要。智能手机的核心是开放式的手机操作系统,使用者可根据需要安装不同的软件,从而提高了手机的可扩展性。目前主要的手机操作系统是Google公司推出的Android和苹果公司的iOS,而Android系统由于开放源代码,得到手机行业内众多厂家和服务提供商的支持,占有绝大部分的市场份额。智能手机也可以应用于测量数据的记录和处理工作,已有很多专家学者在此方面进行了研究和程序开发。测量人员以前曾经普遍使用各种专门的记录手簿,利用计算器作辅助计算,这种手工作业方式的效率偏低。后来出现了面向工程技术人员使用的可编程计算器(例如SHARP PC—E500,CASIO fx—5800P等),可部分减少测量人员的数据记录和处理工作,以及随后出现的各种掌上电脑(PDA:Personal Digital Assistant),所有这些电子设备都需花費一定数量的资金购买并深入研究程序开发技巧。然而随着智能手机的出现,这些可编程计算器或掌上电脑在测量工作中将逐渐被淘汰。由于智能手机用途广泛,且已成为人们必备的日常生活用品,测量技术人员研究基于Android系统的测量程序开发技术,提升其使用价值,无疑是具有重要意义的。目前手机应用软件市场可提供下载的各种程序众多,但专用于测绘生产作业的却很少,其中一个重要原因是广大测绘技术人员还未掌握基于Android系统的测量程序设计方法。本文以三个简单测量工作(前方交会、单一导线和水准路线)的计算程序开发为例,分析其中遇到的一些问题和解决方法,希望对相关技术人员有所帮助。

一、Android应用程序开发简介

Android是Google公司发布的基于Linux内核的开源手机平台,包括操作系统、中间件和各种应用软件。中间件是指Google公司为Android应用程序开发而专门提供的各种函数库和运行时环境,以及应用程序框架,程序员可以很方便地在此基础上开发各种应用程序。Android应用程序开发类似于在Windows平台上用Visual Studio集成开发环境作可视化编程,其工作过程可分为两部分:GUI界面设计和编写程序代码。Android平台的应用开发语言是Java,开发环境可以选用Eclipse+ADT或Android Studio,所有这些工具都可以从互联网免费下载使用。Eclipse是IBM公司在2000年11月以开放源码的授权和运作模式发布的,程序员可通过增加插件使其成为多种计算机语言(例如Java、C/C++、COBOL、PHP、Perl、Python等)的开发工具,作Android应用程序开发必须先下载并安装ADT插件(Android Development Toolkits)。Eclipse提供了对多种平台特性的支持,使用时间较长,拥有大量的用户群,但Google公司为了方便开发者基于Android开发,在2013年首次推出Android Studio,并建议广大Android开发者尽快放弃Eclipse+ADT的开发环境,改为使用Android Studio[1][2]。在开发环境中完成GUI界面设计和程序代码输入后,可通过Android虚拟设备(AVD:Android Virtual Device)测试运行。AVD的运行界面如同真实手机,但启动较慢,为此可使用第三方提供的Genymotion工具代替[1,3]。程序员还可以将手机与计算机系统相连,直接用手机进行测试。已测试成功的程序即可在手机上安装运行,投入使用。

五、程序设计的一些经验

作者初学Android应用程序开发,在编程过程中也不可避免地遇到许多困难,经过反复测试终于一一解决。总结出如下一些经验:

1.首先应根据具体问题,确定窗体界面的数量。以上的前方交会程序比较简单,只有一个Activity,程序启动后输入有关数据,然后单击命令按钮即可获得计算结果。单一导线和水准路线由于区分多种类型,需要分别提供窗体界面,使编程工作更加复杂。

2.由于手机屏幕尺寸有限,在界面设计时不宜使用太多的控件。以上三个程序在接收一系列的角度、距离或高差观测值时,只采用一个编辑框控件,各数据依次录入,彼此之间以逗号隔开。在程序代码中调用split()方法可自动区分各观测值,从而使界面简洁,方便使用。这种方法还可用于区分点名和坐标(或高程)数据,从而在同一个编辑框中可以输入已知点的完整信息(点名+该点的坐标或高程数据)。

3.Intent通常用于在一个窗体界面(MainActivity)中启动另一个窗体界面(AcitivityToStart),这时应指明AcitivityToStart对应的类,即所谓Intent的“显式调用”:

Intent intent=new Intent(MainActivity.this,ActivityToStart.class);

startActivity(intent);

但是由于单一导线和水准路线都区分多种类型,分别有各自的窗体界面,它们属于不同的类,因此不能直接按照上述方法操作,否则系统会提示编译错误。这时可以通过设置Component属性来确定将启动哪个窗体界面,从而解决这一问题。有关的代码如下:

ComponentName comp=null;

switch(dxType){ // dxType表示导线类型,在选择界面中指定

case 1: //选择支导线

comp=new ComponentName(MainActivity.this,ZhiActivity.class); break;

case 2: //选择闭合导线

comp=new ComponentName(MainActivity.this,BiheActivity.class); break;

case 3: //选择附合导线

comp=new ComponentName(MainActivity.this,FuheActivity.class); break; }

Intent intent=new Intent();

intent.setComponent(comp);

MainActivity.this.startActivity(intent);

4.在單一导线的测量计算程序中,已知点和未知点都具有多种属性(包括点名,x坐标和y坐标),因此应当开发相应的point类,将已知点和未知点都作为该类的对象进行创建,从而提高代码的使用效率。水准路线的测量计算程序也有同样的问题,可以同样处理。

本文针对三个简单测量问题(前方交会、单一导线和水准路线),研究基于Android智能手机平台的测量程序设计方法,编制出相关程序,并在真实手机上测试成功。这些程序还可以作进一步的改进,例如增加容错功能和异常处理机制,将计算结果以报表形式输出等。智能手机的功能很多,以智能手机为平台的Android应用程序开发也具有丰富的内容,学习Android应用程序开发应当首先学习Java编程语言[1]。另一方面,Android应用程序不仅用于智能手机,也可用于智能电视、游戏机和一些可穿戴的智能设备(例如手表和眼镜),甚至用于汽车和机器人的控制系统设计,因此这项技术具有重大的应用价值,必然会激起更多学生和科技人员的兴趣。

参考文献:

[1]李刚.疯狂Android讲义(第3版)[M].北京:电子工业出版社,2015.

[2]尹孟征.基于Android的APP开发平台综述[J].通讯电源技术,2016,33(4).

[3]王向辉,张国印,沈洁.Android应用程序开发(第3版)[M].北京:清华大学出版社,2016.

[4]程效军,鲍峰,顾孝烈.测量学(第五版)[M].上海:同济大学出版社,2016.

猜你喜欢
Android系统程序设计智能手机
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
假如我是一部智能手机
高职高专院校C语言程序设计教学改革探索
智能手机如何让我们变得低能
PLC梯形图程序设计技巧及应用