Android_系统简介.ppt_第1页
Android_系统简介.ppt_第2页
Android_系统简介.ppt_第3页
Android_系统简介.ppt_第4页
Android_系统简介.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、Android 系统简介,Android 系统简介,Android的前世今生 Android的优势 Android系统架构,Android的前世今生,Android的诞生,Android 发展,2007.11.5 Android 平台发布 2008.9.22 T-Mobile G1上市 2009年1季度 G1销售100万支 2009.3 MWC华为发布Android手机 Moto,三星,LG计划2009年下半年推出Android手机 2009 获得Orange, Vodafone, O2, Telefonica支持 2009进军上网本,Android的前世今生,Nokia/Apple/Goog

2、le的战争,Android的优势,开放性 所有的应用是平等的 应用间无界限 快速方便的应用开发,开放性,谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。 Android 是一个真正意义上的开放性移动设备综合平台。 通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。,应用平等,所有的Android应用之间是完全平等的。 所有的应用都运行

3、在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。 撇开这个核心引擎,Android的所有其他的东西都是”应用”。,应用平等,应用无界限,Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。,快速方便的开发应用,Android平台为开发人员提供了大量的实用库和工具,开发人员可以很快速的创建自己的应用。例如在别的手机平台上要进行基于位置的应用的开发是相当的复杂的,而Android将Google Map集成了进来,开发人员通过简单的几行代码就可以实现一个如图 1

4、 6的一个地图应用,更详细的介绍可以参见第八章。,Android系统架构,建立Android 开发环境,建立Android 开发环境,JDK安装 Android SDK安装以及系统设置 Eclipse安装以及ADT工具的安装,第一个Android应用,第一个Android应用,分析Hello Android Android程序的结构 添加编辑框与按钮,Android程序基础,Android 程序基础,Android程序的构成 应用的生命周期,Android应用程序的构成,Android应用程序的构成,应用生命周期,Android引入了一个全新的机制-应用程序生命周期(Life Cycle)。

5、多数情况下,一个Android应用运行在一个独立的Linux进程中 应用进程的的生命周期(存活时间)不是由进程自己控制,而是由Android系统决定 影响应用生命周期的主要因素包括:该进程对于用户的重要性,以及当前系统中还剩多少可用内存。,应用生命周期,应用生命周期,应用生命周期,应用生命周期,应用生命周期,应用生命周期,应用生命周期,Intent与Activity,Intent与Actitity,Intent 与 Intent filters Broadcast Intent Receiver 添加新的Activity,Activity,何谓Activity:最简单的就是你可以把Activi

6、ty看成一个User Interface Program,原则上它会提供使用者一个交互式的接口功能,那一个activity只有一个UI吗?非也,举例来说:一个email程序,就可能 包含三个activity 邮件列表的activity 显示邮件内容的activity 写新邮件或回复邮件的activity 所 有的Activity在系统里由Activity堆栈所管理,当一个新的Activity被执行后,它将会被放置到堆栈的最顶端,并且变 成running activity, 而先前的Activity原则上还是会存在于堆栈中,但它此时不会是在前景的情况,除非刚刚那个新的Activity离开。,In

7、tent,Android使用了一个很特别的类别叫Intent, 用来从一个画面跳到另一个画面。 Intent是用来描述一个程序想要作些什么事情。 在Intent的数据结构里有两个很重要的部份,一个是动作 (action)及对数据产生反应(data to act upon)。action主要的内容有MAIN(程序的进入点),VIEW,PICK,EDIT等等。data则是用URI的形示来表示。比如:想要查看 一个人的联络数据时,你需要建立一个Intent,它包含了VIEW的动作(action)及指向该人数据的URI描述句。,Intent Filter,当Intent要求做某些事情时,IntentF

8、ilter被用来描述这个activity能够做些什么事情。比如 一个activity要能够显示个人联络数据,你就必需要在IntentFilter说明你要如何处理个人联络数据并用ACTION_VIEW呈现出来。 IntentFilter都会在AndroidManifest.xml清单里面声明。,Broadcast Intent Receiver,当你想要写一个程序来对外部的事件做些处理时,可以使用Broadcast Intent Receiver。比如:当电话响时,有短信时。Broadcast Intent Receiver它并不能拿来显示UI画面,它必需利用NotificationManage

9、r来通知使用者他们感兴趣的事件发生了。 Broadcast Intent Receiver同样的可以在AndroidManifest.xml中声明,但你也可以用写 Context.registerReceiver()程序的方式来注册你自己的Broadcast Intent Receiver。你自己的程序并不会因为BroadcastReceivers被呼叫而被它执行起来。而是当BroadcastReceiver被触发 时系统会依需求来执行相对应的程序。程序可以利用Context.sendBroadcast()来发出他们自己的intent broadcast给其它的程序。,Intent 与 Act

