基于ANDROID手机系统的软件开发与应用.doc

上传人:文库蛋蛋多 文档编号:2393949 上传时间:2023-02-17 格式:DOC 页数:72 大小:2.95MB
返回 下载 相关 举报
基于ANDROID手机系统的软件开发与应用.doc_第1页
第1页 / 共72页
基于ANDROID手机系统的软件开发与应用.doc_第2页
第2页 / 共72页
基于ANDROID手机系统的软件开发与应用.doc_第3页
第3页 / 共72页
基于ANDROID手机系统的软件开发与应用.doc_第4页
第4页 / 共72页
基于ANDROID手机系统的软件开发与应用.doc_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《基于ANDROID手机系统的软件开发与应用.doc》由会员分享,可在线阅读,更多相关《基于ANDROID手机系统的软件开发与应用.doc(72页珍藏版)》请在三一办公上搜索。

1、 毕 业 论 文(设 计)题目: 基于Android手机系统的软件开发与应用 英文: The Development and Application of the Software Basing On Android System 院 (系) 别: 计算机科学学院 专业(班级): 姓 名: 学 号: 指 导 教 师: 答 辩 日 期: 基于Android手机系统的软件开发与应用摘要Android平台原意是“机器人”,于2007年11月推出立即受到许多手机厂商,运营商和芯片厂商的大力支持。Android基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,

2、号称是首个为移动终端打造的真正开放和完整的移动软件。许多厂商继而组建成一个全球性的联盟组织开放手机联盟(Open Handset Alliance,OHA),如三星,摩托罗拉,LG电子,日本NTT DoCoMo,中国移动,Intel,等34家公司都加入了这个庞大的阵营。Android在中国的前景十分广阔,首先是有许多成熟的消费者,在国内,android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了android阵营,包括中国移动,中国联通,华为通讯,联想等大企业。目前Android允许开发人员自由获取,修改代码,平台完全开放,吸引了越来越多的

3、程序员加入Android开发阵营之中,Android的快速发展给了商家,程序员一个非常宝贵的机会,谁能把握住这个机会,商机,谁就能获得成功。目前,Android的软件在中国还是有限,甚至不能说成熟,因此开发功能强大,方便消费者日常使用的软件已经是一个迫在眉睫的任务。关键字:Android手机软件,Intent机制,Activity,DOM,SAX,SQLite数据库The Development and Application of the Software basing on Android SystemABSTRACT The origin of the meaning of Androi

4、d platform is Robot. In November 2007,Android is publish. Many mobile phone manufacturers, chip venders and operators all support it. Android platform bases on the Linux which consist of operation system,middleware,UI and application software.Android is claimed to be the first to make real mobile te

5、rminal open and complete mobile software.A lot of manufacturers and companys form into a global Alliance - Open mobile Handset, Kent league (Alliance OHA), such as samsung, MOTOROLA, LG electronics, Japan, China mobile, DoCoMo NTT Intel and so on .34 companies have joined this huge Alliance. Take th

6、e prospects of Android in China, Firstly there are many mature consumers. In China, the communities of Android are so hot. It do a very good promotion effect for Android. Domestic manufacturers and operators have joined the android, including China mobile, China unicom, huawei, lenovo, Meizu etc. Cu

7、rrently Android allows developers to have the free access codes, modify them.Android platform completely open.This attracts more programmer join in Android development camp. The rapid development of the Android gives business, programmers a very precious chance. If you can seize the opportunity,you

8、will succeed.At present, in China , the Android software, cant even say mature.So to develop some powerful, convenient softwares for comsumers is an urgent task.Key words:Android Software;Intent;Activity;DOM,SAX;SQLite Database目录序言11 绪论211 Android的背景212 Android的意义313 Android核心知识41.3.1 架构图直观41.3.2 Li

9、nux Kernel详解51.3.3 AndroidRuntime详解51.3.4 Libraries详解51.3.5 ApplicationFramework详解61.3.6 Applications详解614 开发Android所采用的技术71.4.1 Java程序设计语言71.4.2 Web Service技术71.4.3 XML技术81.4.4 DOM和SAX解析技术91.4.5 SQLite数据库101.4.6 Location定位技术111.4.7 Android Intent机制121.4.8 Photoshop图像处理技术132 ANDROID软件需求分析1421 Androi

10、d软件的概述1422 Android软件的设计目标1423 Android的软件的可行性分析1524 Android的设计思想1525 Android软件的功能需求分析1626 Android的开发及运行环境192.6.1 硬件环境192.6.2 软件环境193 ANDROID软件的概要设计2031 Android软件的功能分析2032 Android软件总体设计2033 Android软件各模块的设计213.3.1 播放器模块的设计213.3.2 天气预报模块的设计223.3.3 地震模块的设计233.3.4 位置模块的设计243.3.5 餐馆信息模块的设计2534 Android软件的分析

