基于android的信息推送系统的研究和设计(修改)(1).doc_第1页
基于android的信息推送系统的研究和设计(修改)(1).doc_第2页
基于android的信息推送系统的研究和设计(修改)(1).doc_第3页
基于android的信息推送系统的研究和设计(修改)(1).doc_第4页
基于android的信息推送系统的研究和设计(修改)(1).doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文(设计)题目名称:基于Android的信息推送系统的研究和设计 题目类型: 毕 业 设 计 学生姓名: 院 (系): 电 子 信 息 学 院 专业班级: 指导教师: 马寅秋 辅导教师: 马寅秋 时 间: 2014年3月3日 至 2014年5月30日 长江大学毕业设计(论文)任务书学院(系) 电子信息学院 专业 电气工程 班级 学生姓名 师) 1. 毕业设计(论文)题目:基于Android系统的信息推送系统的研究与设计2. 毕业设计(论文)起止时间:2014年3月3日-2014年5月30日3毕业设计(论文)所需资料及原始数据(指导教师选定部分)1罗雷,Android系统应用开发实战详解,人民邮电出版社 , 2014.03.2张荣,Android开发与应用,北京:人民邮电出版社 , 2014.3 张余,Android网络开发从入门到精通,北京:清华大学,2014.4霍斯特曼,Java核心技术 原书第9版 卷2 高级特性 英文,机械工业出版社 , 201.5刘勇军译,Java Web核心编程技术 JSP、Servlet编程,电子工业出版社 , 2014.6朱桂英,Android开发应用从入门到精通,北京:中国铁道出版社,2011.7陈云婷,21天学通Java,电子工业出版社 , 2014.8吴亚峰, 苏亚光, Android 2.0游戏开发实战宝典,北京:人民邮电出版社,20109吴亚峰, 杜化美, 苏亚光, Android编程典型实例与项目开发,北京:电子工业出版社,2011 10蒋耘晨, Android系统原理和实战应用,北京:北京理工大学出版社,20114毕业设计(论文)应完成的主要内容本题目主要是制作一个手机平台下的小工具。主要实现的内容有:(1)了解信息推送系统的运作机制。(2)对其进行系统设计。(3)利用java对其基本功能进行详细设计。(4)设计并实现其核心功能。5毕业设计(论文)的目标及具体要求要求学生了解Java 语言解析XML文件知识,熟悉Java编程和Eclipse开发环境。本课题要求能够实现信息推送系统在手机与电脑之间或手机与电脑之间推送文本信息等基本功能,并希望能在此基础上实现推送其他信息的附加功能。在此过程中要求学生掌握Android系统的开发方法与流程,了解Android系统的结构,提高学生的编程能力和设计动手能力,提高实践水平,撰写毕业设计论文。6完成毕业设计(论文)所需的条件及上机时数要求1)Android手机一部2)微型计算机一台3)图书馆及网络4)参考资料上机250学时任务书批准日期 2014 年 2 月 20 日 教研室(系)主任(签字) 任务书下达日期 2014 年 2 月 27 日 指导教师(签字) 完成任务日期 2014 年 5 月 30 日学生(签名) 长江大学毕业论文(设计)开题报告题 目 名 称 :基于Android的信息推送系统的研究和设计题 目 类 别 : 毕业设计 院 (系) : 指 导 教 师 : 马寅秋 辅 导 教 师 : 马寅秋 开题报告日期 : 2014年3月15日 基于安卓的信息推送系统的研究和设计1.题目来源课程研究2.研究背景、意义和目的信息推送,就是网络广播,是通过一定的技术标准或协议,在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。与拉取相比,它不需要用户不停刷新来检查更新,推送会自动将信息发送给用户。在移动互联网高速发展和信息膨胀的当今社会,企事业单位对于高效便捷的信息传达的需求很大。所以,将基于安卓的推送系统引进十分有必要。将具有实际经济效益和实际作用的技术运用于实际生活,为不同事务创造切实方便的条件,提高工作效率和人们的生活质量,服务企事业发展。3.阅读的主要参考文献及资料名称1埃克尔 机械工业出版社java编程思想第四版 2李刚 电子工业出版社经典java EE企业应用实践3杨丰盛 机械工业出版社android应用开发揭秘4孙更新 电子工业出版社 android从入门到精通4.国内外现状和发展趋势及研究主攻方向:几年来,信息推送系统得到了快速发展也越来越受欢迎,很多公司的网站也将推送技术融入自己公司的主页。信息推送技术,在通过对公司网页的访客的浏览路径和时间等数据的记录和分析得出访客可能感兴趣的内容,然后将其推送给用户。现今的主要发展方向就是将推送技术和以往常用的信息传递技术拉取有机结合在信息传递方面更合适恰当的应用。5.主要研究内容,需重点研究的关键问题及解决思路重点研究问题:运用java语言编程实现各个模块的功能实现解决问题的基本思路:登陆界面 接收端信息管理信息增添6.毕业设计所具备的条件与必须采取的措施:Java软件jkd和android系统7.工作主要阶段和时间安排时间安排(周)工 作 进 度 安 排 第一周制定毕业设计安排;查询毕业设计开题报告的有关要求;搜集相关资料。第二周撰写毕业设计开题报告;查询英文翻译原稿。第三周完成毕业设计开题报告;完成英文翻译资料初稿;根据导师审定意见进行修改。第四周交英文翻译原稿;毕业设计方案审定。第五、六、七周学习用java编写计算程序,做英文翻译。第八、九周学习安卓的基本知识第十周初步完成所设计程序。第十一周完善并验证所设计程序。第十二周开始写毕业论文。第十三周完成毕业论文。第十四周毕业设计答辩,整理上交各种资料。8 指导教师审查长江大学毕业论文(设计)指导教师评审意见学生姓名毕业论文(设计)题目 基于Android的信息推送系统的研究和设计指导教师马寅秋职 称讲师评审日期评审参考内容:毕业论文(设计)的研究内容、研究方法及研究结果,难度及工作量,质量和水平,存在的主要问题与不足。学生的学习态度和组织纪律,学生掌握基础和专业知识的情况,解决实际问题的能力,毕业论文(设计)是否完成规定任务,达到了学士学位论文的水平,是否同意参加答辩。评审意见: 指导教师签名: 评定成绩(百分制):_分长江大学毕业论文(设计)评阅教师评语学生姓名毕业论文(设计)题目基于Android的信息推送系统的研究和设计评阅教师马寅秋职 称讲师评阅日期评阅参考内容:毕业论文(设计)的研究内容、研究方法及研究结果,难度及工作量,质量和水平,存在的主要问题与不足。学生掌握基础和专业知识的情况,解决实际问题的能力,毕业论文(设计)是否完成规定任务,达到了学士学位论文的水平,是否同意参加答辩。评语:评阅教师签名: 评定成绩(百分制):_分长江大学毕业论文(设计)答辩记录及成绩评定学生姓名毕业论文(设计)题目答辩时间 年 月 日 时答辩地点一、答辩小组组成答辩小组组长:成 员:二、答辩记录摘要答辩小组提问(分条摘要列举)学生回答情况评判三、答辩小组对学生答辩成绩的评定(百分制):_分 毕业论文(设计)最终成绩评定(依据指导教师评分、评阅教师评分、答辩小组评分和学校关于毕业论文(设计)评分的相关规定)等级(五级制):_答辩小组组长(签名) : 秘书(签名): 年 月 日院(系)答辩委员会主任(签名): 院(系)(盖章)基于android的信息推送系统的研究和设计电子信息学院 摘要随着互联网的普及和电脑与手机等网络终端慢慢成为现代生活不可或缺的一部分,各种网络服务层出不穷并发展壮大,便捷和加速了我们的生活。面对多元化的网络世界,针对于广告、天气等的信息推送技术也迅速发展起来了。该种技术的应用与推广,不仅仅为网络运营商带来了丰厚的利润,也为广告客户提高了自我的知名度,因此受到了很多企业的欢迎。现如今,智能手机已十分普遍。而市面上现有的智能机操作系统主要有由google公司研发出的android、苹果公司所持有的ios操作系统、微软的windows系统和blackberry。由于安卓系统是开源的,而且相对其他操作系统来讲,对其进行操作会相对简单,只要学会了java语言便可在其平台上编程实现想要的功能,所以安卓很快的占领了全球智能手机市场的半壁江山。更由于google推行的手机联盟,更是加速了安卓系统和java语言占领市场的速度,并使其发展壮大。Java是由sun公司推出的能够跨平台的、可移植性高的一种面向对象的编程语言。Java强大的跨平台性使他可以允许与任何系统上,甚至于手持电话、商务助理等电子产品中都可以运行。而在本文中,我将论述如何使用java语言在安卓手机上实现信息的推送功能。谈到推送(push)技术,它相对于拉取(pull)来说,不需要用户不断刷新界面以更新显示内容,而是服务端自动的将信息发送给要推送的对象。由于他的这个优点,可以很好的利用在公司里的消息传递,这样,既节约了劳动力,也节省了时间,更提高了消息的推送的准确性,所以极富实用价值,有很大的作用空间。关键字:android、java、信息推送Android-based research and design information push system AbstractWith the popularity of internet and computers and mobile phones becoming a necessary part of our life,all kinds of net services emerges and prospers.fastening and bringing convenience to our dairy life.facing the abundant internet ,the push tech about advertisement and weather condition have bloomed.the use of this tech not only bring huge profits to the ads company but also enhance the reputation of the company.and so it receive much welcome from many companies.Nowadays,intellect mobile have become more and more popular.the main operating systems on the market are android developed by google,ios by apple ,windows owned by microsoft and blackberry.for android is open-source to make it easier to realize necessary functions than other systems and with a good master of java you can compile what you what you want on it,it has possessed most part of the whole phone market.more over,with the solid strength of open handset alliance launched by google,it accelerated its market possessing speed .java is a language with good portability launched originally by Sun.and it can be used on any operating systems even on mobiles etc.and in this article ,i will demonstrate how to realize information push with java.talking about push,compared with pull,instead of refreshing the interface to get new information,renewing is done automatically.for this advantages can be used in companies ,thus saving labors and time as well as enhancing it accuracy,its of great use and value.Keywordsandroid,java,push tech绪论基于android的信息推送系统的研究和设计1绪 论1.1选题背景和意义在信息大爆炸的当今时代,如何更为合理的传递必要消息已变得越来越重要。对于人员众多,事物繁杂的用人单位来讲更是如此。因此,在面对着更为合理的信息管理和信息传递的需求时,结合现今智能android机风靡的实际现状,开发一款可运行于安卓机的信息推送系统十分的有必要。之所以选择安卓系统的原因,主要有以下几个:第一、安卓从一推出就是开源系统,这样使得安卓的应用软件在短短几年内迅速增长,超越了塞班,直逼苹果。又因为是开源,所以大部分程序是免费得,其中不乏很多优秀的软件,这样最终受益的是我们手机用户,而且还是因为开源,使手机成本下降了,售价也相应下降。第二、安卓系统对硬件配置有基本要求,这样就带来了良好的硬件支持,提升了用户的操作体验。现在新推出的LG双核安卓机的操作体验已经非常逼近iphone了,这对手机来说是一个很大的进步,哪个用户不希望得到很好的操作体验呢。第三、安卓的很多自带软件都需要网络的支持,拥抱云端就是安卓的重要亮点,网络应用将是未来手机的发展趋势,而安卓掌握了这点,这就让它赢在了起跑线。着眼于以上的种种优点,android的优势不言而喻。而基于android的各种应用则是顺应时代需求的产物。1.2研究现状欧美发达国家已经有很多提供推送技术服务的专业公司,其中 Urban Airship 是做得比较早,也比较成功的一家。甚至有很多大公司如 Oracle、Amazon、Intel、Salesforce 等使用其服务。他们的推送技术,除了在移动App上覆盖很广,而且传统的网站也已经在使用推送,力图达到实时Web的效果。而国内,则是 2012 年开始,由极光推送正式公开发布后,让广大开发者感觉到有可以很容易地集成起来的第三方推送服务。与众多App开发者交流时,我们发现可以如下地去分类:1)相当一部分开发者还没有意识到推送对App的重要性2)部分开发者有App里集成推送功能的需求,但由于之前国内没有易用的、真正向开发者开放的第三方服务可用,他们不得不痛苦地去折腾开源方案3)少量开发者使用了国外的第三方推送服务,费用不菲。还有少部分自己基于开源方案搭建起来了推送服务,但性能、功能达不到要求。 现如今,国内外的推送技术存在着一定的差距,从推送技术服务来说,我们有个戏称:国内互联网落后欧美发达国家至少2年。这个差距的关键在于,开发者的成熟度,用户的成熟度。但是,国内有个与欧美发达国家不同的特点:“乱”。方家文提到,“乱”体现在手机App上,就是“推送”这样一个技术、iOS/Android 智能手机的最基本功能,被许多用户所疑惑、抵制:因为国内市场上下载的相当一部分应用,被嵌入推送广告。为此,甚至一些大的安全厂商、Android市场,也会抵制推送技术。实际上,推送只一个技术,是手机的基本功能。在这个技术承载下,推送的内容可以是用户需要的,也可能是用户不需要的。用户可能直观地反感推送,这是可以理解的。但对于安全厂商、Android市场来说,在无法判断是否推送广告的情况下,则不应片面地抵制推送技术。而随着市场的成熟、用户的成熟,甚至法规的成熟,垃圾广告推送会越来越难以生存,推送技术本身带给用户的价值会越来越被认可。1.3本文工作内容本文主要是结合了现今的实际现状和企事业单位的实际需求而研发设计的。主要是采用推送技术在android机上做开发软件。本文主要包括以下几个内容:第一、首先是主要技术内容学习,包括对推送技术的了解、应用和实现,还有java开发语言的基本学习,继而就是android平台搭建和android开发等相关问题的学习。第二、分析现有的可行方案,分析各个方案的优缺点,结合自身实际,确立最佳方案。第三、规划处基本模块,然后用java编写程序以实现各个模块的正常功能实现。第四、检验各个模块的功能,然后进行补充修改。2主要技术2.1信息推送2.1.1信息推送的概念信息推送,就是web广播,是通过一定的技术标准或协议,在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。从技术而言,信息推送是一项以数据挖掘、自然语言处理以及互联网等多门技术为基础的综合性方向。将合适的信息推送给合适的人,是一项极具挑战的工作。这个过程需要对信息作充分的分析,并对人的兴趣、行为做细致的刻画,并对两者进行有效匹配。2.1.2消息推送的应用信息推送在行业内有着大量的应用方向,是当今互联网非常火热的一个技术方向。广告推送信息推送最热门的应用方向是广告推送,也就是互联网效果营销的应用方向。作为电子商务营销阶段的应用,广告推送为大量的广告主服务,把互联网广告以合适的方式推送给合适的消费者,并依据一定的商业模式进行费用计算。这一信息推送的显著特征就是,广告信息的推送过程不仅要考虑到消费者的兴趣和购买情况,也要考虑到广告本身的商业价值最大化所有有些商业模式下,需要进行竞价操作。因为搜索引擎和互联网广告的发展,使得广告推送成为一个炙手可热的应用方向。社区信息推送大量的web2.0社区,也激发了社区信息的推送应用。基于用户关系、用户行为,给用户推送用户感兴趣的信息,包括帖子、任务、游戏,等等。对于不同的社区而言,这都是激发用户活跃度、提升社区信息流通效率的有效手段。网络信息推送是利用推送(Push)技术根据用户需要,有目的、按时将用户感兴趣的信息主动发送到用户的计算机中。就像是广播电台播音, “推送”技术主动将最新的新闻和资料推送给客户,使用者不必上网搜索。 Push技术的主要优点是对用户要求低,普遍适用于广大公众,不要求有专门的技术;二是及时性好,信源及时地向用户“推送”不断更新的动态信息。信息管理 信息推送返回主目录返回使用目录返回信息管理信息推送是 SupeSite7.5 的新增功能,可以使 SupeSite 和 UCenter Home 及 Discuz! 之间的数据互相推送,增加了站点应用之间的互动性。下面请看详细介绍:管理后台=信息管理=信息推送:一、添加正向推送正向推送是由论坛或者UCenter Home推送到SupeSite。点击“添加正向推送配置”:推送名称:该项必填,是显示在推送按钮上的文字;按钮图片:用自定义图片,需要确保将图片上传到程序的 ./images/push/ 目录下面;标题标签id:如果要推送的论坛或 SupeSite 内容标题标签没有定义 id,需要站长自定义添加没有被使用的 id;内容标签id:如果要推送的论坛或 SupeSite 内容标签没有定义 id, 需要站长自定义添加没有使用的 id;是否启用:可以选择暂时不启用此推送。填写完毕,点击“获取推送代码”,即可得到:将该代码添加到您想要显示的模板相应位置即可。二、添加反向推送反向推送是由SupeSite推送到论坛或者UCenter Home。推送名称:是推送的标示,必须填写;推送类型:选择要推送到论坛还是 UCenter Home;使用聚合配置:如果您已经在聚合设置中设置了论坛或 UCenter Home 数据库相关信息,推荐在这里使用聚合设置;聚合设置详细介绍请点击;是否启用:可以选择暂时不启用此推送。三、浏览推送配置您可以对已添加的推送进行浏览、编辑或删除等操作。2.1.3消息推送的实现方式Android 推送实现方式方案1、使用C2DM服务(Google Cloud Messaging)简介:Google推出的云消息服务,即第二代的G2DM。优点:Google提供的服务、原生、简单,无需实现和部署服务端。缺点:Android版本限制(必须大于2.2版本),该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。方案2、使用XMPP协议(Openfire + Spark + Smack)简介:基于XML协议的通讯协议,前身是Jabber,已由IETF国际标准化组织完成了标准化工作。优点:协议成熟、强大、可扩展性强、主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。方案3、使用MQTT协议简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。优点:协议简洁、小巧、可扩展性强、省流量、省电,应用到企业领域,且已有C+版的服务端组件rsmb。缺点:不够成熟、实现较复杂、服务端组件 rsmb 不开源,部署硬件成本较高。方案4、使用第三方推送服务简介:通过嵌入SDK使用第三方提供的推送服务,主流的有百度云推送,智游推送,Urban Airship,个推,PUBNUB,蝴蝶等。优点:稳定,成熟,节省开发和探索时间,相对自己开发成本低,推送管理界面及统计程序完善。缺点:有程序嵌入顾虑2.2android系统基础2.2.1 android系统特点和结构1、Android价格占优价廉性能并不低消费者选择产品,价格是必然要考虑的一大因素,iphone虽好,但是价格让一般人望而却步。苹果就像是宝马、奔驰,虽然大家都认为它很好,但是一般人消费不起,只有看的份。而Android,如同大众,满大街跑的都是,不仅如此,还有一些型号是可以与宝马、奔驰相媲美的。虽然Android平台的手机价廉,但是其性能却一点也不低廉,触摸效果并不比苹果差到哪里去。Android平台简单实用,无论是功能还是外观设计,都可以与苹果一决高下。当消费者考虑价格因素之后,在数量众多的android手机中,消费者总是会找到一款满意的Android手机取代价格高昂的iPhone。2、应用程序发展迅速智能机玩的就是个应用,虽然现在Android的应用还无法与苹果相竞争,但是随着Android的推广与普及,应用程序数在成数量级增长,Android应用在可预见的未来是有能力与苹果相竞争的。而来自Android应用商店最大的优势是,不对应用程序进行严格的审查。在这一点上优于苹果。3、智能手机厂家助力苹果的自我中心是它成功的一大法宝,从硬件到软件,到其独特的推广方式。苹果形成了一个很好的很完整的产业链。在一个封闭的圈子中创造一个又一个的奇想,让消费者的体验得到了很大的满足。但是这样并不能使其长期占据有利位置。现在,世界很多智能手机厂家几乎都加入了Android阵营,并推出了一系列的Android智能机。摩托罗拉、三星、HTC、LG、Lumigon等厂家都与谷歌建立了Android平台技术联盟。厂商加盟的越多,手机终端就会越多,其市场潜力就越大。Android智能机最近6个月在美国市场的占有率足以说明这一点。4、运营商的鼎力支持在国内,三大运营商是卯足了劲的推出Android智能机。联通的“0元购机”,电信的千元3G,移动的索爱A8i定制机,都显示了运营商对Android智能机的期望。在美国,T-Mobile、Sprint、AT&;T和Verizon全部推出了Android手机。此外,日本的KDDI,NTTDoCoMo,TelecomItalia(意大利电信)、T-Mobile(德国)、Telefnica(西班牙)等众多运营商都是Android的支持者。有这么多的运营商支持Android,自然会占据巨大的市场份额。相对于Android的运营商联盟,只有AT&;T一家运营商销售iPhone。而苹果其特有的自我封闭性,无论是对手机厂商还是对运营商,都带来了一定的威胁性。手机联盟的形成,在一定程度上直指苹果。5、机型多硬件配置优自从谷歌推出Android系统以来,各大厂家纷纷推出自己的Android平台手图19 android架构图机,HTC、索尼爱立信、魅族、摩托罗拉、夏普、LG、三星、联想等等,每一家手机厂商都推出了各自的Android手机,机型多样,数不胜数。 图1摩托罗拉的DroidX、三星的Galaxy,HTC从开始的T-MobileG1到当前的EVO4G,每一款都有着优秀的配置,都有可说之处。6、系统开源利于创新苹果的自我封闭性,使其创新必须源自内部。而Android是开源的,允许第三方修改,这在很大程度上容许厂家根据自己的硬件更改版本,从而能够更好的适应硬件,与之形成良好的结合。相比于苹果的封闭,开源能够提供更好的安全性能,也给开发人员提供了一个更大的创新空间,从而使Android版本升级更快。2.2.2android系统结构Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。1、应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2、应用程序框架开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。3、系统运行库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:* 系统 C 库 - 一个从BSD继承来的标准C系统函数库 Libc ), 它是专门为基于Embedded linux的设备定制的。* 媒体库 - 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。* Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。* LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。4、系统内核Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。5、硬件抽像层Android 的HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 Kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。HAL stub 是一种代理人(Proxy)的概念,Stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(Operations),并由 Android runtime 向 HAL 取得 Stub 的Operations,再 Callback 这些操作函数。HAL 里包含了许多的 Stub(代理人)。Runtime 只要说明“类型”,即 Module ID,就可以取得操作函数。 6、中介软件操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。Android采用OpenCORE作为基础多媒体框架。Open CORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia 也是Google Chrome 的图形引擎。Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。Dalvik虚拟机可以有多个实例(Instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。2.2.3应用程序组件Android开发四大组件分别是:活动(Activity): 用于表现功能。服务(Service): 后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider): 支持在多个应用中存储和读取数据,相当于数据库。 1、活动Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Activity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。一般一个Android 应用是由多个Activity 组成的。这些Activity 之间可以相互跳转。例如,按下一个Button按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。2、服务Service 是android 系统中的一种组件,他和activity级别差不多,但他不能自己运行只能后台运行。并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。Service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录地理信息位置的改变等等,总之服务嘛,总是藏在后头的。3、开启Service有两种方式:(1) Context.startService():Service会经历onCreate - onStart(如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次 );StopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用StopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。 注意,多次调用Context.startservice()不会嵌套(即使会有相应的onStart()方法被调用),所以无论同一个服务被启动了多少次,一旦调用Context.stopService()或者StopSelf(),他都会被停止。补充说明:传递给StartService(0的Intent对象会传递给onStart()方法。调用顺序为:onCreate - onStart(可多次调用) - onDestroy。(2) Context.bindService():Service会经历onCreate() -onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind - onDestroyed相应退出,所谓绑定在一起就共存亡了4、广播接收器在Android 中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的Intent Broadcasts广播给其他应用程序。 内容提供5、Content Provider 是Android提供的第三方应用数据的访问方案在Android11中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是Content Provider。应用想对外提供的数据,可以通过派生Content Provider类, 封装成一枚Content Provider,每个Content Provider都用一个uri作为独立的标识,形如:content:/com.xxxxx。所有东西看着像REST的样子,但实际上,它比REST 更为灵活。和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给id的uri也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。3信息推送方案研究3.1推送的优势push 和 pull 这两种技术手段非常不同,但目的几乎一致,都是为了给最终用户方便的提供最新信息。在客户端拖曳技术中,服务器发送一批数据,在HTTP响应或文档头标记中插入指令,让浏览器“在5秒内再次装入这些数据”或“10秒内前往某URL装入数据”。当指定的时间达到时,客户端就按照服务器的指示去做,或者刷新当前数据,或者调入新的数据。在服务器推送技术中,HTTP 连接一直保持着,直到服务器知道自己已结束发送数据并发送一个结束信号,或者客户端中断连接。而在客户端拖曳技术中,并不保持HTTP连接,相反,客户端被

温馨提示

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

评论

0/150

提交评论