基于Android平台GPS美食推荐系统_第1页
基于Android平台GPS美食推荐系统_第2页
基于Android平台GPS美食推荐系统_第3页
基于Android平台GPS美食推荐系统_第4页
基于Android平台GPS美食推荐系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于Android平台GPS美食推荐系统摘要:互联网的飞速发展,个人手持网络设备也日趋强大,智能终端产品走向大众化,同时也在日常生活中充当了人们的左膀右臂,而娱乐是人们的一项乐此不疲的活动,因此智能手持终端产品的娱乐服务在未来还有更大的发展空间,而现在市面上基于GPS的定位服务的大众消费软件主要有饿了么、美团外卖、百度糯米和阿里口碑等。上面的几款大众消费终端APP其中就包含了附近美食服务,当前基于GPS的附近发现服务竞争激烈,自从Android平台手持终端的兴起,现在国人手持Android设备的基数非常庞大,然而正是Android平台的开放性和Android平台的开源降低软件的成本能够为用户带

2、来更好的用户体验,又一原因是近几年国内厂商对Android进行个性化的定制给国人带来了不少福音,目前市场主流的Android定制系统有:MIUI、Flyme、EMUI、YUNOS和Smartisan OS等,这就为手持终端APP的美食系统提供了大好的展示舞台,最终要实现的是让每一位用户都能体验到自由定位服务带来的便捷生活。本篇论文主要针对目前市面上主流系统IOS、Android、Ubuntu和阿里云OS进行针对性的比较,再联系Android平台构架剖析Android的API的开发组成部分,所以计划开发Android平台的美食软件。本软件经过专业分析和测试具有可靠的稳定性和备用接口,拥有比较好的

3、扩展性,基本上能够满足人们日常生活的基本需求。关键词:Android;Java;美食;Intent;布局1 绪论互联网发展的每个阶段都会迎来革命性的变革,上一个互联网时代是PC的时代,而这个时代的互联拥有了里程碑式的意义,互联网+服务,移动互联网,大数据时代以及物联网时代。依附互联网发展起来的个人手持终端设备也就顺理成章的迎来了移动互联网时代,移动互联网中发展起来的Android阵地也就拥有了更大的发展空间,相关的调查数据显示:15年从事技术研发的调薪幅度在同行业里最高为15.1%,Android从业人员的就业薪水远超其他行业,并且预测Android物联在不久的将来将会有一个更大的发展空间,而

4、个人的手持设备将会以Android物联为核心,Android的发展势在必得。Android(安卓)系统主要是用于智能手机和平板电脑的以Linux为基础的开源操作系统,由Google成立的开放式设备联盟(OHA)持续领导开发。Android的发展史:Android最初是用在数码相机系统的,但后来由于市场反应不是很强烈,又随着移动互联网时代的到来,05年Google收购到07年和其他公司合作共同开发和完善Android系统,后来慢慢的用到了手机和其他领域中,目前Android更新的最新版本为Android 6.0.1(M)。Android系统的结构清晰,主要是横向层次结构,由下往上的层次有内核层,

5、内核主要是Linux kernel,系统运行库层和运行环境 Libraries和RunTime,应用框架层 AppFramework 和应用层APP。看到市场和前景,自学了Android的基本开发和在指导老师的帮助下完成本次的美食系统的开发。2 开发背景2.1 设计背景 互联网络的潮流势不可挡,如今的网络早已经走向了大众化,特别是现在的网络从2G到3G再到4G,实现了质的飞跃,各种客户端的每日互联次数是数以几亿级别的计量,互联网发展给人们带来便捷的生活,那么就离不开各种各样丰富的客户端,人们对生活的需求和对软件的需求日益提高,基于定位的附近各种热点系统刚好满足了大众化的心里。所以这款基于GPS

