APP下载

基于Android的城市空气质量查询APP设计与功能实现

2016-08-16王健文

福建质量管理 2016年12期
关键词:线程空气质量定位

王健文

(延边大学 吉林 延边 133000)



基于Android的城市空气质量查询APP设计与功能实现

王健文

(延边大学 吉林 延边 133000)

随着智能终端设备的发展,硬件的革新、运营商的大力推广、资本的注入以及PC互联时代崛起的大互联网公司移动业务的推进,移动互联网迎来爆发式的发展,移动互联网不仅带来了创新的商业模式同时也极大的改变了人们的生活方式及生活品质,通过移动终端,人们可以享受到移动搜索、地图导航、酒店机票预订等便捷的服务。

根据2014年数据,当前移动终端市场Android和IOS市场占有率份额超96%,其中Android市场占有率超83%。Android发展迅速,在性能上和UI上不断优化,用户体验也不断提高,提供地理信息类服务的应用日渐增多。本文以空气质量APP为例来介绍基于Android的地理信息服务应用设计开发的流程。

本文首先介绍了移动互联的概念及当前Android市场的背景现状,然后详细介绍了所用到的开发环境及相关技术,按照软件开发的主要流程,依次对需求分析、功能设计、功能实现做了详细描述,最后对论文做了总结,总结了工作过程中的问题及经验并对Android的发展做了展望。

地理信息;安卓;定位;空气质量

随着社会信息化的推进,网络的普及率越来越高,网络通讯速率也越来越高,PC互联网无疑改变了人们的生活方式,人们通过的PC网络分享信息、办公、网上购物、通讯等,极大方便了人们的生产生活。移动+互联网产生移动互联网的概念,但移动互联网不是移动和互联网简单的加法而是乘法,是移动和互联网融合而成的。截至2015年2月,移动电话用户总数达到12.9亿户,截止2015年底4G的覆盖率也达到了85%以上,5G业务也已投入商运,移动互联网已成为互联网业务创新和发展的新趋势,庞大的移动通信用户群也为移动互联的发展奠定了良好基础。

移动互联网相对于互联网而言是新鲜的事物,移动互联网的定义有广义和狭义之分。广义的移动互联网是指用户可以使用手机、笔记本等移动终端通过协议接入互联网,狭义的移动互联网则是指用户使用手机终端通过无线通信的方式访问采用WAP的网站。而在这个移动互联网蓬勃发展的时代,移动终端正一步步成为用户获取信息的主要方式,以智能电话为代表的移动终端不仅携带方便而且鉴于当前越来越优质的网络通讯服务,我们应该以移动终端为切入点为用户提供更好的服务,本文使用Google提供的API及地理信息相关的服务及定位方面的技术设计开发一款空气质量信息获取的APP,展现Android端地理信息服务类APP设计开发的完整流程,让人们体会到前端技术以及地理信息技术的发展状况及给广大用户带来的便捷。

GPS定位技术的发展和在线Map的广泛运用为地理信息服务系统的开发提供了良好的技术支持,本文基于当前热门的移动设备平台Android和地理信息服务以空气质量APP为例,按照软件开发流程使用Java编程语言、一些框架、算法以及地理信息及定位方面的知识展示APP的设计开发流程,实现符合需求的功能同时让人们感受到地理信息服务产品带给人们生活的便捷。包括各类概念以及设计实现的细节在对应章节都做了阐述,通过整个过程得出编码设计方面的成果及地理服务服务类产品的优势。

一、开发环境及相关技术

(一)Android系统简介

Android中文俗称安卓或安致,是一个基于Linux内核的开放移动操作系统,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发,主要设计用于触屏移动设备如智能手机和平板电脑。

(二)Android Software Development Kit

软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

Android SDK是Google提供给Android开发者的开发工具包,用来开发移动终端、可穿戴设备、TV等应用的工具,包括编译构建工具及个版本系统对应的平台工具等。

(三)Android使用的语言

Android使用的编程语言是Java,Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

(四)百度地图SDK

百度地图Android SDK是一套基于Android2.1及以上版本设备的应用程序接口。您可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,定位SDK就是为移动端提供的LBS接口。

(五)关于AndroidStudio

Android Studio是一个基于JetBrains IntelliJ IDEA为Android平台开发程序的集成开发环境,可跨平台运行,2013年5月16日在GoogleI/O上发布,可供开发者免费使用。

二、城市空气质量查询APP需求分析

(一)客户端功能需求分析

1.搜索

