当前位置:文档之家› android开发论文

android开发论文

android开发论文
android开发论文

毕业设计(论文)

题目基于Android平台的

手机地图应用开发

专业数字媒体技术

班级媒体091

学生学号 3090342006

学生姓名齐文龙

指导教师张二虎(教授)

完成时间 2013年6月

2013年

摘要

摘要

随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备。因此手机的应用服务将会有很大的发展空间,手机地图服务就是其中之一。传统的地图服务主要以使用网页方式实现,这些方式仅限于室内或者携带电脑,并不适合户外、出差、旅游等场合下进行,给用户带来极大不便。手机地图的发展满足了人们在手机上对地理信息的需求。Android集成了地图模块和丰富的API,能有效的支持嵌入式软件在分布式移动环境中的定位功能。所以,基于Android的手机地图能精确定位您所在的位置,并能实现公交、步行等路线规划和场所的检索功能。

本文采用了百度地图API包作为开发包,成功实现了地图应用的开发。百度地图包具有快速强大的搜索功能、精致的地图界面、地图信息全、方便用户后期开发等优点,所以国内开发者都倾向于采用百度地图开发包。

系统使用java语言和eclipse开发工具进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程遇到的问题和解决方法进行了讨论。本系统页面设计精美,视觉效果良好,应用简单方便。主要功能包括手机实时定位,指定地点的寻址,酒店、ktv 等场所的查找,规划导航路径等。

关键词:Android,百度地图API,GPS,eclipse

Abstract

As smartphones step by step into the lives of ordinary people, it will become the main equipment for people to obtain information. Therefore, the application of mobile services will have great development space, mobile map service is one of them .The traditional use of web map services mainly be achieved, these methods are limited to indoor or portable computer, not suitable for outdoor, travel, tourism and other occasions carried out has caused great inconvenience to the user .The development of mobile maps to meet the people on the phone on the geographic information needs. Android integrates a map module and rich API, which can effectively support the embedded software in a distributed mobile environment positioning. Therefore, the Android-based mobile maps can pinpoint your location, and can achieve public transport, walking and other places of route planning and search functions.

Here used Baidu Maps API package as a development kit, the successful implementation of the map application development. Baidu map pack with fast powerful search capabilities , sophisticated map interface , map information full , user- late development , etc., so that domestic developers tend to use Baidu Map development kit .

The system using java language and development tools for writing eclipse. At the same time gives a detailed system design process , part of the interface and main functions of operation flow chart diagram , this article on the development process problems and solutions are discussed.

The system's page is beautifully designed, visual effect is good and easy application. It main functions include mobile real-time location, specify the location of addressing, hotel, KTV and other places of search, planning, navigation path and so on.

Key Words: Android, Baidu Map API, GPS, eclipse

目录

1绪论 (1)

1.1研究背景及意义 (1)

1.2课题目前发展现状 (1)

1.3本文的研究内容与结构安排 (2)

2 Android智能手机平台概述 (3)

2.1 Android手机平台的优点及特征 (3)

2.1.1 Android手机平台的优点 (3)

2.1.2 Android手机平台的特征 (3)

2.2 Android系统构架 (4)

2.3 Android software development kit(SDK) (6)

2.4 关于Eclipse (6)

3 系统设计及相关技术 (9)

3.1系统需求分析 (9)

3.2 系统总体流程图 (9)

3.3 系统关键技术 (10)

3.3.1 Android界面布局 (11)

3.3.2 Activity之间的传值 (12)

4系统实现 (13)

4.1地图展示的实现 (13)

4.1.1 Android SDK 下载与安装 (13)

4.1.2获取API Key (14)

4.1.3显示地图 (15)

4.2 菜单功能的实现 (16)

4.3 定位功能的实现 (17)

4.4 路线导航功能的实现 (18)

4.5 地点检索功能的实现 (20)

5项目调试与系统测试 (23)

6总结与展望 (25)

致谢 (27)

参考文献 (29)

2013届数字媒体技术专业毕业设计(论文)

1 绪论

1.1 研究背景及意义

