目 录
摘 要 I
Abstract II
1绪论 1
1.1 背景及意义 1
1.2 主要方法和研究进展 1
1.3主要内容 1
1.4本论文的结构安排 1
2系统概述 2
2.1开发环境搭建 2
2.1.1 安装JDK 2
2.1.2 安装Eclipse集成开发环境 2
2.1.3 下载安装Android SDK 2
2.1.4 为Eclipse安装ADT插件 3
2.1.5 创建AVD模拟器 3
2.2相关技术 3
2.2.1百度地图 3
3.2.2 Sqlite 4
3.2.3 Android 9
3.2.4 GPS技术 9
3系统分析 11
3.1研究目标 11
3.2可行性分析 11
3.2.1经济可行性 11
3.2.2 技术的可行性 11
3.3 需求分析 11
3.4 性能分析 12
4系统实现 13
4.1功能框架设计 13
4.1.1地图模块 13
4.1.2 GPS定位模块 13
4.1.3其它功能模块 14
4.2开发准备 15
4.2.1搭建Android开发环境 15
4.2.2创建项目工程 17
4.3界面设计 19
4.3.1设计准备 19
4.3.2编程实现 20
4.5 GPS模块 24
4.5.1权限配置 24
4.5.2服务注册 25
4.5.3代码实现 25
4.5.4服务绑定 27
4.6搜索模块 27
4.6.1网络连接 28
4.6.2搜索结果解析 28
4.7路线查询 30
4.8数据存储 31
5系统测试 33
5.1进入系统 33
5.2注册登录 33
5.3进入系统 34
5.4轨迹跟踪服务 35
5.5历史轨迹查询 36
结 论 39
参考文献 40
致 谢 41
3系统分析
3.1研究目标
这个系统的目标是做出一个记录人们走动轨迹的基于Android系统的平台,方便人们知道的自己的日常走动情况。记录每次的走动的轨迹。开发一个界面简单清晰,UI友好易懂,而且无赘余功能的运动平台。
3.2可行性分析
采用开源的免费的手机安卓系统,并且利用的也是免费的百度地图API技术来实现课题。
3.2.1经济可行性
一个免费平台的软件开发时间和成本都不是太高,而且是面向个人,不会产生企业级应用的成本预算,在开发的过程中,考虑到课题的特性,需要拥有一台可以使用GPS定位,并且是安卓系统的智能手机,本人已拥有一台可用的安卓手机,其它方面,测试,编码,并不会产生太多硬设备的费用。
3.2.2 技术的可行性
本系统主要用到了目前比较流行的手机系统安卓,以及 百度地图 API技术,由于以前Android开发的经验比较少,相关知识掌握也不是特别多,所以需要付出一些努力去深入学习Android,不过在掌握了JAVA的基本开发的基础上,学习Android的过程中并没有遇到很大的难题,因为Google提供了在eclipse上面的ADK,一步一步的完善课题,并且参照到了百度地图API提供的详细的开发说明书,不懂一点问一点,慢慢完善课题也变得简单起来,在理论上是可行的。
3.3 需求分析
问题描述:
设计一款可以应用于地图服务系统重现的安卓APP,在硬件上需要一台安卓系统的可以应用GPS定位的手持设备。
程序运行的时候,要求能够实时的记录运动中的GPS经纬点数据,创建数据表,并存储,然后通过调用程序中保存好的轨迹数据,通过点与点相连,连接成一条轨迹,实现轨迹的实时记录。
为了提高程序的可用性、人性化,在UI设计方面需要做的更好一些,要比类似的市场中的GPS记录程序更加的吸引用户,还需要提高软件的交互性,来留住用户。
3.4 性能分析
程序安全性高、响应速度快、信息处理速度快。没有出现卡顿或导致死机现象。数据存储安全,由于数据流并不是很大,所以读取快,因此程序性能比较高。
4系统实现
4.1功能框架设计
4.1.1地图模块
支持百度地图在用户设备上的显示,可对地图显示的类型(图层)进行设置,满足不同情景的需求。如图4.1所示功能。
图4.1 地图模块功能图
4.1.2 GPS定位模块
支持GPS位置服务的注册、启动和停止,获取设备的地理位置信息(经纬度)。如图4.2所示功能。
图4.2 系统总体框架图
首先创建一个搜索对话框配置文件。这个文件一般命名为searchable.xml[14].,并且必须保存在项目的res/xml/目录下。配置文件的根节点必须为searchable,可以有一个或多个属性。如以下代码所示:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/search_label"
android:hint="@string/search_hint"
android:icon="@drawable/icon"
android:searchMode="showSearchLabelAsBadge"
/>
然后需要有一个可用于搜索的Activity,在它之内再调用搜索模块,获取并显示相应的搜索结果。当用户从搜索框执行搜索时,Android提供的搜索管理器(Search Manager)会通过ACTION_SEARCH Intent 把要搜索的内容(关键字)发送到这个Activity。针对此,需要声明它可以响应ACTION_SEARCH Intent,并且增加搜索框配置信息。
AndroidManifest.xml中配置代码如下:
<application android:name=".DoSearch"
... >
<!-- 处理搜索 -->
<activity ...>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
……
</application>
其中的android:name属性值必须为”android.app.searchable”,android:resource属性值必须引用res/xml/目录下的搜索配置文件。
为了使应用程序能够调用搜索框,还需要进行如下配置:
<!-- 调用DoSearch处理搜索 -->
<meta-data android:name="android.app.default_searchable" android:value=".DoSearch"
/>
目前为止,自定义的搜索框已经可以正确地调用。不过,真正实现搜索功能,还需要下文中搜索模块的支持。