6、的附近美食系统开发的初衷就是基于此,Android系统强大的阵营也符合大多数消费者的消费范围内,因为Android系统的开放性和 随意定制性的特点,还是比较符合国人的消费需求,比如国外定制的Android系统以主打安全性的黑莓系统,国内几大手机厂商有小米定制的MIUI系统,华为EMUI,魅族的Flyme,锤子的Smartisan OS以及国内主打安全的元心SyberOS,都是在原Android框架的基础上再对国人的操作习惯进一步定制的系统。在这样的背景下,需要为用户定制性的设计一款他们需求的软件就势在必行了。人们需要更加个性化定制各类软件,用户希望随时随地无缝利用4G网络进行各种流媒体的服务。

7、首先得提供更加智能化的提醒,用户与手机实现密切的合作,用户自定义设计或者关注的内容在某一时间点手机会向用户发送定制化的提醒服务,包括附近的热点,出行建议,国内外时事新闻,本地化的天气预报,好有的各种活动等。其次就要为用户提供更加真实的用户体验,这个真实不光是消息的真实性,主要是用户感觉的真实性,手机借助硬件来感官身边的世界,并且把这些数据收集起来为用户提供有用的信息,最具代表性的就是VR技术,把收集到的这些海量信息通过处理加工后在整合还原给用户带来视觉和感官上的真实性,比如用户在选择自己需求的产品的时候,会预测什么样的产品更适合用户,并且提供同类产品的一些参考数据,并且把附近的相关的产品都会推

8、荐给用户,然后用户根据自己的需要进行选择。接着就是网联网时代的主角,基于前面收集到的海量信息,大数据有着自己的一套处理数据的方式,物联网就是物物联网,利用各种传感器将置身的环境数据收集起来加工在还原给用户,并且运用各种各样的传感器将外面的世界传达给用户,可以帮助用户更加方便的了解用户所需要的。最后就是随着这些技术的日渐成熟,有着越来越智能和越来越安全的设备,这些越来越智能化的设备会为用户带来更好的体验,让生活变得智能简单。2.2 国内外手机系统的现状纵观世界,手机系统的种类主要有三大阵营,分别为:IOS、Android和Windows Phone。IOS是由美国苹果公司专门为iPhone开发的

9、操作系统,它主要是给iPhone、iPod touch以及iPad使用,底层基于Darwin。 IOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。Android是Google开发的一套移动操作系统,系统架构以内核Linux kernel,系统运行库层和运行环境 Libraries和RunTime,应用框架层 AppFramework 和应用层APP。Windows Phone(WP)系统是10年10月份

10、微软发布的手机操作系统,内核是Windows CE,WP的主要特点是是UI设计是以Metro。2015年手机系统的市场占有率是:Android占了市场的81.36%的份额,IOS占了市场11%的份额,而YunOs预计占有7.1%的份额。从这个调查数字可以看出Android占有了移动终端系统的半壁江山。2.3 设计要求基于Android平台的GPS美食系统设计要求是一款运行在Android手机系统上的一款APP,美食系统具体的功能有:美食系统显示功能:显示包括主界面显示当前地理位置的定位显示、移动拖点的显示、附近美食店的显示、开始搜索的显示、下一页的显示、详细店面信息显示和分享界面显示。美食系统

11、定位功能:系统默认定地理位置定位和移动选点定位。美食系统移动点选择功能:移动选择地理位置。美食系统分享功能:分享到社交平台、分享给好有的功能。3 Android的相关技术介绍及分析3.1 Android系统架构研究Android架构是拥有操作系统、中介架构层以及应用程序所组成的软件构架。其核心是Linux嵌入系统,配置了Google的专门为Android定制的开发类库和Android运行库文件,再结合应用程序框架定制出各种丰富的应用程序。3.2 Android的功能特征(l)应用程序架构:应用程序框架包含了不同的应用基础组件,在具体的开发中,直接就可以用这些现成的开发组件,就可以极大的节省在开

12、发这些程序时候的难度和时间。 (2)Dalvik虚拟机器:Android平台所搭载的Java虚拟机是Google公司专门为Android定制的开发的Dalvik虚拟机,Dalvik虚拟机的特性是再保证兼容API的同时对移动终端的运行进行全方位的性能优化,使得系统运行时占用资源量更少,使得系统运行更流畅,提高了运行效率。(3)集成的浏览器:Android内置浏览器引擎用的是webkit,因为webkit是一项开源的排版式浏览器,手机厂商用的主流webkit引擎有:Safari,Midori,Epiphany等。再结合Android手机的特色,用户在浏览网页的时候发挥更大的性能优势。比如Andro