随着智能手机的普及和发展,基于地图的服务不断深入社会的生活。Android是目前最流行的手机智能系统,其强大、快速的处理能力吸引了很多手机厂商如三星、摩托罗拉、HTC、中兴、华为、酷派、魅族等的加入,而其开源的系统框架更是为手机厂商制定有特色的软件、服务提供了方便。

目前的地图服务主要是以单机或者Web的方式实现,不适合身处外地的用户使用,给用户的出行带来了不便。而手机地图服务的便携性和数据的实时性很好的解决了这一问题,因此,设计手机地图服务的应用具有非常实用的价值[1]。所以综上所述,研究并设计开发Android手机地图具有很好的市场前景。

1.2 课题目前发展现状

随着社会的发展,人们对地理信息的需求越来越多,从地图服务中人们得到的不仅仅是方便,还有效率和效益。手机地图服务作为一项高新技术产业,对行业的影响是积极的。一方面,将位置服务与地图相结合可以提高一些相关行业服务的效率[2]。例如在安全救援行业,手机地图服务可以通过手机定位,及时获取救援对象的位置,并在地图上标识出来,给救援工作带来了极大的便利。另一方面,对一些传统行业加以改造,实现其在新环境下的飞跃。最典型的例子便是物流管理,运用基于手机平台的位置服务,将货物的物理位置在地图上标识出来,并以此为基础,处理物流业务的各个环节,实现了物流业务的电子化。随着技术的不断发展,手机地图服务将会渗透到更多的行业,但还存在一些限制条件。比如移动通讯网的覆盖范围,虽然目前我国移动通讯网络的覆盖已经非常广泛,但一些偏

1

齐文龙:基于Android平台的手机地图应用开发

远地区还存在盲区。

对于受众来说,手机终端地图的准确性以及渐变灵活性仍然是所关注的焦点,同时伴随着国内外厂家的不断入驻,近期手机地图市场看点颇多。相比较国外产品,国产终端下载软件的优势更加明显[3],无论在准确性与实用性来讲,但毕竟选择性因人而异[4]。从市场总体来看,谷歌、百度、高德仍然占据绝大部分市场份额。2013 对于国内 GPS 用户来说,从实际导航体验上来看最切身实际的改变,首当其冲我们认为从理想变成现实的当属手机地图的成功普及应用了[5]。

1.3 本文的研究内容与结构安排

本课题主要研究的是在Android平台下基于百度地图API的手机地图,在eclipse的基础上采用Java语言实现了安卓版手机地图的开发,主要包括定位、路线查询、地点检索、酒店、ktv查询等地图基础服务功能。

主要分三大版块来说明。

第一,论述说明了Android的起源、现状及发展趋势,Android的优点等;

第二,论述了本课题采用的一些技术方法和系统实现手段;

第三,在开发过程中遇到的一些问题及解决方法。

2

2013届数字媒体技术专业毕业设计(论文)

2 Android智能手机平台概述

2.1 Android手机平台的优点及特征

Android平台是一种开源的、高自由度的手机操作系统。“开源”是用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。“高自由度”是指用户可以根据自己的喜好来设置手机界面,Android的应用市场甚至还有各式各样的启动器来供用户自己选择,让自己的手机与众不同[6]。

2.1.1 Android手机平台的优点

(1)开放性

Android手机平台是Google公司开发的智能手机操作系统,它的开源、开放将允许更多的手机厂商加入,同时其开放的特性将给开发者带来方便。新的创意的应用将在这个开发的平台不断发光发热。

(2)自由性

摆脱运营商的束缚,让手机能自由接触网络。

(3)兼容性

由于Android的应用程序是基于Java的框架,而Java具有一次编写、到处运行的跨平台的能力。实现了与硬件无关,降低了开发者的负担。

(4)拓展性

Android底层的各种库文件、驱动文件都是开放的,它允许手机厂商指定特色的辅助功能和服务。这给Android智能平台带来很好的拓展性。

2.1.2 Android手机平台的特征

Android应用框架具有可重用性、可替代性。

3

齐文龙:基于Android平台的手机地图应用开发

