定位方式获取用户的位置信息。天气查询功能是获取指定城市最近5天的天气信息。离线地图功能是显示支持离线地图的省份、城市信息,对离线地图进行下载、删除、更新、查看等操作。自定义标注点功能是记录用户常用位置,标注在地图上,并实现标注点的新建、查看、删除、分享等操作。获取被监护人地址功能是指在被监护人授权允许情况下,监护人实时获取被监护人位置信息的功能。
从非功能的角度来看:
(1)性能需求
当UI线程阻塞5秒以上时,Android系统就会提示用户程序没有响应,如此便对用户的体验带来较差的影响,因此需将所有UI线程的阻塞控制在5秒钟以内。另外,手机的内存空间有限,且无法拥有PC机那样强大的处理功能,所以实现系统时需要优化数据结构,并使用缓存技术,以此提高系统性能。
(2)健壮性需求
在系统运行过程中,手机设备可能会出现来电、网络中断、电池没电等异常状况,所以一个足够健壮的系统应该具有较强的容错机制,确保系统不异常退出,不产生破坏性数据。
(3)安全性需求
由于系统中涉及到基于位置的服务,需要定位用户的位置,为了确保用户的位置信息不被他人设置修改或进行有关统计,本系统使用GPS定位技术。
(4)可移植性需求
对于本系统,确保可以在不同的硬件环境中运行,即系统可方便移植到任何使用Android系统的手机上。
(5)可维护性需求
可维护性是软件进行维护工作时的一个重要参考依据,是评价软件是否易于维护的一个标准,也是软件产品的一个关键质量特征。所以,在系统的设计与实现过程中,需要重视系统的可维护性。本文采用模块化及面向对象方法开发系统,便于后期的代码修改。
(6)可扩展性需求
由于时间紧迫,本次系统的功能还不够丰富,规模也较小,将来还可以进一步升级,有较大的扩展空间。
百度地图Android SDK是一套基于Android 2。1及以上版本设备的应用程序接口。开发者可以使用该SDK轻松访问百度地图服务和数据,开发出功能丰富、交互性强的适用于Android系统移动设备的地图应用。目前百度地图Android SDK提供的地图缩放等级为3-19级,所包含的地理信息有建筑物、道路、河流、学校、公园等内容。
由于Google地图SDK服务有可能出现的地域局限性,虽然Google地图SDK的技术最为可靠,文档介绍最为翔实,也只能舍弃不用。而高德地图SDK使用的数据更新较慢,比较老,也舍弃不用。百度地图Android SDK虽然出现最晚,但由于处于上升期,且数据较新,功能逐渐完善,故而采用了百度地图SDK。没有预料到的是百度地图SDK在迭代更新到V3。0。0版本时,进行了接口优化和重新设计,更改了大部分的类,包括功能、使用方法,甚至名称,且不再支持老版本,造成了大部分工作的重新开发。这给SDK应用者一个很好的警示,在选择SDK时要在稳定的老产品和功能上升扩展的新产品间取个好的折中。所以本课题选择采用百度地图Android SDK作为研究的对象和开发的基础。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,Eclipse是一个开放源代码的、基于Java的可扩展开发平台。所以本课题使用Java语言和搭建Android开发环境的Eclipse软件进行开发。