13、id中的双手触摸放大功能的这些效果上。(4)优化的绘图能力:绘图主要是指2D和3D的绘图能力,2D指的是Google专门为Android定制的库SGL;而在3D方面则是使用OpenGLES1.0(openGL for Embedded systems)规范的类库。OpenGLES1.0是性能强大的并且支持硬件加速的图形引擎。(5)SQLite数据库: SQLite提供结构化的数据存取。SQLite目前是一款嵌入式的轻型的数据库系统,因为它的资源占用率非常低,所以它目前主要运用在嵌入式产品当中。另一方面它又适配目前主流的操作系统:Linux/Windows/u nix,而且它能与好多开发语言结合

14、在一起,例如有Java和PHP等等,它的接口处理速度和MySQL相比较SQLite有着比较快的处理能力,并且它不需要特意去安装和手动去管理这些配置信息,因为它的特性,虽然只有250K,但它可以存储在2TB的单个磁盘上的一块完整的数据库。而且它所支持的sql语句和其他数据库不相上下,同时它还支持事务功能和并发处理等等。由于SQLite大小只有250k左右,所以用着资源紧张的手机上是非常合适的。(6)多媒体的支持能力:主要用于支持播放媒体文件,主要包含的是音频文件和视频文件的支持,而且支持带有URL链接的统一流媒体的播放,支持目前主流的图片格式支持:JPG、PNG、GIF等格式。(7)GSM技术:

15、全球移动终端通信系统,是目前世界上公认的一套第二代移动通信操作系统,规定一个通信协议,让全球移动厂商按照这个通信标准去开发移动网络,这样全球的通信规范统一,实现真正的全球通,其实GSM归属手机硬件方面的发展,同时作为Android的应用程序的突出特点。 (8)蓝牙、EDGE、3G及Wi-Fi:蓝牙在短距离通信上表现突出,近几年蓝牙版本的提高,蓝牙4.0以上,有着更低的功耗,低成本的短距离的通信,近两年智能穿戴设备的兴起在某种程度上主要是依赖于蓝牙技术的发展。EDGE(Enhanced Data Rate for GSM,Evolution),即增强型数据速率GSM演进技术。主要是用在GSM的一

16、种新型的算法,先进的同步操作和SPSK调制技术。8PSK可以将GSM网络的信号空间从2调制到8,使得原来的单元信号承载量是原来的4倍。Wi-Fi:无线网技术,主要用在家庭和办公的短距离通信技术,它又特有的频段2.4GHz,目前它又两个通信标准:IEEE802.lla和IEEE802.11b。这作为刚从塞班时代过渡来的Android手机来说是一次历史性的进步。(9)GPS: 全球卫星定位系统(Global Positioning System),全球有24颗定位卫星组成,即何时何地都会有4颗卫星定位到,可以保证所在地的经度、纬度和信息的确认,更方便的把定位运用到定位导航等场景中。是手机硬件发展的

17、体现方面,同时也是作为Android手机发展的标志性特点。3.3 Android架构分析 图3-1 安卓架构的五个部分3.3.1应用程序框架Android SDK 为了简化开发而定义了一套让开发者可以直接使用内核相应的权限的程序框架的API,应用程序发布的一些API可以让其他程序使用,但是为了系统的安全,使用者可以用同样的办法来开发自己需要的组件,应用程序由系统跟服务组成,详细的包括:(l)一套强大和可扩展的视图系统:是开发一款应用程序的基本组成框架,包含了开发系统时的画面、开发控件、内置浏览器等。 (2)内容提供者:使应用程序可以访问本地的应用程序数据,或者把自己的数据共享出去。 (3)资源