Dalivk虚拟机:Android平台使用的Dalivk虚拟机是Android最核心的部分之一,Google自主开发。它将Java代码编译成dex类型的数据文件,而后生成APK文件,最后运行。它保证了API向下的兼容性,同时优化了个资源的处理方式,使运行效率较JAVA虚拟机更高。

优化的图形系统:Android提供了一个遵循OpenGL ES1.0标准的3D 图形库及自定义的2D图形库,它们都被优化过。OpenGL ES是OpenGL的缩减版,能够实现各种常用的3D建模、处理效果[7]。

网络支持:支持蓝牙通讯、GPRS-EDGE、3G等大带宽传输和WIFI无限网络连接。

硬件支持:支持相机、摄像、GPS、导航以及感应加速器(如重力感应,温度感应)等各种硬件。

开发环境:包括设备模拟器、调试工具(DDMS),内存和性能分析工具以及其他Eclipse IDE相关的开发插件。

2.2 Android系统构架

Android是一个复杂的智能手机操作系统,其系统构架如图2-1所示。

4

2013届数字媒体技术专业毕业设计(论文)

图2-1 Android系统框架

(1)应用程序(Applications)

此层是应用程序层,即软件层。此层包括所有的应用,它通过调用系统的特定API而形成一个具有特定功能的软件。比如主页、通讯录、电话本、以及浏览器,这些都属于应用程序范畴。

(2)应用框架(Application Framework)

此层是应用程序与虚拟机以及底层库的中间件,应用程序通过调用此层的接口实现对底层的操作,应用框架是Android系统框架最核心的部分之一。它封装了系列接口供应用程序调用。

(3)系统库(Libraries)

系统库大部分的代码采用C/C+编写,它是系统调用的底层库,文件格式为.so。由于Java语言无法控制硬件,而在底层运行中,由需要代码效率高的程序库,所以C/C++编写而成的库,大部分在控制着底层硬件以及一些驱动的实现。

(4)Linux内核

5

齐文龙:基于Android平台的手机地图应用开发

Android操作系统采用的是Linux 2.6版本的内核。在底层内核中,通过编写驱动程序,实现各种功能的驱动。

2.3 Android software development kit(SDK)

Android SDK(Android software development kit)是Google公司针对Android推出的用于手机和移动设备的开发包,是除了手机厂商的专用开发包外唯一的手机模拟器开发包。他通用性高,开发出的应用程序可以保证能运行在大部分设备上,而不是像专用厂商具有一定的不兼容性。同时他具有强大的功能和完善的调试手段,提供运行模拟器、DDMS等丰富的组件,是其他IDE需集成采用的必备元素。目前我们通用的主要有5个版本,分别是android 2.1、2.2、2.3、4.0、4.2。

Android SDK包括各种各样的定制工具,可以帮助开发人员在Android 平台上开发移动应用程序。其中最重要的工具是Android模拟器和Eclipse 的Andrdoid开发工具插件,同时SDK也包含了各种在模拟器上用于调试、打包和安装的工具。

2.4 关于Eclipse

Android平台为开发者提供了源码开放的软件开发包(SDK),它包含了使用Java语言开发Android平台应用的必要工具和组件(API)。进行开发前先要建立合适的开发环境,其中基于Java的整合型可扩展平台Eclipse是我们的首选[8]。

(1)搭建Eclipse开发环境

Eclipse的运行建立在JRE之上,因此必须先安装JRE。可以从

https://www.doczj.com/doc/3a7032822.html,下载JDK5或JDK6,然后按提示进行JDK的安装;安装完成后,再配置环境变量:如在Windows XP或Windows 2000的操作系统中,可右键单击“我的电脑”,然后依次选择“属性”、“高级”、“环境变

6

2013届数字媒体技术专业毕业设计(论文)

量”,在弹出的窗口的“系统变量”中找到“Path”环境变量,点击“编辑”按钮,在弹出的对话框中的“变量值”一栏输入JDK的安装路径即可,最后用同样的方法设置环境变量“Class—path”,至此便完成了JDK的安装。

有了Java运行环境,就可以下载Eclipse ZIP包,解压后就能直接运行Eclipse.exe。