11、与划分273.4.1 播放器模块状态273.4.2 天气预报模块状态273.4.3 地震信息模块状态283.4.4 位置定位模块状态283.4.2 餐馆信息模块状态294 ANDROID软件的详细设计3041 数据库需求分析3042 数据库概念结构设计3143 Android数据存储Shared Preferences3444 软件主要功能模块的实现344.4.1 首页的实现过程344.4.2 播放器的实现374.4.3 天气预报的实现384.4.4 地震信息的实现424.4.5 位置定位的实现454.4.6 餐馆信息的实现495 ANDROID软件测试5651测试的目的与目标5652测试的方

12、法5653系统测试的用例585.3.1 天气预报测试用例585.3.2 地震信息测试用例585.3.3 位置定位测试用例585.3.3 位置定位测试用例586 ANDROID软件的安全606.1 应用程序版本管理606.2 手机签名策略60结论61参考文献62致谢63附录64附录A 在模拟器中虚拟SD卡64附录B Android开发的环境搭配64序言Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,早期由Google开发,后由开放手机联盟开发。它采用了软件堆层 的架构,主要分为三部分。底层以Linux内核工作为基础

13、,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或GPhone。目前最新版本为Android2.2。2010年谷歌开发者大会上,Android2.2发布,名称为Froyo,意为冻酸奶。Android 作为谷歌企业战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。全球为数众多的移动电话用户正在使用各种基于 Android 的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,Android

14、将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。Android平台的研发队伍阵容强大,包括摩托罗拉、Google、HTC、T-Mobile、高通、魅族、三星、LG以及中国移动在内的34家企业,都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。“开放手机联盟”表示,Android平台可以促使移动设备的创新,让用户体验到最优越的移动服务,同时,开发商也将得到一个新的开放级别,更方便的进行协同合作,从而保障新型移动设备的研发速度。 34家企业的加盟,也将大大降低新型手

15、机设备的研发成本,完全整合的“全移动功能性产品”成为“开放手机联盟”的最终目标。 这34家企业中并不包含把持Symbian的诺基亚,以及凭借着iPhone风光正在的苹果公司,美国运营商AT&T和Verizon,当然微软没有加入,独树一帜的加拿大RIM和他们的Blackberry也被挡在门外。Android在中国的前景十分广阔,首先是有许多成熟的消费者,在国内android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了android阵营,包括中国移动,中国联通,华为通讯,联想等大企业。目前Android允许开发人员自由获取,修改代码,平台完全开

16、放,吸引了越来越多的程序员加入Android开发阵营之中,Android的快速发展给了商家,程序员一个非常宝贵的机会,谁能把握住这个机会,商机,谁就能获得成功。目前,Android的软件在中国还是有限,甚至不能说成熟,因此开发功能强大,方便消费者日常使用的软件已经是一个迫在眉睫的任务了。迫于这个原因,我开发了这个运行于Android系统的软件,该软件采用Android SDK 1.5+MyEclipse8.0开发,具有平时消费者特需求的功能,有很好的使用价值。软件包括了大约5个功能,有音乐播放器,天气预报,地震消息查看,位置定位和创意十足的餐馆管理。这些小功能能很好地为用户提供功能及实时消息,

17、方便日常生活。1 绪论11 Android的背景 Android平台原意是“机器人”,于2007年11月推出立即受到许多手机厂商,运营商和芯片厂商的大力支持。Android基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。许多厂商继而组建成一个全球性的联盟组织开放手机联盟(Open Handset Alliance,OHA),如三星,摩托罗拉,LG电子,日本NTT DoCoMo,中国移动,Intel,等34家公司都加入了这个庞大的阵营。2008年9月22日,美国运营商德国T-Mobile在纽约正式发

18、布第一款Android手机T-Mobile G1。该款手机为台湾宏达电代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。 2009年9月初,摩托罗拉坐镇主场在旧金山举办的Giga OM 2009大会上携手T-Mobile正式发布了旗下首款搭载Android操作系统的智能手机-MOTO CLIQ ,在沉寂许久后的首次爆发吸引了全球无数用户的目光。如果说T-Mobile G1的出世开辟了Android领域先河的话,那么摩托罗拉CLIQ的发布则更多的被视为昔日手机霸主的强势回归! 2009年10月28日正式发布了An