通过菜单栏的搜索按钮进入选择更多城市页面,展示热门城市及所有城市列表,可以滑动选择,按照首字母排序,可以使用侧边字母快速索引快速选择城市。通过此功能用户可以方便查找全国各地城市,并能通过城市名查询到对应的空气质量信息及其在地图上的位置。

2.定位

移动互联网的快速发展给人们的生活带来诸多方便,LBS类的服务类应用国内百度地图和高德地图两家独大。APP有定位需求的话可以直接集成百度地图或高德地图的定位sdk即可快速实现。实现的原理大致相同,android定位一般有四种方法,这四种方式分别是:GPS定位,WIFI定准,基站定位,AGPS定位。

Android GPS:需要GPS硬件模块的支持,通过卫星来实现定位,定位需要的时间长,比较耗电,需要在室外等开阔的环境中,定位精确度高。

Android基站定位:因为基站的位置是固定的所以将设备周围的基站的信息包括位置信号强度等发送到服务器,服务器就可以计算出设备所在的大体位置,误差一般在几十米到几百米内。

Android Wifi定位:WiFi定位是需要网络连接的,根据WIFIMAC,就是将周围WiFi热点的信息上传到服务器,服务器进行处理就可以返回经纬度坐标。

AGPS定位:一种结合了网络基站信息和GPS信息对移动台进行定位的技术,需要增加GPS接收机模块,并改造手机天线,同时要在移动网络上加建位置服务器、差分GPS基准站等设备。优势是定位精度高,而且首次捕获GPS信号的时间短,只需要几秒。

3.空气质量指数

空气质量指数(AQI)是定量描述空气质量状况的非线性无量纲指数。其数值越大、级别和类别越高,说明空气污染状况越严重,对人体的健康危害也就越大。

空气质量指数对人们的生产生活有一定的指导意义,人们一般能接触到数据为环保中心公布的数据和美国大使馆公布的数据,当空气质量发生较大变化时,例如多日雾霾来风,美国大使馆的监测值就会低很多,而北京环境监测中心的值却没有太大的变化,因为环境检测中心使用的是过去24小时的平均值,所以是不能一概而论的。

本应用中用户可以获取到城市对应的空气质量AQI指数,及pm2.5、pm10、CO等空气质量详细信息。

4.空气质量地图

通过地图可以清晰的展示出全国各城市的空气质量指数信息,用户可以方便的将空间位置信息与空气质量信息联系起来,还可以方便的进行数据的比较,让用户对全国的空气质量的分布情况有快速的了解。

5.侧滑菜单

移动终端设备因为屏幕尺寸的限制,展示给用户的空间比较小,所以把菜单及页面切换按钮放到侧滑菜单里,用户可以方便的打开关闭及页面切换。

(二)客户端其他需求分析

项目全局异常控制。项目全局异常控制可以防止app在运行时因为某个运行时异常导致整个进程崩溃而且可以收集异常信息,方便开发人员分析并修复bug。

三、App的设计与功能实现

(一)项目开发的软硬平台

表1 软硬件平台信息表

(二)App的设计

1.项目框架设计

线程池就是使用池来管理线程对象,使用时直接去拿,节省了创建线程对象的时间,提高运行效率。

合理利用线程池能够带来三个好处:

第一,重用线程对象降低资源消耗。

第二,使用任务队列,提高响应速度。

第三,线程是消耗资源的,使用线程池可以方便灵活的对线程进行管理。

2.UI框架搭建

项目主界面使用Activity即MainActivity,页面内容使用fragment来填充,使用DrawerLayout实现侧滑菜单,菜单也使用fragment来填充,菜单项切换,即切换主页面为不同的fragment,地图界面为fragment+viewpager+slidinglayout+fragment,搜索界面为使用activity,顶部使用Toolbar实现标题栏。

(三)UI的设计

1.View生成

Android有三种方式可以用来生成用户界面,xml文件中定、java代码中动态生成、通过用户界面接口生成。Xml文件中定义是最简单的也是最常用的,MVC模式中讲求业务逻辑与UI的低耦合,所以通过xml文件生成UI更易于维护。

Android中以View类来描述界面的控件,View包括两大实现类,第一种是普通的VIew,如:TextView、EditText等,第二种是ViewGroup,即盛放普通View及其他ViewGroup的容器,如:LinearLayout、RelativeLayout等。在xml文件中按照节点的层级关系及位置关系来书写处相应的界面即可。

2.Android布局