18、管理器:应用非程序资源供其他系统系统资源使用,例如:本地布局文件和图形文件等。 (4)通知管理器:让应用程序在任务栏显示本程序需要推送的自定义程序信息。 (5)活动管理器:管理系统中的应用程序的周期和需要返回功能。例如:用户须要从一款软件切换其他的软件去。 (6)视窗管理器:用来管理所有启动程序的视窗。(7)位置管理器:用来管理地图服务的相关功能。3.3.2类库因为Android类库中包含了C或者C+的类库,这些类库能够被Android系统中不同的组件识别,开发者可以利用应用程序框架功能,部分核心类库如下:(1)surface Manager:开发者自主存取系统的管理功能,显示和操作之间对应互

19、动,实现2D和3D之间的无缝衔接,例如:在2D、2D显示上的合成、叠合动作。(2)3Dlibraries:主要是用openGLES1.0所规定的3D引擎,3D库利用硬件将3D功能做优化处理显示出来。(3)SGL:处理2D的绘图引擎。(4)Media Frame work:以OpenCORE为基础的多媒体类库,多媒体类库支持音频文件和静态图片。例如:MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式。(5)Free Type:主要是处理矢量图形。(6)SSL:(secureSocketsuyer),中文名为“安全套接层协议层”,是一个应用安全的协议,SSL协议指出应用程

20、序协议和TCP/IP的分层处理,并且为TCP/IP提供一套安全的认证机制。SSL协议可分为两层:SSL记录协议(SSL Record Proto col): 建立在可靠的通信基础上对高层协议提供的数据进行一系列的技术支持。SSL握手协议(SSL Hand shake proto col):在SSL协议的基础上,在传输数据前双方进行身份确认等一系列服务。SSL协议提供的服务主要有:服务器与用户认证体系,确保数据准确的发送到指定的目的地;加密数据的安全性以免被窃取;维护数据的完整性确保传输数据不会发生改变。(7)SQLite:SQLite是能够被其他程序使用本地化的开放式数据库引擎。(8)web

21、Kit:是一款浏览器引擎,构建Android内置的web视图,提供给开发者做不同的处理机制的应用程序。 (9)lib c:是一个BSD标准C类库。是对于Linux嵌入式设备的最佳调优。3.3.3 Android运行时组件Android系统是使用Java语言编写,开发应用程序的,但是没有使用Java运行组件来运行程序,Android运行包含两个部分:第一个是Android核心类库,第二个是Dalvik虚拟机。3.4 Android应用的构成和工作机制 一般情况Android应用程序有4种组件构成:活动(Activity)、服务(Server)、内容提供者(Content Provider)以及(

22、意图接收器)Intent Receiver。每一个Android应用程序看成一个包(Package),包中可包含一个或多个组件,并且配置工程描述文件AndroidManifest.xml,主要是定义应用程序的相关功能的必要条件。Android应用的构成和工作流程如图3-2: 图3-2 Android的构成和工作流程4 Android应用程序结构剖析4.1 Android的APIAndroid API主要包含了以下几个部分:(1)AndroidManifest.xmlAndroidManifest.xml是隶属于Android系统的工程描述文件,它主要是管理系统怎么去处理活动(Activity)

23、、服务(Server)、内容提供者(Content Provider)以及(意图接收器)Intent Receiver。工程描述文件就是把活动和意图接收器结合在一起的配置文件信息。(2)活动活动就是一个有生命周期的对象。负责UI界面的显示以及完成特定功能的代码块。(3)视图视图可以将其自身绘制到屏幕上。许许多多的视图树构成Android用户的界面,是由各种视图组成接口,开发者一般是使用视图来达到自定义的图形界面的目的。(4)意图是某一个特定的消息的对象信息,可以说是程序需要做怎么样的一件事情的想法。应用程序通过创建一个特定的实例表示意图某一特定的事情,然后就开始运行。(5)服务服务是运行在后台

24、的一段代码。按照程序的须要来确定它的进程运行在哪一细节上,例如:服务可以运行在自己的进程里,也可以运行在其他的应用程序中。并且还可以通过远程调用RPC将其他自己需要的组件绑定到服务这个进程中。比如:用户在使用歌曲播放功能时,这个时候用户还想把电子书打开阅读,并且希望音乐可以在后台继续播放,这个时候就应该开启服务保证用户切换到电子书之后音乐还能够继续播放。(6)通知通知是某一应用程序想要推送相关的消息时,相应的图标就会出现在状态栏中,用户可以直接通过与这些图标互动就可以达到与某一软件交互的目的。比如:短信、未接来电、社交消息等。(7)内容提供者内容提供者是提供终端数据访问的服务,比如:某一社交软