19、droid 2.0 智能手机操作系统,今天摩托罗拉和网络运营商Verizon共同宣布了首款采用Android 2.0的手机Droid, 2010年1月7日,Googel在其美国总部正式向外界发布了旗下首款合作品牌手机Nexus One(HTC Desire),并同时开始对外发售。12 Android的意义Android在中国的前景十分广阔,首先是有许多成熟的消费者,在国内,android社区十分红火,这些社区为android在中国的普及做了很好的推广作用。国内厂商和运营商也纷纷加入了android阵营,包括中国移动,中国联通,华为通讯,联想,魅族等大企业。目前Android允许开发人员自由获取

20、,修改代码,平台完全开放,吸引了越来越多的程序员加入Android开发阵营之中,Android的快速发展给了商家,程序员一个非常宝贵的机会,谁能把握住这个机会,谁就能获得成功。目前,Android的软件在中国还是有限,甚至不能说成熟,因此开发功能强大,方便消费者日常使用的软件已经是一个迫在眉睫的任务。因此我早早就涉及手机Android系统的学习,从中发现它与Symbian,windows mobile等系统的不同,Android优势是特别明显的,它具有开放性,所有的应用程序是平等的,应用程序间无界限,快速方便的应用程序开发等特点,这是其他手机系统无法提供给开发者的。Android的一些特性:1

21、.应用程序框架 支持组件的重用与替换2.Dalvik虚拟机 专门为移动设备做了优化3.内部集成浏览器 该浏览器基于开源的WebKit 引擎4.优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选)5.SQLite 用作结构化的数据存储6.多媒体支持 包括常见的音频、视频和静态印象文件格式 (如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)7.GSM电话 (依赖于硬件)8.蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)9.照相机,GPS,指南针,和加速度计 (依赖于硬件)10.丰富的

22、开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件因此,Android的发展前途是乐观,明朗的。为了这个原因,我们更要开发出质量好,功能多的软件以方便手机用户使用。13 Android核心知识1.3.1 架构图直观下面这张图展示了Android系统的主要组成部分:可以很明显看出,Android系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分将详细介绍这5个部分。1.3.2 Linux Kernel详解Android基于L

23、inux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各司其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解Linux Kernel层。1.3.3 AndroidRuntime详解Android包含一个核

24、心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个 Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。 Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以將 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.clas

25、s。由于dex有時必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik 虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。1.3.4 Libraries详解Android包含一个C/C+库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。下面列出一些核心库:* 系统C库 标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备* 媒体库基于 PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG

26、4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG* 界面管理管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层* LibWebCore新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图* SGL基本的2D图形引擎* 3D库基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅* FreeType 位图和矢量字体渲染* SQLite 所有应用程序都可以使用的强大而轻量级的关系数据库引擎1.3.5 ApplicationFramework详解通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程

27、序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:* 视图(View)丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器* 内容提供者(Content Providers)使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数

28、据* 资源管理器(Resource Manager)提供访问非代码资源,如本地化字符串、图形和布局文件* 通知管理器(Notification Manager)使所有的应用程序能够在状态栏显示自定义警告* 活动管理器(Activity Manager)管理应用程序生命周期,提供通用的导航回退功能1.3.6 Applications详解Android 装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!14 开发Android所采用的技术1.4.1 Java程序设计语言Java,

29、是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。Java分为三个体系JavaSE(Java2 Platform Standard Edition,java平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platfor

30、m Micro Edition,java平台微型版)。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。 1.4.2 Web Service技术Web service到底是什么;在什么情况下你应该使用Web service。 分布式应用程序和浏览器 研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序。这当然不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问

31、题。 传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。 关于客户端与服务器的通信问题,一个完美的解决方法是

32、使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。 许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使用COM或.NET语言写的,并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL语言编写的大型机程序访问。而且,目前还有很多商用程序继续在使用C+、Java、Visual Basic和其他各种各样的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行

