




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LANZHOU UNIVERSITY OF TECHNOLOGY 毕业设计 题 目 基于Android智能手机的车辆监控和轨迹回放系统 学生姓名 * 学 号 * 专业班级 软件工程三班 指导教师 * 学 院 软件 学院 答辩日期 2015.6.14 第 页 基于 Android 智能手机的车辆监控和轨迹回放系统 The System of Based on The Android Smartphone Vehicle Monitoring and Trajectory Playback 兰州理工大学毕业设计 摘摘 要要 本文主要介绍了基于 Android 智能手机平台和 GPS 相关开发技术,
2、结合高德地图 API 以 及第三方云端服务器 Bmob,设计并实现的一个车辆实时监控和轨迹回放系统。同时,本文从 定位系统的功能完整性出发,将服务器端和手机客户端的开发作为研究对象,完成了基于 Bmob 云端服务器的后台搭建;通过对整个系统的各个主要功能模块详细的分析与研究,该系 统可以稳定地运行,保证了数据记录的准确性,基本上能满足用户相关的记录服务,管理等需求。 另一方面,该系统对界面也进行了优化设计,体现出更加人性化的用户体验。 关键字关键字:Android;GPS; Bmob;车辆监控;轨迹回放 兰州理工大学毕业设计 I ABSTRACT The paper mainly illust
3、rated that an Android-based GPS track recurrence system for Mobile phone was designed and implemented by using Android smartphone platform and the characteristics of GPS,and combining with High German Map. In this paper, starting from the integrity of the positioning system, the server and the mobil
4、e client development as the research object, to realize the background based on Bmob server setup. By analyzing and studying the major function modules of the system carefully and testing them rigorously,the system can not only run smoothly and well , but ensure the accuracy of the data records, it
5、can meet mobile users demand for record service in the main. Under the premise of meeting the requirement for service, an optimized design to the UI of the system was carried out. key words:Android;GPS ;Bmob;Vehicle monitoring;Track back 兰州理工大学毕业设计 目目 录录 摘摘 要要.I ABSTRACT .II 第第 1 1 章章 绪绪 论论.1 1.1 项目
6、背景.1 1.2 实际意义.1 1.3 ANDROID 系统简介.1 1.4 BMOB 服务器.1 1.5 设计说明书的内容.2 第第 2 2 章章 可行性研究可行性研究.4 2.1 系统目标.4 2.2 系统数据流分析.4 2.3 数据字典.4 2.4 可行性分析.5 2.4.1 经济可行性 .5 2.4.2 技术可行性 .5 2.4.3 应用可行性 .5 第第 3 3 章章 需求分析需求分析.7 3.1 问题描述:.7 3.2 系统功能描述:.7 3.2.1 实时位置监控功能:.7 3.2.2 轨迹回放功能:.7 3.2.3 我的位置功能:.7 3.2.4 GPS 参数设置功能: .7 3
7、.2.5 用户信息设置功能:.7 3.3 系统流程图:.8 3.4 数据流程图:.8 3.4 系统 E-R 图描述:.10 第第 4 4 章章 总体设计总体设计.12 4.1 系统特点.12 4.2 系统结构.12 4.2.1 系统整体先进性.12 4.2.2 系统的结构设计.12 4.3 系统的总体设计方案.13 4.4 编程环境的选择.13 4.4.1 编程语言JAVA .13 4.4.2 开发工具ECLIPSE .14 4.5 系统运行环境配置.15 4.6 系统功能模块设计.15 兰州理工大学毕业设计 i 第第 5 章章 详细设计详细设计.18 5.1 管理模块详细设计.18 5.1.
8、1 登陆模块设计 .18 5.1.2 我的位置模块设计 .18 5.1.3 轨迹监控模块设计.19 5.1.4 轨迹回放模块设计 .19 5.1.5 GPS 参数设置模块设计.20 5.1.6 用户信息设置模块设计.20 5.2 数据库设计.21 5.2.1 系统物理结构设计 .21 5.2.2 表设计 .21 5.2.3 表之间的关联设计.23 第第 6 章章 编码编码.24 6.1 编码描述.24 6.2 核心代码:.24 第第 7 7 章章 软件测试软件测试.29 7.1 软件测试的目的.29 7.2 软件测试的原则.29 7.3 测试的研究和选择.30 7.4 测试的过程及组织.30
9、7.5 测试用例及结果.30 7.5.1 登录模块测试.30 7.5.2 我的位置模块 .30 7.5.3 轨迹监控模块 .31 7.5.4 轨迹回放模块 .31 7.5.5 GPS 参数设置模块 .32 7.5.6 用户信息管理模块 .32 第第 8 章章 软件使用说明书软件使用说明书.34 8.1 登录注册系统.34 8.2 我的位置部分操作.35 8.3 轨迹监控部分操作.35 8.4 轨迹回放部分操作.37 8.5 GPS 参数设置部分操作.39 8.6 用户信息管理部分操作.39 设计总结设计总结.42 参考文献参考文献.43 外文原文外文原文.44 外文译文外文译文.52 致致 谢
10、谢.59 兰州理工大学毕业设计 0 第第 1 1 章章 绪绪 论论 1.1 项目背景项目背景 在移动 4G 网络飞速发展的今天,智能手机的广泛使用,已经使其成为了信息化世界的主 流掌上移动设备.在各种五花八门的智能手机平台中,Android 系统通过其强大的开源性及平台 移植性,已跃居成为世界上使用最广泛的手机平台之一.同时,在众多的 Android 应用中,各类车 辆监控软件也逐渐走向成熟,更多的功能需求也随之而来. 1.2 实际意义实际意义 通过高德地图官方提供的 API,开发一款基于 Android 平台的车辆信息管理软件,以实现 对车辆轨迹的实时定位和重现.用户交互方面,通过简单清新的
11、界面设计,实现更加人性化的用 户体验. 1.3 Android 系统简介系统简介 Android 是一种以 Linux 为基础的开放性的源代码操作系统,主要使用于移动便携设备。 2012 年 2 月数据显示,Android 操作系统占据全球智能手机市场 52.5%的巨大份额,中国市场 占有率约为 68.4%。Android 系统通过其强大的开源性及平台移植性,已跃居成为世界上使用 最广泛的手机平台之一同时,本系统就是基于 Android 平台实现的。 1.4 Bmob 服务器服务器 Bmob 是一个在线的第三方云端服务器,可提供数据服务,文件服务,推送服务,扩展服务等. Android 客户端
12、可以通过该云服务器上传或者下载查询数据,使用起来更加简单方便. Bmob 有如下几点的功能和优势:(在数据服务方面) (1)具有丰富的数据类型,使用更加自由; Bmob 无模式(schema-free)对象存储,Bmob 提供了丰富的数据类型,包括 String (字符串)、Number(数值,包括整数和浮点数)、Boolean(布尔值)、Date(日期)、 File(文件)、Geopoint(地理位置)、Array(数组)、Object(对象)等。 (2)数据操作更加简单方便; Bmob 提供了一体化的可视化后台服务,使数据操作起来简单快捷,增删改查可以实现 云端同步。同时,也可以进行离线下
13、数据操作,足以灵活应对各种用户网络不稳定的情况, 另外,Bmob 还支持多表关联处理,实现数据的批量处理,同时还可以实现本地化数据缓存 操作,使数据存取更简洁。 兰州理工大学毕业设计 1 (3)采用云端代码,实现更加灵活; 对于一些比较复杂的软件应用,开发者更希望自己可以对业务逻辑的实现有一定的掌 控,这一方面,Bmob 云端代码考虑到了这种灵活性,提供另外让代码直接在 Bmob 云上运行 的功能效果,如果在云端更新了部分代码,其他的移动应用将会立即自动更新,这使得新功 能的上线发布变得更加便捷。 (4)无条件配合定时任务,操作更方便; 有了云端代码的黄金搭档,Bmob 能在给定时间点或给定时
14、间间隔的基础上,自动执行 云端代码。通过这样的功能我们可以实现类似于定时任务计算排行榜的效果,以及定时开 通某个用户某项权限等需求,这使得操作简单方便。 (5)无线的个性化定制,更有爱; Bmob 的公有云用户可以任意享受的数据存储空间和 API 请求次数,这使得中小型的 开发者可以更加放心使用该技术。此外,一旦有新的需求,专属的私有云服务足够满足用 户个性化需求,同时还有更多的特级服务随时享用。 (6)获得平台 SDK 的支持,更省事 Bmob 提供全平台的 SDK 支持,仅仅需要一个云端数据库,便可轻松实现多平台数据 共享,云端实时更新,各实时同步。 1.5 设计说明书的内容设计说明书的内
15、容 本系统对基于 Android 智能手机的车辆监控和轨迹回放系统进行设计和开发,以实现对车 辆轨迹信息的实时监控和分析。本软件的难点在于应用高德地图的 API,第三方服务器 Bmob 的数据服务和用户管理的操作以及 GPS 的相关技术,同时忽略硬件接口,模拟数据文件实现实 时位置和轨迹。 该设计说明书包括共包含 8 章:第 1 章,绪论,即该章节,主要介绍了基于 Android 智能手 机的车辆监控和轨迹回放系统的开发背景,实际意义,相关技术的介绍以及其该系统的设计原 则;第 2 章,可行性研究,主要介绍了对该系统的可行性进行了分析,主要包括系统的规模和目 标,目前正在使用的系统,分析系统数
16、据流,数据字典,可行性分析总结等;第 3 章,需求分析,主 要描述了系统进行需求分析中所得到的总体结论,包括系统的需求分析、系统的功能性描述、 系统运行流程分析、E-R 图等等;第 4 章,总体设计,主要描述了系统软件结构、硬件配置方 面的规划,分析系统的总体设计方案,系统的特点,对系统功能模块的设计,系统功能的描述,以 及对编程环境的配置和选择;第 5 章,详细设计,本章包括对数据库的具体设计以及对各个模 块的详细设计;第 6 章,编码,介绍了编码方面的相关知识;第 7 章,软件测试,本章主要对本系 统的功能进行测试,包括软件测试的原则、测试过程的注意事项以及组织、测试用例的过程 兰州理工大
17、学毕业设计 2 及测试结果等;第 8 章,软件使用说明书,本章介绍了如何使用本软件,以及如何使用户能更好、 更快捷地使用该系统。此外,还包括设计总结,参考文献和致谢等内容。 兰州理工大学毕业设计 3 第第 2 2 章章 可行性研究可行性研究 2.1 系统目标系统目标 系统基本目标有以下几个: (1)对每一个车辆的当前位置实现准确定位; (2)对车辆的轨迹信息进行实时的定位和回放; (3)对登陆车辆的 GPS 信息进行任意设置; (4)对车辆的登陆密码等基本信息进行管理。 2.2 系统数据流分析系统数据流分析 在经过仔细调查多方用户需求的基础上,得到该系统的数据流程图。如下图 2-1 所示。 图
18、 2-1 系统数据流程图 2.3 数据字典数据字典 通过对本系统的数据流程的仔细分析,设计了数据项和数据结构如下:(系统采用第三方 服务器 Bmob 进行数据存储管理) (1)用户(车辆)基本信息(一个用户即一辆车,一辆车一个 GPS 的 ID) 兰州理工大学毕业设计 4 记录 id 描述=objectId,STRING 型,主键(第三方提供) 当前车辆名称(登录名称)描述=车辆名称 username,STRING 型 当前车辆名称(密码)描述=车辆登陆密码 password,STRING 型 当前位置描述=车辆位置信息,currentGeoPoint,BmobGeoPoint 型, (2)当
19、前位置信息 记录 id 描述=objectId,STRING 型,主键(第三方提供) 车辆 id 描述=parentId,用来标示车辆的唯一性,STRING 型,外键 当前位置描述=车辆当前位置信息 bmobGeoPoint,BmobGeoPoint 型 创建时间=创建时间,createAt,Date 型 更新时间=更新时间,updateAt,Date 型 (3)车辆轨迹信息 记录 id 描述=objectId,STRING 型,主键(第三方提供) 所有行程轨迹点描述=车辆的轨迹信息.latLngs,ArrayList 型 车辆 id 描述=parentId,用来标示车辆的唯一性,STRING
20、 型,外键 创建时间=创建时间,createAt,Date 型 更新时间=更新时间,updateAt,Date 型 2.4 可行性分析可行性分析 2.4.1 经济可行性经济可行性 对于一个完全免费平台的软件,开发周期和开发成本都不会太高,况且是面向个人,更不会 产生企业级应用的成本预算,所以,在开发的过程中,充分的考虑到该课题的特性,我们需要拥有 一台可以使用 GPS 定位,并且是具有稳定的 Android 系统的网络连接正常的智能手机,在硬件 方面,本人已经拥有一部可用的手机,在其它方面,应该不会产生太多硬件设备的费用。 2.4.2 技术可行性技术可行性 该系统用到了目前市场上比较流行的手机
21、操作系统-Android,以及高德地图。由于本人 并没有 Android 开发方面的经验,更没有系统地学习过相关方面的知识,所以要完成本系统就 需要从零开始学习 Android,不过比较安慰的是,在掌握了丰富的 JAVA 知识的基础上,学习 Android 的过程中并没有想象中的那么恐怖,因为 Google 提供了在 eclipse 上面的 ADK 插件, 在一步步完善课题的同时,同时参照到了高德地图提供的详细的开发说明文档,一点一点攻克, 慢慢完善课题也就没有那么困难,所以,在理论上是可行的。 2.4.3 应用可行性应用可行性 兰州理工大学毕业设计 5 首先分析这个系统的用户,主要是在车辆轨
22、迹管理方面有一定需求的用户。系统的以 APP 的形式展示,界面友好简单;用户可直接通过联网下载安装后使用该系统即可,其使用方式 是用户得心应手的。所以在操作上来说基本可行。 结论意见:综上分析上可以看到,对于个人开发该小型系统具有很好的经济、技术、应 用性。同时通过该系统的开发可以锻炼我的专业能力,也使我的 Java 理论知识得到质的升华。 兰州理工大学毕业设计 6 第第 3 3 章章 需求分析需求分析 3.1 问题描述:问题描述: (1)本系统需设计一款可以应用于 Android 智能手机的车辆实时监控和轨迹回放的应用 程序。所以,硬件上需要一台具有 Android 系统的手持设备。 (2)
23、系统要求在运行中能实时记录车辆行驶过程中的 GPS 经纬点信息,同时可以实现任意 时刻轨迹的回放和相关 GPS 信息的设置。在用户信息方面,系统要求实现对进本信息进行修 改。 (3)最后,为了提高程序的可用性,在 UI 设计方面需要提高软件的交互性,体现出更加人性 化的用户体验。 3.2 系统功能描述:系统功能描述: 3.2.1 实时位置监控功能实时位置监控功能: (1)记录实时的 GPS 经纬点数据; (2)轨迹点连线,形成轨迹; (3)存储轨迹信息; 3.2.2 轨迹回放功能轨迹回放功能: (1)车辆轨迹选择性回放; (2)导出车辆轨迹图片; (3)车辆轨迹选择性删除; 3.2.3 我的位
24、置功能我的位置功能: (1)登陆成功即定位; (2)手动定位当前位置; 3.2.4 GPS 参数设置功能参数设置功能: (1)轨迹播放模式的设置; (2)定位显示信息的设置; 3.2.5 用户信息设置功能用户信息设置功能: (1) 修改用户登陆密码; (2) 修改用户基本登陆头像; 兰州理工大学毕业设计 7 3.3 系统流程图系统流程图: 进入系统之后用户可以进行车辆轨迹监控管理,车辆轨迹回放管理,GPS 参数设置管理,我 的位置(当前位置)管理,用户信息管理.该系统的流程图如图 3-1 所示。 图 3-1 系统流程图 3.4 数据流程图数据流程图: 在仔细研究系统数据流程的基础上,得到系统所
25、要处理数据的流程。数据流程图如图 3-2 所示: 图 3-2 系统数据流程图 兰州理工大学毕业设计 8 在对如上数据流程图进一步细化后,得到各个子模块的数据流程图如下所示。 登录模块和我的位置模块,如图 3-3 所示: 图 3-3 登录模块和我的位置模块数据流程图 轨迹监控模块,如图 3-4 所示: 图 3-4 轨迹监控模块数据流程图 轨迹回放模块,如图 3-5 所示: 图 3-5 轨迹回放模块数据流程图 用户信息修改模块,如图 3-6 所示: 兰州理工大学毕业设计 9 图 3-6 用户信息修改模块数据流程图 3.4 系统系统 E-R 图描述图描述: 系统实体及其属性如下图所示。 图 3-7
26、用户实体及属性 图 3-8 位置实体及属性 兰州理工大学毕业设计 10 图 3-9 轨迹实体及属性 图 3-10 各实体关系 ER 图 兰州理工大学毕业设计 11 第第 4 4 章章 总体设计总体设计 4.1 系统特点系统特点 (1)本系统通过对 UI 的巧妙设计,具备人性化的用户体验;通过 MD5 算法对用户密码加以 处理,一定程度上提高了系统的安全性。 (2)可以完全通过移动设备客户端登录系统,支持多平台运行,维护起来更加方便。 (3)各功能模块独立性强,可以根据需要任意组合。 (4)支持所有的 Android 操作系统。 4.2 系统结构系统结构 4.2.1 系统整体先进性系统整体先进性
27、 对于 Android 系统的软件的优劣,国内市场基本达成一定的共识,表现为如下几点: (1)开放性开放性 谈到优势方面,首谈 Android 平台的开放性,开放的操作平台允许任何任意异动终端厂商 随时加入到 Android 的大家庭中来。 (2)实施独立性实施独立性 在曾经的一段时间,尤其是在欧美等地区,各类手机应用都受到运营商的各种制约,使用的 功能,接入的网络,无时无刻不受到运营商的肆意控制。自从 iPhone 系列上市,用户便可以更加 方便地连接网络,”霸道的”运营商的制约瞬间减少。 (3)丰富的硬件选择丰富的硬件选择 这方面依旧与 Android 平台的开放性息息相关,由于 Andr
28、oid 平台的开放性,更多的相关 厂商会推出五花八门,功能各异的多种产品。尽管功能上存在各种差异,但依旧不会影响到数 据同步、甚至于软件的兼容方面的特性。 4.2.2 系统的结构设计系统的结构设计 本系统采用传统的 C/S 结构,即客户机和服务器端结构,其核心的工作流程是将复杂的计 算机应用任务巧妙的分解成多个子任务,由多台计算机分工协同完成,即采用”功能分布式”原 则,客户端在完成数据处理,数据表示以及用户接口功能的同时,服务器端也要完成数据库管理 系统的核心任务; C/S 结构的优点:能全方位发挥客户端 PC 机的处理能力,很多复杂的工作可以在客户端简 单处理以后再转交给服务器处理,即客户
29、端响应速度相对来说比较快,具体表现为以下两点: 兰州理工大学毕业设计 12 (1)应用服务器所要运行数据负荷相对较轻; (2)数据的存储管理功能会更加透明. 但是传统的 C/S 体系结构存在一定的缺陷:用户在使用前需要下载并安装好相应的客户 端程序才能访问到服务器,这样的话,不但给用户造成了相应的不便,而且容易导致客户端负载 过重,影响整个系统的性能,得不偿失! 系统结构图如图 4-1 所示: API,数据库操作 数据采集 APP. Service Service 监控终端 Client 图 4-1 系统结构图 4.3 系统的总体设计方案系统的总体设计方案 本系统针对每个登陆该系统的车辆的轨迹
30、信息进行有效管理,在提高用户体验度的同时, 可以有效地提供更全方位的服务: (1)登陆注册模块: 在用户首次登陆系统后,如果没有退出当前账号,在用户下次进入系统的同时,提供了自 动登陆的功能,方便用户操作,同时,在密码的安全性方面,使用的 MD5 加密算法,一定程度上提 高了系统的安全性. (2)我的位置模块: 在用户成功登陆系统后,进入主页面的同时,显示当前登陆车辆的位置信息, 方便用户 的后续操作. (3)轨迹回放模块: 在用户进行轨迹回放操作完成后,增加了导出轨迹图片的功能,以当前时间信息命名图 片,为用户后续查看轨迹信息提供了相当大的方便. (4)用户信息管理模块: 本系统提供了更换用
31、户登陆头像的功能,大大增加了系统的灵活度和用户体验度. 4.4 编程环境的选择编程环境的选择 4.4.1 编程语言编程语言JAVA JAVA的开发环境有不同的版本,如 sun 公司的 JAVA Developers Kit, 简称 JDK。后来微 兰州理工大学毕业设计 13 软公司推出了支持 JAVA 规范的 Microsoft Visual J+ JAVA 开发环境,简称 VJ+。 JAVA 的特点 (1)平台无关性 平台无关性是指 JAVA 能运行于不同的平台。JAVA 引进虚拟机原理,并运行于虚拟机, 实现不同平台的 JAVA 接口之间。使用 JAVA 编写的程序能在世界范围内共享。JA
32、VA 的数 据类型与机器无关,JAVA 虚拟机(JAVA Virtual Machine)是建立在硬件和操作系统之上,实 现 JAVA 二进制代码的解释执行功能,提供于不同平台的接口的。 (2)安全性 JAVA 的编程类似 C+,学习过 C+的读者将很快掌握 JAVA 的精髓。JAVA 舍弃了 C+ 的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。JAVA 对程序提供了安全管理器,防止程序的非法访问。 (3)面向对象 JAVA 吸取了 C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁 性和便于维护性。在 JAVA 中,类的继
33、承关系是单一的非多重的,一个子类只有一个父类,子 类的父类又有一个父类。JAVA 提供的 Object 类及其子类的继承关系如同一棵倒立的树形, 根类为 Object 类, Object 类功能强大,经常会使用到它及其它派生的子类。 (4)分布式 JAVA 建立在扩展 TCP/IP 网络平台上。库函数提供了用 HTTP 和 FTP 协议传送和接受 信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。 (5)键壮性 JAVA 致力于检查程序在编译和运行时的错误。JAVA 自已操纵内存减少了内存出错的 可能性。JAVA 还实现了真数组,避免了覆盖数据的可能。JAVA 提供:Null 指
34、针检测、数组 边界检测、异常出口、Byte code 校验。 JAVA 去掉了以下几个 C 和 C+功能: 指针运算; 结构; typedefs; #define; 需要释放内存; 这将减少了平常出错的 50%,而且,JAVA 很小,整个解释器只需 215K 的 RAM。 面向对象:JAVA 实现了 C+的基本面向对象技术并有一些增强,(为了语言简单,删除了 一些功能)。JAVA 处理数据方式和用对象接口处理对象数据方式一样。 4.4.2 开发工具开发工具Eclipse Eclipse 是一款可扩展的开放性源代码集成开发环境。IDE 经常将其应用范围限定在“开 发、构建和调试”的周期之中。Ec
35、lipse 允许在同一集成开发环境中集成来自不同的供应商 兰州理工大学毕业设计 14 的工具,同时实现工具之间的互操作性,从而明显改变项目的工作流程,使开发者可以更加专注 在实际的嵌入式醒目的目标上。 Eclipse 开发框架的这种灵活性来源于其丰富的扩展点。它们是在 XML 中定义了已知的 接口,并以此充当插件的耦合点。同时该扩展点的范围从常规表述过滤器中的简单字符串,到 每一个可能的 JAVA 类的描述。任意的 Eclipse 插件定义的扩展点都可以被其它的插件使用, 反之,任意的 Eclipse 插件也可以根据其它插件定义的扩展点的规则。除了了解接口外,插件不 知道它们通过扩展点提供的服
36、务将如何被使用。 利用 Eclipse,我们可以将高级设计与低级开发工具巧妙的结合在一起。事实上,由于 Eclipse 并不了解开发语言,所以无论 JAVA 语言调试器、C/C+调试器还是汇编调试器都是 有效的,并可以在相同的框架内同时瞄准不同的进程或节点。 Eclipse 的最大特点是它能接受由 JAVA 开发者自己编写的开放源代码插件,这类似于微 软公司的 Visual Studio 和 Sun 微系统公司的 NetBeans 平台。Eclipse 为工具开发商提供了更 好的灵活性,使他们能更好地控制自己的软件技术。 4.5 系统运行环境配置系统运行环境配置 操作系统:Android 操作
37、系统; 服务器:Bmob 服务器; 网络环境:具有较好的网络连接; 硬件配置:具有 Android 操作系统的智能手机。 4.6 系统功能模块设计系统功能模块设计 本系统可划分为五大个功能模块:我的位置模块,轨迹监控模块,轨迹回放模块,GPS 参数 设置模块,用户信息管理模块。 整个系统的功能模块,如图 4-2 所示: 兰州理工大学毕业设计 15 图 4-2 系统功能模块图 我的位置模块:显示当前用户的位置信息,同时也可以实现手动定位。 轨迹监控模块:对每个车辆的行程进行监控并记录(模拟实现)。 轨迹回放模块:用于查看某个车辆的某个时间段的轨迹信息,包括途经信息,同时可以实 现对车辆轨迹路线进
38、行截图保存。 GPS 参数设置模块:根据用户需求,对车辆的的轨迹播放模式和位置信息模式进行设置。 用户信息管理模块:根据用户需求,对用户的登录密码和登陆头像进行设置。 在系统功能分析的基础上,得到以下的功能模块图: 我的位置模块:显示当前用户的位置信息,同时也可以实现手动定位。 图 4-3 我的位置模块图 轨迹监控模块:对每个车辆的行程进行监控并记录,实现轨迹数据的增加功能(模拟实现)。 兰州理工大学毕业设计 16 图 4-4 轨迹监控模块图 轨迹回放模块:用于查看某个车辆的某个时间段的轨迹信息,包括途经信息,同时可以实 现对车辆轨迹路线进行截图保存,也可以选择删除轨迹信息。 图 4-5 轨迹
39、回放模块图 GPS 参数设置模块:根据用户需求,对车辆的的轨迹播放模式和位置信息模式进行设置。 图 4-6 GPS 参数设置模块图 用户信息管理模块:根据用户需求,对用户的登录密码和登陆头像进行修改设置。 图 4-7 用户信息管理模块图 兰州理工大学毕业设计 17 第第 5 章章 详细设计详细设计 5.1 管理模块详细设计管理模块详细设计 5.1.1 登陆模块设计登陆模块设计 用户正确登陆系统后进行操作。 程序流程图如图 5-1 所示。 图 5-1 登陆模块程序流程图 5.1.2 我的位置模块设计我的位置模块设计 用户登录系统后: (1)显示当前位置信息; (2)手动定位当前位置并显示位置信息
40、; 程序流程图如图 5-2 所示。 兰州理工大学毕业设计 18 图 5-2 我的位置模块程序流程图 5.1.3 轨迹监控模块设计轨迹监控模块设计 用户正常登录后: 对登陆车辆轨迹进行监控(模拟),上传轨迹信息到数据库; 程序流程图如图 5-3 所示。 图 5-3 轨迹监控模块程序流程图 5.1.4 轨迹回放模块设计轨迹回放模块设计 兰州理工大学毕业设计 19 用户正常登录后: (1)对该登陆用户的轨迹信息进行选择性回放; (2)导出轨迹图片; 程序流程图如图 5-4 所示。 图 5-4 轨迹回放模块程序流程图 5.1.5 GPS 参数设置模块设计参数设置模块设计 对登陆用户的轨迹播放模式和位置
41、信息进行设置,程序流程图如图 5-5 所示。 图 5-5 GPS 参数设置模块程序流程图 5.1.6 用户信息设置模块设计用户信息设置模块设计 (1)修改登录用户的密码; 兰州理工大学毕业设计 20 (2)修改登陆用户的头像. 程序流程图如图 5-6 所示。 图 5-6 用户信息修改模块程序流程图 5.2 数据库设计数据库设计 5.2.1 系统物理结构设计系统物理结构设计 根据该系统所需额硬件设备和数据库平台系统的需求,需要对数据库系统的物理存储的 结构进行有效的规划,完成估计数据库的大小,各主要部分的访问频度。同时,需要确定数据文 件的命名规则,日志文件的命名规则。数据文件和日志文件的物理存
42、放位置的设置,如果需要 多个存储设备,则需要规划数据文件的组织方式。 系统内存使用配置,一般来说,数据库系统会自动维护系统内存,但有时为了某些性能问题, 可以根据需要对数据库的内存管理进行另行配置。 5.2.2 表设计表设计 根据前面的数据字典的设计,细化的数据库表的设计。表的设计包括以下内容: 表名(中英文); 兰州理工大学毕业设计 21 字段名; 字段数据类型; 字段是否为空; 字段的长度; 备注,对字段的解释性说明:主键、外键、是否自动增一、是否为索引、是否唯一、是 否进行数据检查等。 用户(车辆)信息表: 表 5-7 用户(车辆)信息表 字段名数据类型是否为空长度备注 objectId
43、STRING否主键,唯一 usernameSTRING否8 passwordSTRING否18 currentGeoPointBmobGeoPoint否 当前位置信息表: 表 5-8 当前位置信息表 字段名数据类型是否为空长度备注 objectIdSTRING否主键,唯一 parentIdSTRING否外键 bmobGeoPointBmobGeoPoint否 createAtDate否 updateAtDate否 轨迹信息表: 表 5-9 轨迹信息表 字段名数据类型是否为空长度备注 objectIdSTRING否主键,唯一 parentIdSTRING否外键 latLngsArrayList否
44、 createAtDate否 updateAtDate否 兰州理工大学毕业设计 22 5.2.3 表之间的关联设计表之间的关联设计 为了保证数据的完整性,需要对表之间相互的数据进行约束,主要是通过外键来实现数据 增删时的数据完备。关系图如图 5-10 所示。 图 5-10 表之间的关系图 兰州理工大学毕业设计 23 第第 6 章章 编码编码 6.1 编码描述编码描述 编码,顾名思义是将信息从一种表现形式转换为另一种表现形式的过程,也将之称为计算 机编程语言的代码简称编码,编码过程中,可以用预先规定好的方法将文字、数字等对象编成 与之对应的数码格式,或者将信息、数据等对象按照一定的规则转换成与之
45、对应的电脉冲信 号。另一方方面,编码在电子计算机、遥控和通讯设备等方面也得到广泛的使用。总之,编码 是信息从一种形式或格式转换为另一种形式的过程。解码,是编码的逆过程。 在计算机硬件领域中,编码(coding)的定义是指用一定的代码来表示各组需求的数据资 料,使之成为具有一定价值意义的计算机可以进行处理和分析的信息。同时代码可以用来作 为事物的记号,它的表现形式有很多种,其中它可以用数字、特殊的符号、字母、或之间的任 意组合来表示。 将数据转换为与之对应的代码或编码字符表现,并能将之译为原数据形式的过程,是计算 机形成具体指令的过程,也是我们程序设计中的不可或缺的一部分。例如,我们平常在地图自
46、 动制图中,按一定的规则将某些数字与一定的字母表示我们想要展现的地图内容的过程中,后 期通过编码,使计算机能识别地图的各地理要素,这便是一个形象的编码过程。 6.2 核心代码核心代码: 本系统部分核心代码如下: 用户登陆模块: public void onSuccess() / 获取当前的用户 GlobalValue.vehicleEntity =BmobUser.getCurrentUser(LoginActivity.this,VehicleEntity.class); / 做一个本地密码的存放 SharePreferenceUtilsharePreferenceUtil =SharePr
47、eferenceUtil.newInstance(LoginActivity.this); sharePreferenceUtil.putString(GlobalValue.vehicleEntity.getObjectId() + password, MD5.makeKeyByMD5(passwordValue); / 登录成功以后 上传一个坐标表示当前的坐标 uploadCurrentPosition(); 兰州理工大学毕业设计 24 当前位置模块当前位置模块: / 请求数据 BmobQuery bmobQuery = new BmobQuery(); bmobQuery.addWher
48、eEqualTo(parentId, GlobalValue.vehicleEntity.getObjectId(); bmobQuery.findObjects(this, new FindListener() Override public void onSuccess(List list) GlobalValue.vehicleEntity.setCurrentGeoPoint(list.get(0).getBmobGeoPoint(); / 获取定位坐标 LatLng latLng = new LatLng(GlobalValue.vehicleEntity.getCurrentGeo
49、Point().getLatitude(), GlobalValue.vehicleEntity.getCurrentGeoPoint().getLongitude(); / 移动当前的点到屏幕中央 CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(new CameraPosition(latLng, 16, 0, 0); aMap.moveCamera(cameraUpdate); / 反编地理编码 GeocodeSearch geocodeSearch = new GeocodeSearch(MyActivi
50、ty.this); geocodeSearch.setOnGeocodeSearchListener(MyActivity.this); RegeocodeQuery regeocodeQuery = new RegeocodeQuery(new LatLonPoint( latLng.latitude, latLng.longitude), 300, GeocodeSearch.AMAP); geocodeSearch.getFromLocationAsyn(regeocodeQuery); public void onError(int i, String s) showToast(定位失
51、败); / 取消进度条 dismissProgress(); ); 轨迹实时定位模块轨迹实时定位模块: / 生成轨迹并上传到服务器 private void createLocusAndUpdate() DLog.e(createLocusAndUpdate); 兰州理工大学毕业设计 25 DialogUtil.dismissDialog(locusTipDialog); locus = new LocusEntity(); locus.setParentId(GlobalValue.vehicleEntity.getObjectId(); ArrayList latLngs = new Ar
52、rayList(); / 填充数据 Random random = new Random(); LatLng baseLatlng = simulationBaseLatlng(random.nextInt(10); LatLng temp = null; for (int i = 0; i 10; i+) int mRand = random.nextInt(3); / 0 1 2 随机数 0 表示 x 加 1 表示 y 加 2 表示 x,y 加 double xRand = random.nextDouble() / 100; / nextDouble 产生一个 0.0 - 1.0 的浮点
53、数 if (NullUtil.isEmpty(baseLatlng) showToast(轨迹数据上传失败); return; switch (mRand) case 0: temp = new LatLng(baseLatlng.latitude + xRand, baseLatlng.longitude); break; case 1: temp = new LatLng(baseLatlng.latitude, baseLatlng.longitude + xRand); break; case 2: temp = new LatLng(baseLatlng.latitude + xRa
54、nd, baseLatlng.longitude + xRand); break; if (GlobalValue.bounds.contains(temp) latLngs.add(temp); baseLatlng = temp; 兰州理工大学毕业设计 26 locus.setLatLngs(latLngs); showProgress(请稍等.); locus.save(this, new SaveListener() public void onSuccess() dismissProgress(); showToast(轨迹数据上传成功!); / 画轨迹的生成过程 drawLocus
55、Line(); public void onFailure(int statusCode, String errorMessage) dismissProgress(); switch (statusCode) case 9016: showToast(无网络连接,请检查您的手机网络。); break; case 9010: showToast(网络超时。); break; default: DLog.e( + statusCode + + errorMessage); showToast(轨迹数据上传失败!); ); / 画轨迹线 private void drawLocusLine() 兰
56、州理工大学毕业设计 27 / 清除地图上面的当前数据信息 aMap.clear(); / 隐藏菜单 menu.toggle(); / 实现轨迹的追踪效果 final Timer timer = new Timer(); timer.schedule(new TimerTask() public void run() if (index locus.getLatLngs().size() - 1) / 采样 latLngs = lineEquation(locus.getLatLngs().get(index), locus.getLatLngs().get(index + 1); / 发送通知
57、 Message msg = handler.obtainMessage(1); handler.sendMessage(msg); else timer.cancel(); , 0, 66); 兰州理工大学毕业设计 28 兰州理工大学毕业设计 29 第第 7 7 章章 软件测试软件测试 软件测试,顾名思义,一种用来全面检测软件四大性质的过程,即正确性,完整性,安全性,质 量。简而言之,软件测试就是一种实际结果与期待结果之间的一种比较过程。软件测试最经 典定义如下:在既定的规则下对目标程序进行一系列的操作,以发现程序存在的各种错误,以 此来作为衡量软件质量的标准,并对该软件是否能满足设计需求而
58、进行评估的过程。在软件 开发整体完成过程中以及开发完成后,要对目标系统进行充分的调试,这不仅关系到系统的完 整性,更与系统的应用前景息息相关。另一方面,软件测试所花费的时间和精力并不少于开发, 当然,这也是不能用来比较的.从咱们的最终目的出发,这一切都是为了保证系统在今后的运行 过程中能少出错,乐观点就可以持续、稳定的运行。系统测试是将已经完成的软件、硬件以 及其它外部设备全部集成起来,进行的系统综合测试。 7.1 软件测试的目的软件测试的目的 严格意义上讲,软件测试的终极目标是可以尽可能地保证软件产品的质量,在整个软件开 发的周期内,每个环节都要对软件产品的质量进行相当严格的控制。软件质量是
59、由几个方面 来衡量的:一是在正确的时间用正确的方法把一个工作做正确。二是符合一些应用标准的要 求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。 三是质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软 件的高质量。四是质量也代表着它符合客户的需要。作为软件测试,最重要的一件事就是从 客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么 样的问题,只有这些问题都解决了,软件产品的质量才可以说是上去了。 7.2 软件测试的原则软件测试的原则 软件测试从不同的角度出发会派生出两种不同的测试原则:从用户的角度出发
60、,就是希 望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品;从开 发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求,确 立人们对软件质量的信心。为了达到上述的原则,那么需要注意以下几点: (1)测试应该尽早进行,最好在需求阶段就开始介入,因为最严重的错误不外乎是系统不能 满足用户的需求。 (2)程序员应该避免检查自己的程序,软件测试应该由第三方来负责。 (3)设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下 要制造极端状态和意外状态,如网络异常中断、电源断电等。 兰州理工大学毕业设计 30 (4)应该充分注意测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河南-河南假肢制作装配工五级(初级工)历年参考题库含答案解析
- 2024版电子商务合同的法律问题与对策
- 2025年事业单位工勤技能-河北-河北汽车驾驶与维修员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-新疆-新疆计算机文字录入处理员三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西水土保持工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西印刷工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西保安员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东园林绿化工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-北京-北京造林管护工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-北京-北京下水道养护工三级(高级工)历年参考题库含答案解析
- 技师论文 变频器的维修与保养
- 非标自动化设备项目进度表
- 诊断学教学胸部查体
- 桥梁安全事故案例警示
- 育婴员理论模拟考试试题及答案
- YY/T 1095-2015肌电生物反馈仪
- SB/T 10460-2008商用电开水器
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- GA 1800.2-2021电力系统治安反恐防范要求第2部分:火力发电企业
- 细胞生物学实验课件:细胞组分的分级分离
- 欣旺集团种禽养殖管理制度手册
评论
0/150
提交评论