25、件需要访问联系人信息,应用程序可以使用其他提供者提供的相关数据,也可以自定义自己要提供的数据内容让其他程序进行数据读取。4.2 Android应用程序结构解析一个完整的Android应用程序是有下面4个组件组成。活动意图接收器服务内容提供者需要注意的一点是并不是所有的Android应用程序都需要以上的4个组件,根据自身的需要,使用4个组件当中的某一个或某几个组件构成。当确定了使用哪一个或哪几个组件构成Android程序的时候,必须要将它们在Mainfest.xml扩展标记语言中注册,xml是可扩展的标记语言,具体的来说是一个配置文件,这个配置文件规定了当前的这款软件中申明一些开发者规定的特性和

26、有关的一些要求,每一个Android应用程序都必须要有这个.xml配置文件。4.2.1活动活动组件是最常见也是使用最频繁的组件,每一条活动都隶属于activity的一个子类,并且承担着实现某一特定的功能,比如UI反馈和管理UI界面显示时间。一个活动就是我们看到的应用程序的某一个用户界面,用户界面的组成是:事件响应和视图等组合起来。通常的应用程序都需要多个用户界面交互,比如:某一社交软件至少需要用户聊天界面、联系列表界面、联系人详细信息界面和联系人动态界面等。这些界面中的某一个都可以看成是一个活动,用户点击进入一个新的界面就相当于创建了一个新的与之对应的活动的对象。还有一种情况就是活动的对象能够

27、反馈给上一界面某一返回值。当用户点击一个新的界面是,之前界面对应的活动暂时中断挂起在一个历史的序列中,用户同样也可以操作返回指令重新启动这一活动,就相当于返回到了之前的界面中。若是用户不须要之前的某一界面,须要点击多操作任务,结束这个活动,那么这个活动从挂起的序列中移除出去。Android系统的机制是默认的情况下保存用户所操作的每一个界面,即保存了用户操作的从主界面开始的每一条活动。然后Android通过意图这个类,实现活动与活动之间的关联,达到界面交互的目的,这个意图规定了某一应用程序接下来应该怎么做。在意图的设定中,规定了动作与动作对应的数据的重要的数据结构。比如:显示某一通话记录界面,就

28、可以创建某一意图,规定动作为view,数据就设置成了显示某一通话记录的URI。除了这些还有一个意图处理器的有关类,当有一个有效的请求的时候这个意图处理器就可以描述这个活动可以处理这个怎样的意图。例如上面的某一通话记录界面,需要显示详细的通话记录就需要申明一个意图过滤器,达到当某一通话记录显示时,该怎么去处理这些信息。意图处理器需要在Mainfest.xml文件中注册。从某一个界面跳转到另一个界面就需要解析这个意图。例如:某一活动需要调用其他活动时,系统就会自动检查已有的应用程序已有的意图过滤器,并且从这些意图过滤器中选出匹配的意图活动。在这之后,新的活动就接收到意图通知开始运行起来。4.2.2

29、意图接收器开发者需要编写代码让外部事件做处理的时候,应该使用意图接收器,意图接收器不控制UI,它通过NotificationManager向用户推送用户关注的事情,并且意图接收器在Mainfest.xml文件中注册,在代码中也可以使用registerReceiver方法注册自定义的意图接收器,当某一意图接收器匹配时,系统就根据相关的匹配开始启动相应的应用程序。4.2.3 服务服务是不显示在UI的并且拥有长生命周期的代码。4.2.4内容提供者Android系统里,每一个应用程序都有自己唯一的userID。这样的处理机制的优点是,可以保证系统和应用程序不被其他的恶意应用程序左右,保证安全性。每一个