在Eclipse中安装一个名为ADT的Android开发工具插件,就可以使用SDK 进行Android应用开发。ADT安装步骤:在Eclipse中依次选择

Help>SoftwareUpdates> Find and Install,在弹出的对话框中选择Search for new features to install并点击Next,选择NewRemote Site。在结果对话框中为远端站点命名,并在URL栏中输入https://dlss1. https://www.doczj.com/doc/3a7032822.html,/android/eclipse/,点击OK,随后ADT站点被添加到搜寻列表中,再点击Finish即可;在搜索结果对话框中选择ADT>Eclipse Integration>Android Development Tools,单击Next,接受协议,点击Next 和Finish;选择Install All,并重启Eclipse,ADT安装完成。

ADT安装完毕后,还要配置Eclipse参数,使其指向SDK根目录,过程如下:在Eclipse中选择Window>Preferences打开参数设置面板,选择Android选项;在SDK路径中填入Android的安装路径,单击Apply和OK,完成参数设置。至此,就能在Eclipse环境下进行Android应用的开发了。

Java IDE的产品在IDE领域中是最多的,有商业的也有免费开源的。在本项目中我们选用Eclipse作为开发工具,Eclipse是一个开源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一个服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。JDT使得Eclipse 在Java开发上有如下一些优点:快速的性能,方便的重构功能,快速修复错误,调整组织导入包,弹出窗口进行代码自动装配等。

7

齐文龙:基于Android平台的手机地图应用开发

8

2013届数字媒体技术专业毕业设计(论文)

3系统设计及相关技术

本章主要阐述离线地图服务系统的需求分析、系统流程和界面设计,并对系统实现过程中用到的关键技术和算法进行介绍说明。

3.1 系统需求分析

离线地图的主要功能是以图片、文字的形式向用户提供地图服务功能,同时它将提供友好、方便的用户界面[9]。其功能需求包括:

(1)地图操作:能实现对地图进行放大、缩小和移动。

(2)定位操作:此程序能通过底层驱动获取目前用户所在的经纬度,然后根据相关算法,在地图上标注目前用户所在的地理位置。

(3)地点检索:用户只要在检索栏输入自己想知道的地点或者搜索附近的酒店、KTV等场所,都可以在地图上搜索到具体位置。

(4)路线显示:系统实现了两种路线方法,步行和驾车路线,并且路线上都会有导航提示。

3.2 系统总体流程图

系统采用了简单的操作方式和布局方式去完成软件设计。显示页面主要分为三个页面,进入页面、地图展示缩放页面、菜单页面。而技术页面有五个页面,其中地图展示缩放页面由两个Activity完成,菜单页面由两个Activity完成。

程序流程图如下图3-1:

9

齐文龙:基于Android平台的手机地图应用开发

图3-1 系统流程图

3.3 系统关键技术

Android是一个优秀的智能手机平台,其提供四个关键的组件供我们开发选择,不同的组件适应不同的开发需求[10]。Android系统也采用MVC 的架构,整体上,我们可以把代码部分看作是Cntrol,Android的XML布局文件我们大体上可以看成是View。基于上述的理解,所以开发的关键技术就在于我们如何协调Android提供的各种功能,我们选择XML来进行界面布局。

(1)活动(Activity)是Android中非常重要的概念,选择Activity 是开发的首要步骤。简单的说就是一个界面就是一个Activity,它有其自己的生命周期。界面创建时,此活动开始,而当界面关闭或者消失时,此

10

2013届数字媒体技术专业毕业设计(论文)

活动结束其生命周期。在android.app.Activity类中,Android 定义了一系列与生命周期相关的方法,在我们自己的 Activity 中,只是根据需要复写需要的方法,Java 的多态性会保证我们自己的方法被虚拟机调用,这一点与 J2ME 中的 MIDlet 类似。以下是Activity的生命周期。

public class OurActivity extends Activity {

protected void onCreate(Bundle savedInstanceState);

protected void onStart();

protected void onResume();

protected void onPause();

protected void onStop();

protected void onDestroy();

}