Android有5大布局,分别是RelativeLayout、LinearLayout、FrameLayout、AbsoluteLayout、TableLayout。不过前3种布局才是最常用的布局,AbsoluteLayout已经被Google废除,TableLayout可以被GridView替代,因此也很少用。

相对布局RelativeLayout允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。

线性布局LinearLayout是根据水平Horizontal或者垂直Vertical方向排列的布局,其最大的特点是可以给子控件按照权重分配空间。

帧布局FrameLayout中的子视图总是被绘制到相对于屏幕的左上角上,添加的View对象以层叠方式展现后添加的显示在上面。

(四)App的功能实现

在实现App功能时,按模块进行开发编码,相应的不同的模块分别列举相应的核心代码。

侧滑菜单使用DrawerFragment封装,然后将其添加到DrawerLayout,left布局节点下,侧滑菜单主要是在展示区域有限的移动设备上展示更多的内容,用户可以方便的唤出和隐藏,本APP中的侧滑菜单包含了内容切换的功能及常规的设置等。

空气质量指数功能主要是展示空气质量详细信息,界面可以上下滑动,默认展示北上广深四个城市的空气质量数,包括aqi、so2、co、等物质的实时监测值及24小时的平均值等。

空气质量地图模块中,用户可以左右滑动切换不同不同物质的监测值,不同城市的数值按照其地理位置在地图上显示出来,用户还可以使用手势对地图进行放大缩小及移动操作。此过程中要使用BaiduMap的地理编码服务,地理编码提供了一种坐标转换的方式,即将地理位置信息转换成用于地理信息系统的地理坐标。在地理信息系统中,若要知道把数据显示在何处,就要在数据中包含定位需要的X和Y坐标。将地理空间坐标赋予给这些数据的技术就是地理编码技术。

四、结论

本文的主要思想是论述在Android操作系统上进行应用软件的开发,以空气质量客户端的开发为实例详细讲述了平台下设计开发手机应用软件的全过程。java是面向对象的语言,所也在写代码时也要遵循面向对象的原则,在书写业务逻辑部分的时候尽量把具有不同功能的代码抽取到单独的方法中,这样才遵循单一责任原则,而且有利于提高代码的可读性,把通用的部分提取到基类中,在基类中还可以对所有实现类进行统一的管理,非常方便,把一些工具方法提取为工具类配以清晰的注释,这样在使用的时候很方便。而且对于项目中使用的第三方库也要做一层封装,这样在更换库的时候并不会影响现有代码,activity与fragment通信最好使用接口回调,这也是google官方推荐的做法,期间也遇到一些问题,比如说fragment多层嵌套会出现异常,项目返回再次进入空白的情况等,但再仔细调试研究后也都解决了,写代码时要保持清晰的思路和耐心。同时也体会到地理信息技术在移动终端应用的完美实践,随着智能终端的发展,地理信息技术可以在发展出新的模式。

[1]解攀科.基于Android的移动学习系统设计与实现[J].2011(05)

[2]盖索林著.Android开发入门指南(第二版)[M].2010

[3]马宁.嵌入式移动开发.程序员,2007(12)

[4]万玛宁,关永,韩相军.嵌入式数据库典型技术SQLite和BerkeleyDB的研究[M].微计箅机信息,2006

[5]差沙.开Android开发手机应用[M].程序员,2008(1)

[6]Jerri Ledford, Prasanna Amirthalingam. Pro Android[M]. Apress, 1 edition, 2008

[7]曹敬,高曝.JAVA与C/C++的结合[J].计算机与现代化,2005(1)

[8]曲桂婷.基于Android移动式地理信息终端的开发研究[J].2012(6)

[9]荼凤娅.基于Android的手机搜索定位应用开发[J].2010(5)

[10]刘平.Android手机访问服务器的一种数据交换方法.电子设计工程.2010,18(9):96-102

[11]杜华.GIS中电子地图坐标系的转换研究与实现.贵州大学硕士学位论文.2007:77-82

[12]巫细波,胡伟平.Google Maps运行机制以及应用研究.华南师范大学学报.2009,11(2):106-110

王健文,男,研究生在读,延边大学,研究方向:GIS开发与生态系统服务。

猜你喜欢

线程空气质量定位
《导航定位与授时》征稿简则
Smartrail4.0定位和控制
基于国产化环境的线程池模型研究与实现
找准定位 砥砺前行
浅谈linux多线程协作
“空气质量发布”APP上线
车内空气质量标准进展
重视车内空气质量工作 制造更环保、更清洁、更健康的汽车
开展“大气污染执法年”行动 加快推动空气质量改善
青年择业要有准确定位