30、进程相当于黑盒子,他们之间并不会混乱,同样也不会共享内存的资料。如果某一应用程序需要共享数据,就必须应用相关内容提供者,某一个内容提供者就是一个类,其他应用程序就可以使用这些经过加工的数据。 4.3 Intent的详细解析某一个Android应用程序中,需要4个组件相互协调,但彼此之间又是独立起来的,最后才能组件一个完整的Android应用程序。组件之间通过意图的辅助完成组件与组件之间的通讯工作。意图记录应用的每一次操作和动作所产生的数据以及附加的数据进行处理,Android需要意图的处理检索到对应的组件,并且将意图通知给它,完成整个的组件调用过程。所以意图在这之间主要是桥梁的作用,主要提供组

31、件与组件之间的相互调用的一系列信息。比如:在某一通话记录的应用中,当某一通话记录列表上(activity),点击某一条通话记录之后,用户想要看到某一详细的通话记录,实现这个操作,activity就需要构造一个意图,然后这个意图就去通知系统,需要查看详细通话记录这一个动作,这个动作对应的对象是某一条通话记录,接着调用startactivity将意图传达到,系统再根据这个意图中传达的描述到Mainfest.xml配置文件中寻找陪着这个意图的activity。然后系统找到这个匹配的activity,最后在汇入到意图中,然后再按照意图的信息执行这个详细通话记录操作。4.3.1 Intent的抽象描述A

32、ndroid开发文档中指出:意图的解释是执行相关的操作是抽象描述。该抽象描述的具体内容如下:首先,Android的定义了一组标准的行动,这是行动的简要说明,比如查看相关信息和编辑相关信息。此外,根据不同的应用需求,决定了你的行动,并确定适当的措施来解决自定义活动。其次,Android机制指定了某一URI执行某一需要操作的数据。另外,除了这两个动作和重要数据的属性,还有其他一些性能:类别:被执行动作的附加信息。数据类型:用来指定的意图类型,通过指定这个类型可以强制性的指定数据类型。组件:Android机制根据意图承载的信息进行查找,最终查找到匹配的目标组件。 4.3.2 Android如何解析I

33、ntent实际的开发过程中,有以下两种解析Intent:(l)直接意图:指定了组件属性的意图。运用特定的组件,应用程序会通知相关组件启动。(2)间接意图:没有指定组件属性的意图。这些没有指定组件属性的意图需要拥有很多的信息,如此一来,系统才能够根据对应的信息查找符合这个意图的组件。Android机制规定对于直接意图不需要再去解析,因为已经有了很确定的目标,Android机制规定需要解析那些间接意图,解析之后的意图反馈给那些可以处理此类意图的活动或者是相关的服务。意图的原理是查找Mainfest.xml配置文件中已经注册的意图,然后检索找到匹配的意图。Android机制规定检索的时候是用意图的动

34、作、数据类型和类别这些属性进行判别的,判别的规则如下:如果意图已经指定了相应的动作就需要在检索的时候意图过滤器的动作就需要拥有这个动作,其他情况不予匹配。如果意图没有指定数据类型,系统根据数据得出数据类型,并且目标组件的数据类型一定要包括意图的数据类型,其他情况不与匹配。如果意图中的数据不是content:如果意图中没有标注数据类型,依然是根据意图中包含的数据类型匹配。如果意图明确一个或者许多类别,必须就要全部在组件类别的列表中呈现出来。比如意图中包含了两个类别:LAUNCHER_CATEGORY和ALTERNATIVEC_CATEGORY,解析得到的目标组件必须至少包含这两个类别。4.4 A

35、ndroid活动的生命周期Android平台是个手机作业系统。人们对手机系统的要求越来越高,用户希望自己再操作手机的过程中还未完成部分操作的时候,接到电话或者短信后,切出当前界面后,然后再返回操作这些界面的时候还是当初的样子,很多的用户都是一遍听歌曲的时候一边在做其他的操作。同时执行多个程序固然很方便,但是多一个应用程序势必会占据更多的内存,然而移动设备的内存是有限的并且很宝贵。当同时执行多个程序的时候,系统运行就会慢慢变得卡顿,或者会是变得不稳定。为了解决这个短板,我们就需要了解Android活动的生命周期。Android程序生命周期一般交由Android框架代为打理的,程序自身并不能控制,