(2)XML文件在Android不仅是布局文件,同时它也是资源文件。通常情况下,我们在layout中创建程序的布局;在values目录下的创建资源文件,它的键-值存储的方式为开发提供了快捷的通道。Java 平台支持通过许多不同的方式来使用 XML,并且大多数与 XML 相关的 Java API 在Android 上得到了完全支持[11]。

3.3.1 Android界面布局

Android系统中,界面布局是一个热门的话题,因为它直接关系到用户的体验。同时,一个美观、简洁而大方的布局不仅可以提高用户体验,同时又能保证很高的执行效率。Android生成用户界面有三种方式:XML配置生成、通过用户自己的界面接口生成、直接用代码生成。第一种界面生成方式应用最为广泛,因为它符合了MVC模型,同时也容易对界面进行修改。下面具体介绍主要的布局方式[12]:

线性布局(LinearLayout):以单一方向对其中的显示对象进行排列显

11

齐文龙:基于Android平台的手机地图应用开发

示,如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理其中将只有一行。同时,还可以对个别的显示对象设置显示比例。

表格布局(TableLayout):表格布局通过行、列的形式来管理UI组件,TablelLayout并不需要明确地声明包含多少行、多少列,而是通过TableRow,以及其他组件来控制表格的行数和列数,TableRow也是容器,因此可以向TableRow里面添加其他组件,没添加一个组件该表格就增加一列。

相对布局(RelativeLayout):允许通过指定系显示对象相对于其他显示对象的父级对象的相对布局来布局。一个控件的位置它决定于它和其他控件的关系,好处:比较灵活;缺点:掌握比较复杂。

3.3.2 Activity之间的传值

Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent 传递给调用的组件,并完成组件的调用[13]。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦,两个Activity直接的传值还直接与Intent的Extra对象有关。

12

2013届数字媒体技术专业毕业设计(论文)

4 系统实现

4.1 地图展示的实现

地图展示是系统最基本的功能。要开发地图应用首先要下载百度地图Android SDK,并且要申请百度地图的密钥Key。

4.1.1 Android SDK 下载与安装[14]

百度地图的Android SDK包含了丰富的LBS功能:

(1)地图展示:包括2D图、卫星图、3D图地图展示。

(2)地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作。

(3)自定义绘制:提供自定义绘制点、线、面基本几何图形的功能。

(4)百度地图导航:提供调起百度地图Android版(v5.0及以上版本)导航功能。

(5)地图搜索:提供根据关键字进行范围检索、城市检索和周边检索。且支持LBS云检索用户自有数据。

(6)详情查询:提供餐饮类的POI的详细信息查看(Place详情)。

(7)线路规划:提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。

(8)地理编码:提供地址信息与坐标之间的相互转换。

(9)位置标注:提供一个或多个POI位置标注,且支持用户自定义图标。

(10)离线地图:提供离线地图功能,可节省用户流量。

(11)定位:采用GPS、WIFI、基站、IP混合定位模式,请使用Android 定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。百度地图

13

齐文龙:基于

Android 平台的手机地图应用开发

14

Android SDK 从2.0.0版本开始采用的是矢量版的地图,开发者如果需要使

用栅格版的地图数据,请使用1.3.5及之前的版本。

(12)实时路况:提供城市实时交通路况信息图。

安装配置:

第一步:在工程里新建libs 文件夹,将开发包里的baidumapapi.jar

拷贝到libs 根目录下,将libBMapAppEngine.so 拷贝到libs\armeabi 目

录下,拷贝完成后的工程目录如下图4-1所示;

图4-1 地图包存放位置

第二步:在工程属性->Java Build Path->Libraries 中选择“Add

External JARs ”,选定baidumapapi.jar ,确定后返回。这样,这个包就会

出现在Libraries 中,如图4-2。

图4-2 Path 后的地图包

通过以上两步操作后,您就可以正常使用百度地图SDK 为您提供的全

部功能了。

4.1.2 获取API Key

用户在使用SDK 之前需要获取百度地图移动版API Key ,该Key 与自己

的百度账户相关联。我们必须先有百度帐户,才能获得API Key 。并且,该

相关主题
文本预览
相关文档 最新文档