33、数据交换。这样的任务通常都是由特殊的方法,如文件传输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的高级程序到程序交流(APPC)等来完成的。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么。总结:Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。1.4.3 XML技术XML(Extensibl

34、e Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。XML的优点:XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索

35、引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。 XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。 XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以X

36、ML格式输出结果。 为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。 因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, (它不专属于任何一家公司),你不

37、必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言。1.4.4 DOM和SAX解析技术DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来

38、也要简单得多。SAX处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。一般来说,SAX还比它的替代者DOM快许多。选择DOM还是选择SAX? 对于需要自己编写代码来处理XML文档的开发人员来说, 选择DOM还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档,而SAX采用的事件模型。DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历

39、。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档,所以对性能和内存的要求比较高,尤其是遇到很大的XML文件的时候。由于它的遍历能力,DOM解析器常用于XML文档需要频繁的改变的服务中。SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag.特别是当开

40、发人员只需要处理文档中所包含的部分数据时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。1.4.5 SQLite数据库SQLite第一个Alpha版本诞生于2000年5月. 至今已经有10个年头了. SQLite也迎来了一个版本 SQLite 3已经发布. SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,

41、同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite特性:1. ACID事务 2. 零配置 无需安装和管理配置 3. 储存在单一磁盘文件中的一个完整的数据库 4. 数据库文件可以在不同字节顺序的机器间自由的共享 5. 支持数据库大小至2TB 6. 足够小, 大致3万行C代码, 250K 7. 比一些流行的数据库在大部分普通数据库操作要快 8. 简单, 轻松的API 9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定 10. 良好注释的源代

42、码, 并且有着90%以上的测试覆盖率 11. 独立: 没有额外依赖 12. Source完全的Open, 你可以用于任何用途, 包括出售它 13. 支持多种开发语言,C, PHP, Perl, Java, ASP.NET,Python1.4.6 Location定位技术许多人总把GPS定位误认为是手机定位,我们常接到客户的电话,问可不可以GPS手机定位,GPS定位与手机基站定位的原理不同,因而导致二者的定位精度及反应时间也有一定的差距。GPS定位精度高,可以定位到几米,一般是用在物流行业,用于车辆调度,手机基站定位一般都在一两百米左右, 做为调查公司常用的工具.手机定位服务又叫做移动位置服务,

43、它是通过电信移动运营商的网络(如 GSM网、CDMA网)获取移动终端用户的位置信息(经纬度坐标),在电子地图平台的支持下,为用户提供相应服务的一种增值业务,例如目前中国移动动感地带提供的动感位置查询服务等。其大致原理为:移动电话测量不同基站的下行导频信号,得到不同基站下行导频的TOA(Time of Arrival,到达时刻),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,移动台测量的基站数目越多,测量精度越高,定位性能改善越明显。目前手机定位仅仅局限于定位服务,

44、以及通过电子地图服务向用户提供周围一些商场、饭店等服务设施,但还不能进行导航服务。手机定位由于基于现有手机通信基站,受环境影响较大,在郊区和农村可以将移动台定位在1020米范围内;在城区由于高大建筑物较多,电波传播环境不好,信号很难直接从基站到达移动台,一般要经过折射或反射,因此定位精度会受到影响,定位范围为100200米,一般情况定位响应时间在36s之间。而在无法接收到手机信号的地方,就谈不上定位了。而GPS定位由于接收机任何时刻都至少被4颗卫星覆盖,所以信号得到了很好的保证,并且由于卫星居高临下,排除卫星钟及大气干扰等因素,精度也能保证在几米至几十米 谷哥正在测试一项手机定位服务。通过此服

45、务,即使你没有GPS,也能通过你的手机来对你当前的位置进行定位。这项服务将来会加入进谷哥 Maps,这样在你每次搜索时就不用再输入自己当前的位置了。每次一打开Maps,系统就会根据你的位置自动定位到你现在所在的地方,这项定位技术被称为 “我的位置”。只要在安装了相应软件的设备上轻按确认,系统就会在地图上将你的当前位置用一个蓝点标注出来。该定位系统在数据库里储存不同运营商各个不同基站的识别信息,通过对这些数据进行对比来定位用户。当前这个数据库建设还不是很完善,所以“我的位置”使用起来还不是太精确。但相信随着时间的推移,这个数据库会很快地建设起来。谷哥表示这项技术不会收集用户的手机号码以及其他个人

46、信息。而且整个功能也可以随时关闭。用户无需担心自己的隐私被泄露。1.4.7 Android Intent机制Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。Intent这个英语单词的本意是“目的、意向”等,对于较少从事于大型平台开发工作的程序员来说,这可能是一个不太容易理解的抽象概念,因为它与我们平常使用的简单函数/方法调用,或者上节中提到的通过库调用接口的方式不太一样。在Intent的使用中你看不到直接的函数调用,相对函数调用来说,Intent是更为抽象的概念,利用Intent所实现的软件复用的粒度是Activity/Service,比函数复用更高一些,另外耦合也更为松散。 Android中与Intent相关的还有Action/Category及Intent Filter等,另外还有用于广播的Intent,这些元素掺杂在一起,导致初学者不太容易迅速掌握Intent的用法。在讲解这些名词之前,我们先来从下面的例子中感受一下Intent的一些基本用法,看看它能做些什么,之后再来思考这种机制背后的意义。 理解Intent的关键之一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号