36、每一个应用程序都有一个oncreate方法,也就是每一个程序都会占据一个进程。如果系统的内存不足做以后的操作时,系统的机制会根据优先级的原则进行进程的自动回收机制,无论是用户还是软件开发者,都不能确定软件什么时候被系统回收。一个完整的活动需要有oncreate方法、onpause方法和onresume方法等,用户从某个活动转换到另外活动的时候,原先的活动状态就需要变化。开发者根据自己的需要在程序中加入一些相应的流程,当检测到状态变化时,就会执行与之匹配的流程,这样做的目的是增加用户的体验度。4.4.1活动的生命状态Android的虚拟机是使用堆栈管理。主要有四种状态:(l)活动状态活动状态是用

37、户启动某一应用程序后,处于活跃的状态,Android机制规定在系统中的同一时刻只允许存在一个活动状态,其他的活动是在后台挂起的状态。(2)暂停状态暂停状态是当界面切换到后台以后,比如说正在听音乐有来电时,Android机制规定原来处于活动状态的活动切换到后台,并且活动标注于暂停状态,而且用户无法操作这个活动。(3)停止状态 用户正在操作这个活动,切换到其他的活动,那么当前的这个活动就处于停止挂起状态,当再次切换到停止的活动就会通过唤醒来操作。(4)已回收或未启动状态已回收或未启动状态是活动没有启动或者是活动已经让手动停止让系统回收的状态,手动停止是系统调用finish方法进行操作。如果活动是让

38、系统回收的,可能是系统资源不足,Android系统的机制是将停止状态的活动回收占有的系统资源。图4-1标注的7个状态可以归纳成三类:图4-1 Android活动生命周期(l)资源分配(创建/销毁)一个完整的活动生命周期起始于创建状态,终止于销毁状态,创建的时候分配系统资源,销毁活动的时候释放系统资源。(2)可见与不可见(启动/重新启动/停止)当程序启动的时候达到启动状态,就会显示到系统界面上,当活动停止的时候,程序的界面不会再系统界面上显示。当用户再次切换到这个程序上时,从新会显示到系统界面上,就会还原到启动的状况。(3)用户拥有系统界面的主动权(继续状态/暂停状态)例如:当有来电进入时,原来

39、处于活跃的活动就会列入暂停状态中,暂时不能拥有系统界面的主动权,界面跳转到来电这个高优先级的界面当中去,当高优先级的活动结束后恢复活动处于活动状态,用户就拥有了系统界面的主动权。4.4.2 活动的运作流程(l)一般启动启动一个活动的基本流程为onCreate一>onstart一>onResume。(2)调用另一个活动调用另一个活动的基本流程为onpause(l)一>onCreate(2)一>onstart(2)一>0nResume(2)一>onStop(l)。(3)回到原来活动回到原来活动的基本流程为onPause(2)一>onRestart(1)一&

40、gt;onstart(l)一>onResume(1)一>onstop(2)一>onDestroy(2)。(4)退出结束退出结束的基本流程为onPause一>onStop一>onDestroy。如果用户手动关闭,系统机制规定直接调用finish方法。(5)回收后再启动回收后再启动的基本流程为oncreate一>onstart一>onresume。5 基于Android平台的GPS美食推荐系统的设计与实现5.1 研究目标(1)掌握Android开发应用程序的流程;(2) 运用一个或者几个组件进行Android 的软件设计和实现。该系统是在eclipse下开发,搭载在Android平台的智能美食推荐系统。5.2 需求分析该系统是基于Android平台的附近美食推荐系统,启动该系统后定位查找学校内以及包括学校周边的吃住行娱乐为一体的信息,基于GPS定位附近的美食推荐系统是一款实用性极强并且面向广大学生的创新软件。甚至于这个基于地理位置的美食APP可以逐渐的发展为外卖系统。我感觉该App还是比较有发展的前景的。附近推荐软件分为以下部分:地图查看模块(查看附近的美食商家)、分享模块(分享某个美食商家)、商家详情模块(商家位置,电话,特色)5.3 程序模块设计基于地理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论