10、ivity,画面的切来切去则是由resolving intent来实现的。当你想产生新的画面时,现行的activity就使用startActivity(myIntent)。 系统会根据所有已安装的程序所定义的intent filter来看那个程序是最适合myIntent。 当startActivity被呼叫时,resolving Intents的处理过程是伴随而来的。resolving intent提供我们两个好处: 让Activities可以很容易的利用Intent的方式去使用别的程序的功能。 Activities可以很容易的在任何情况下由新Activity所取代。,Activity生命周期

11、,Activity生命周期,使用Bundle在Activity间传递数据 Log与DDMS Activity生命周期,Activity,何谓Activity:最简单的就是你可以把Activity看成一个User Interface Program,原则上它会提供使用者一个交互式的接口功能,那一个activity只有一个UI吗?非也,举例来说:一个email程序,就可能 包含三个activity 邮件列表的activity 显示邮件内容的activity 写新邮件或回复邮件的activity 所 有的Activity在系统里由Activity堆栈所管理,当一个新的Activity被执行后,它将会

12、被放置到堆栈的最顶端,并且变 成running activity, 而先前的Activity原则上还是会存在于堆栈中,但它此时不会是在前景的情况,除非刚刚那个新的Activity离开。,Activity状态,当一个Activity在屏幕的最上层时(堆栈的最顶端),它就是属于active或running的状态 如果一个Activity失去焦点(focus)但还看得到它的画面(比如:一个新的Activity画面并不是全屏幕或者它是一个半透明的情况),那失去焦点的这个Activity则处在paused的状态。像这个失去焦点的Activity它还是完全活着的,并没有消失。(活着的意思是指,Activi

13、ty自已本身所有的状态及数据都还是存在的,也跟窗口管理程序window manager保持连系着),像这种paused的activity,会在一种情况下消失,那就是当系统的内存不够用之时,系统会自动判断,把不重要的 activity移除。,Activity状态-cont,如果一个Activity被其它的Activity完全的遮住时,这个被遮的Activity处于stop的状态,它仍然保有全部的状态及数据,但因为它已不再被使用者看见,所以它的画面是被隐藏起来的(画面不需要更新),当系统内存不足时,这种stop状态的activity是最先被系统考虑拿来释放内存的。,Activity状态-cont,

14、当一个Activity处于pause或stop的状态时,系统可以要求Activity结束(finish)或直接移除(kill)它。当它需要再度呈现在使用者面前时,它必需要能完整的重新启动及回复先前的状态,使用Service,使用Service,什么是服务(service) 如何使用服务 使用服务进行音乐播放,Service,服务是运行在后台的一段代码。它可以运行在它自己的进程,也可以运行在其他应用程序进程的上下文(context)里面,这取决于自身的需要。其它的组件可以绑定到一个服 务(Service)上面,通过远程过程调用(RPC)来调用这个方法。例如媒体播放器的服务, 当用户退出媒体选择用

15、户界面,仍然希望音乐依然可以继续播放,这时就是由服务 (service)来保证当用户界面关闭时音乐继续播放的。,如何使用Service,第一种是通过调用Context.startService()启动,调用Context.stopService()结束,startService()可以传递参数给Service。 第二种方式是通过调用Context.bindService()启动,调用Context.unbindservice()结束,还可以通过ServiceConnection访问Service。二者可以混合使用,比如说我可以先startService再bindservice。,Service

16、的生命周期,startService后,即使调用startService的进程结束了Service仍然还存在,直到有进程调用stopService,或者Service自己自杀(stopSelf())就没法了 bindService后,Service就和调用bindService的进程同生共死了,也就是说当调用bindService的进程死了,那么它bind的Service也要跟着被结束,当然期间也可以调用unbindservice让 Service结束。 两种方式混合使用时,比如说你startService了,我bindService了,那么只有你stopService了而且我也unbinds

17、ervice了,这个Service才会被结束。,进程生命周期,Android系统将会尝试保留那些启动了的或者是绑定了服务的进程 如果该服务正在进程的onCreate(), onStart(), 或者 onDestroy() 这些方法中执行时, 那么主进程将会成为一个前台进程,以确保此代码不会被停止 如果服务已经开始,那么它的主进程会就重要性而言低于所有可见的进程但高于不可见的进程, 由于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会停止. 如果有多个客户端绑定了服务, 只要客户端中的一个对于用户是可见的,即认为该服务可见,Content Provider,Content Pr

18、ovider,为什么需要Content Provider 如何使用Content Provider,为什么需要Content Provider,为在 Android 中,每个应用程序都是用自己的 user ID 及在自己的 process 中执行 当应用程序彼此间要分享数据时,这样的架构势必要提供一个好的解决方案才行 为了解决应用程序间,彼此要分享数据的需求,Android 提供了 Content Provider 这个机制。,使用Content Provider,每一种Content Provider都提供一个唯一公共URI(由ContentURI封装),它将被客户端用于从内容提供器请求/添加/更新/删除数据。 vider.Contacts.Phones.CONTENT_URI vider.Contacts.Photos.CONTENT_URI and

温馨提示

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

评论

0/150

提交评论