收藏 分销(赏)

android特点.ppt

上传人:s4****5z 文档编号:14008023 上传时间:2026-05-26 格式:PPT 页数:24 大小:423KB 下载积分:10 金币
下载 相关 举报
android特点.ppt_第1页
第1页 / 共24页
android特点.ppt_第2页
第2页 / 共24页


点击查看更多>>
资源描述
書式編集。,書式編集。,2目,3目,4目,5目,6目,7目,8目,9目,*,書式編集。,*,書式編集。,書式編集。,2目,3目,4目,5目,6目,7目,8目,9目,*,書式編集。,書式編集。,2目,3目,4目,5目,6目,7目,8目,9目,Android,初步认识,目录,Android,进程,Android,内存策略,Android,虚拟机,Dalvik,Android,与,linux,相比,进程间通讯,Android,简介,Android,一词的本义指“机器人”,同时也是,Google,于,2007,年,11,月,5,日宣布的基于,Linux,平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为,Android,系统,4.0,命名为,Ice Cream Sandwich,(简称,ICS,,冰淇淋三明治),Android,是基于,Linux,内核的操作系统,是,Google,公司在,2007,年,11,月,5,日公布的手机操作系统。,系统架构,应用程序,Android,以,Java,为编程语言,从接口到功能,都有层出不穷的变化,其中,Activity,等同于,J2ME,的,MIDlet,,一个,Activity,类(,class,)负责创建视窗(,window,),一个活动中的,Activity,就是在,foreground,(前景)模式,背景运行的程序叫做,Service,。两者之间通过由,ServiceConnection,和,AIDL,连结,达到复数程序同时运行的效果。如果运行中的,Activity,全部画面被其他,Activity,取代时,该,Activity,便被停止(,stopped,),甚至被系统清除(,kill,)。,View,等同于,J2ME,的,Displayable,,程序人员可以通过,View,类与“,XMLlayout”,档将,UI,放置在视窗上。,View,的构造函数不需要再,Activity,中调用,但是,Displayable,的是必须的,在,Activity,中,要通过,findViewById,(),来从,XML,中取得,View,,,Android,的,View,类的显示很大程度上是从,XML,中读取的。,View,与事件(,event,)息息相关,两者之间通过,Listener,结合在一起,每一个,View,都可以注册一个,event listener,,例如:当,View,要处理用户触碰(,touch,)的事件时,就要向,Android,框架注册,View.OnClickListener,。另外还有,Image,等同于,J2ME,的,BitMap,。,中介软件,操作系统与应用程序的沟通桥梁,应用分为两层:函数层(,Library,)和虚拟机(,Virtual Machine,)。,Android,采用,OpenCORE,作为基础多媒体框架。,Android,使用,skia,为核心图形引擎,搭配,OpenGL/ES,。,skia,与,Linux Cairo,功能相当,但相较于,Linux Cairo,skia,功能还只是雏形的。,Android,的多媒体数据库采用,SQLite,数据库系统。数据库又分为共用数据库及私用数据库。用户可通过,ContentResolver,类(,Column,)取得共用数据库。,Android,的中间层多以,Java,实现,并且采用特殊的,Dalvik,虚拟机(,Dalvik,Virtual Machine,)。,Dalvik,虚拟机是一种“暂存器型态”(,Register Based,)的,Java,虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。,Dalvik,虚拟机可以有多个实例(,instance,),每个,Android,应用程序都用一个自属的,Dalvik,虚拟机来运行,让系统在运行程序时可达到优化。,Dalvik,虚拟机并非运行,Java,字节码(,Bytecode,),而是运行一种称为,.,dex,格式的文件。,硬件抽像层,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,,就可以取得操作函数。,编程语言,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,工作的一个工具。,Android,版本,Android 1.1,发布时间:发布于,2008,年,9,月,Android 1.5 Cupcake,发布时间:发布于,2009,年,5,月,Android 1.6 Donut,2009,年,9,月发布,Android 2.0,Eclair,2009,年,10,月,26,日,Android 2.1,Eclair,Android 2.1:2009,年,10,月,26,日,又一个主要版本升级以创纪录的速度放出。这次,大版本升级到了,Android 2.1“,Eclair,.”,Android 2.1,主要特性:,提升硬件速度,更多屏幕以及分辨率选择,大幅度的用户界面改良,支持,Exchange,活动墙纸,大幅改进虚拟键盘,蓝牙,2.1,Google,地图,Android 2.2,Froyo,谷歌于北京时间,2010,年,5,月,20,日晚上,10:30,点在旧金山,Moscone,会展中心举办,Google I/O 2010,大会第二天的会议,,Google,正式发布了代号是“,froyo,冻酸奶”的,Android,操作系统,2.2,版。,相对于上一版本的 改变:,1,、整体性能大幅度的提升,2,、,3G,网络共享功能。,3,、,Flash,的支持。,4,、,App2sd,功能。,5,、全新的软件商店。,6,、更多的,Web,应用,API,接口的开发。,Android,版本,Android,版本,Android 2.3 Gingerbread,北京时间,2010,年,12,月,7,日凌晨,,Google,正式对外发布了他们的下一,代智能手机操作系统,Android 2.3,也就被大家所熟知的,Android Gingerbread,系统。,主要更新包括:,游戏:增加了新的垃圾回收和优化处理事件,以提高对游戏的支持能力。原生代码可直接存取输入和感应器事件、,EGL/OpenGL ES,、,OpenSL,ES,。新的管理窗口和生命周期的框架。,多媒体:支持,VP8,和,WebM,视频格式,提供,AAC,和,AMR,宽频编码,提供了新的音频效果器,比如混响、均衡、虚拟耳机和低频提升,通讯方式:支持前置摄像头、,SIP/VOIP,和,NFC,(近场通讯),站在用户的角度看,这次更新的亮点主要有:,简化界面、速度提升:,更快更直观的文字输入:,一键文字选择和复制,/,粘帖:,改进的电源管理系统:,新的应用管理方式:,原生支持前置前置摄像头、互联网通话和,NFC,(近场通讯):,系统原生支持,VoIP,,可以在联系人里加入它的,SIP,帐户,然后直接通过系统来拨打,VoIP,电话。,增加下载管理器:,Android,版本,Android 2.4 Ice cream sandwich,就像,Android 2.0,和,2.1,版本都使用,Eclair,(法式奶油夹心甜点)一样,,Android 2.3,和,2.4,将会共享,Gingerbread,(姜饼)代号。这两个版本之间的变化不会太大,但是会有不少功能更新。,目前已知的,Android 2.4,带来的更新包括更多的动画特效、更快的运行速度、软件通话降噪、视频聊天等。,Android 2.4,系统不会是之前一直谣传的,Android 3.0,,其真正的版本号将会是,Android 2.4,。,Android,版本,Android 3.0 Honeycomb,3.0,系统特性,优化针对平板,全新设计的,UI,增强网页浏览功能,n-app purchases,功能,经过优化的,Gmail,电子邮箱;,全面支持,GoogleMaps,Android 3.1 Honeycomb,Google,发布了最新的,Android3.1,操作系统,新版本最大的改变是将,Android,手机系统跟平板系统再次合并,从而方便开发者。,Android3.1,相比,3.0,的升级有限,除了任务管理器可以滚动,支持,USB,输入设备(键盘、鼠标等),另外还有,它会支持,Google TV.,可以支持,XBOX 360,无线手柄,这个就牛掰了,大屏幕的,Android,平板电脑肯定会非常吃香,简直就是一台随身游戏机嘛,还是用手感最好的无线手柄的。此外就是一些,widget,支持的变化,能更加容易的定制屏幕,widget,插件。,Android,进程,Android,的进程。当一个程序第一次启动的时候,,Android,会启动一个,LINUX,进程和一个主线程。默认的情况下,所有该程序的组件都将在该进程和线程中运行。同时,,Android,会为每个应用程序分配一个单独的,LINUX,用户。,Android,会尽量保留一个正在运行进程,只在内存资源出现不足时,,Android,会尝试停止一些进程从而释放足够的资源给其他新的进程使用,也能保证用户正在访问的当前进程有足够的资源去及时地响应用户的事件。,Android,会根据进程中运行的组件类别以及组件的状态来判断该进程的重要性,,Android,会首先停止那些不重要的进程。按照重要性从高到低一共有五个级别:,五个级别,前台进程,前台进程是用户当前正在使用的进程。只有一些前台进程可以在任何时候都存在。他们是最后一个被结束的,当内存低到根本连他们都不能运行的时候,在这种情况下,设备会进行内存调度,中止一些前台进程来保持对用户交互的响应。,可见进程,可见进程不包含前台的组件但是会在屏幕上显示一个可见的进程是的重要程度很高,除非前台进程需要获取它的资源,不然不会被中止。,服务进程,运行着一个通过,startService(),方法启动的,service,,这个,service,不属于上面提到的,2,种更高重要性的。,service,所在的进程虽然对用户不是直接可见的,但是他们执行了用户非常关注的任务(如播放,mp3,,从网络下载数据)。只要前台进程和可见进程有足够的内存,系统不会回收他们。,后台进程,运行着一个对用户不可见的,activity,(调用过,onStop(),方法,).,这些进程对用户体验没有直接的影响,可以在服务进程、可见进程、前台进程需要内存的时候回收。通常,系统中会有很多不可见进程在运行,他们被保存在,LRU(least recently used),列表中,以便内存不足的时候被第一时间回收。如果一个,activity,正确的执行它的生命周期,关闭这个进程对于用户体验没有太大的影响。,空进程,未运行任何程序组件。运行这些进程的唯一原因是作为一个缓存,缩短下次程序需要重新使用的启动时间。系统经常中止这些进程,这样可以调节程序缓存和系统缓存的平衡。,Android,进程管理,Android,的核心系统服务依,赖于,Linux,内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。,Low Memory Killer,基本原理,Android,的,Low Memory Killer,是在标准,linux kernel,的,OOM,基础上修改而来的一种内存管理机制,当系统内存不足时,杀死,Bad,进程释放其内存。,Bad,进程的选择标准有两个:,oom_adj,和占用内存的大小。,oom_adj,代表进程的优先级,数值越大,优先级越高,对应每个,oom_adj,都有一个空闲内存的阈值。,Android Kernel,每隔一段时间会检查当前空闲内存是否低于某个阈值,如果是,则杀死,oom_adj,最大的,Bad,进程,如果有两个以上,Bad,进程,oom_adj,相同,则杀死其中占用内存最多的进程。,Low Memory Killer,与,OOM,的区别,OOM,即,Out of Memory,是标准,linux Kernel,的一种内存管理机制,,Low Memory Killer,在它基础上作了改进:,OOM,基于多个标准给每个进程打分,分最高的进程将被杀死;,Low Memory Killer,则用,oom_adj,和占用内存的大小来选择,Bad,进程,OOM,在内存分配不足时调用,而,Low Memory Killer,每隔一段时间就会检查,一旦发现空闲内存低于某个阈值,则杀死,Bad,进程,。,Android,内存管理,Android,的内存管理有一些不同寻常,如同,Java,或,.net,,,Android,有自己的运行时状态和虚拟机,(Dalvik),去管理程序内存。但不像其它框架,(,比如,Java,,程序打开时该程序的进程开始,程序退出时该程序的进程也就结束,),,,android,同时也管理进程的生命周期。,Android,会通过停止或杀死低优先级的进程来确保高优先级的进程能够正常工作。换句话说进程的清理是由,Android,说了算的,它会在系统遭遇性能瓶颈时去杀死低优先级的进程以确保系统和高优先级进程能够正常运行,而不是简单的程序退出后该程序的进程也同进结束。在,Android,中如果系统有足够的可用内存,那么应用的进程就不会被销毁,效果就是你在重新运行该应用时速度会很快。,每一个,Android,的应用都运行在一个独立的进程和虚拟机实例中,所有的应用进程都由,Android,运行时环境进行统一管理(在需要的时候停止或杀死某个进程)。,特点,1,系统进程管理,Android,平台的进程间通讯基于,Binder,机制实现,它提供了一种进程间通信的方法,即一个进程可以,以类似远程过程调用的形式调用另一个进程所提供的,功能,然后带着执行的结果返回。,Andro id Binder,是基于,Serv ice,与,Client,的,有一个,ServiceManager,的守护进程管理着系统的各个服务,它负责监听是否有其他程序向其发送请求,如果有请求就响应,每个服务都要在,ServiceManag er,中注册,而请求服务的客户端去,Ser viceManager,请求服务。,2,内存管理,低内存管理器,(Low Memor y Killer):,相对于,Linux,标准,OOM(Out Of Memory),机制更加灵活,它可以根据需要杀死进程来释放需要的内存。匿名共享内存,(ashmem):,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存的机制。,Android PMEM(Physical):PMEM,用于向用户空间提供连续的物理内存区域,DSP,和某些设备只能工作在连续的物理内存上。,3,文件系统管理,Android,平台采用,Yaf fs2,作为,MTD nand f lash,文件系统,Yaff s2,是一个快速稳定的应用于,NA ND,和,NOR Flash,的跨平台的嵌入式设备文件系统,同其他,Flash,文件系统相比,Yaff s2,使用更小的内存来保存它的运行状态,因此它占用内存小,;Yaf fs2,的垃圾回收非常简单而且快速,因此能达到更好的性能,;Yaff s2,在大容量的,NAND Flash,上性能表现尤为明显,非常适合大容量的,Flash,存储。,4,时钟管理,Android Alarm,提供了一个定时器用于把设备从睡眠状态唤醒,同时它也提供了一个即使在设备睡眠时也会运行的时钟基准,Andro id t imed dev ice,提供了对设备进行定时控制功能,目前支持,vibrator,和,LED,设备。,5,电源管理,Android,电源管理,(PM),一个基于标准,Linux,电源管理系统的轻量级的,Andro id,电源管理驱动,针对嵌入式设备做了很多优化。,6,USB,管理,Android,的,U SB,驱动是基于,gaeget,框架的,U SBGadget,驱动是一个基于标准,Linux USB g adg et,驱动框架的设备驱动。,7,系统日志管理,Android Log ger,一个轻量级的日志设备,用于抓取,Andro id,系统的各种日志,。,Dalvik,每一个,Android,应用程序都在它自己的进程中运行,都拥有一个独立的,Dalvik,虚拟机实例。,Dalvik,是,Google,公司自己设计用于,Android,平台的,Java,虚拟机。是,Android,移动设备平台的核心组成部分之一。它可以支持已转换为,.dex,格式的,Java,应用程序的运行,,.dex,格式是专为,Dalvik,设计的一种压缩格式,适合内存和处理器速度有限的系统。,Dalvik,经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个,Dalvik,应用作为一个独立的,Linux,进程执行。,Android,上的应 用是带 有独立 虚拟 机的,也就是每开 一个应用就会打开一个独立的虚拟机,.,这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存,.,与,linux,比较,Androjd,内核与标准,linux,内核在文件系统、进程间通信机制、内存管理等方面存在不同。,文件系统,不同于桌面系统与服务器移动设备大多采用的不是硬盘而是采用,n,鹅,h,作为存储介质,因此,,Android,内核中增加了标准“,n,砸内核中没有采纳的,YAFFs2,文件系统。,YAFFS2(Yet Anotller nash File Sv-ste,矾,2nd edition),是专用于,nash,的文件系统对,NAND,F1ash,芯片有着良好的支持。,YAFFs2,是日志结构的文件系统,提供了损耗平衡和掉电保护可以有效地避免意外断电对文件系统一致性和完整性的影响。,YAFFS2,按层次结构设计,分为文件管理接口、内部实现层和,NAND,,简化了其本身与系统的接口设计能更方便地集成到系统当中。经过测试证明,YAFFs2,性能比支持,NOR,型闪存的,JFI,强,2,文件系统优秀,f,】。,进程问通信机制,Andmid,增加了一种进程间的通信机制,IPC Bin,der,在内核源代码中驱动程序文件为,coredr0,赳,include,,,linux,,,binder,山和,coredmid,drivells,hndI,oidminder,c,。,Binder,通过守护进程,Senrice Mana,鼬,r,管理系统中的服务负责进程问的数据交换。各进程通过,Binder,访问同一块共享内存以达到数据通信的机制。从应用层的角度看进程通过访问数据守护进程获取用于数据交换的程序框架接口调用并通过接口共享数据,而其他进程要访问数据也只需与程序框架接口进行交互方便了程序员开发需要交互数据的应用程序。,内存管理,在内存管理模块在标准,linux,内核当中使用一种叫做,00M(0ut of Memorv),的低内,存管理策略:当内存不足时,系统检查所有的进程,并对进程进行限制评分获得最高分的进程将被关闭,(,内核进程除外,),。,Android,系统采用的则是一种叫作,LMK(Iow Memory,Killer),的机制,这种机制将进程按,照莺要性进行分级、分组。内存不足时,将处于最低级别组的进程关闭。例如在移动设备当中。,UI,界面处于最高级别。所以该进程永远不会被中止,这样,在终端用户看来系统是稳定运行的。与此同时,Android,新增加了一种内存共享的处理,方式,Ashmem(Anonvmous Shared Memory,,匿名共享内,存,),。通过,Ashmem,进程间可以匿名自由共享具名的内存块。这种共享方式在标准,Linux,当中不被支持。,与,linux,比较,电源管理,由于,Android,主要用于移动设备,电源管理就显得尤为重要因此在,Android,内核当中。增加了一种新的电源管理策略。目前,,Andmid,采用的是一种较为简单的电源管理策略通过开关屏幕、开关屏幕背光、开关键盘背光、开关按钮背光和调整屏幕亮度来实现电源管理并没有实现休眠和待机功能。有三种途径判断调整电源管理策略:,RPC,调用、电池状态改变和电源设置。它通过广播,Intent,或直接调用,API,的方式来与其他模块进行联系。电源管理策略同时还有自动关机机制当电力低于最低可接受程度时,系统将自动关机。,Andmid,的电源管理模块还会根据用户行为,自动调整屏幕亮度其响应机制如图,l,所示。,驱动及其他,相对于标准内核,Andmid,内核还添加了字符输出设备、图像显示设备、键盘输入设备、,RrrC,设备、,UsBDevice,设备等相关设备驱动。增加了日志,(kgger),系统使应用程序可以访问日志消息。,Android,跨进程通讯,在,android SDK,中提供了,4,种用于跨进程通讯的方式。这,4,种方式正好对应于,android,系统中,4,种应用程序组件:,Activity,、,Content Provider,、,Broadcast,和,Service,。其中,Activity,可以跨进程调用其他应用程序的,Activity,;,Content Provider,可以跨进程访问其他应用程序中的数据(以,Cursor,对象形式返回),当然,也可以对其他应用程序的数据进行增、删、改操 作;,Broadcast,可以向,android,系统中所有应用程序发送广播,而需要跨进程通讯的应用程序可以监听这些广播;,Service,和,Content Provider,类似,也可以访问其他应用程序中的数据,但不同的是,,Content Provider,返回的是,Cursor,对象,而,Service,返回的是,Java,对象,这种可以跨进程通讯的服务叫,AIDL,服务,方式,方式一:访问其他应用程序的,Activity,Activity,既可以在进程内(同一个应用程序)访问,也可以跨进程访问。如果想在同一个应用程序中访问,Activity,,需要指定,Context,对象和,Activity,的,Class,对象。,Activity,的跨进程访问与进程内访问略有不同。虽然它们都需要,Intent,对象,但跨进程访问并不需要指定,Context,对象和,Activity,的,Class,对象,而需要指定的是要访问的,Activity,所对应的,Action,(一个字符串)。有些,Activity,还需要指定一个,Uri,(通过,Intent,构造方法的第,2,个参数指定)。,方式二:,Content Provider,Android,应用程序可以使用文件或,SqlLite,数据库来存储数据。,Content Provider,提供了一种在多个应用程序之间数据共享的方式(跨进程共享数据)。应用程序可以利用,Content Provider,完成下面的工作,1.,查询数据,2.,修改数据,3.,添加数据,4.,删除数据,虽然,Content Provider,也可以在同一个应用程序中被访问,但这么做并没有什么意义。,Content Provider,存在的目的向其他应用程序共享数据和允许其他应用程序对数据进行增、删、改操作。,Android,系统本身提供了很多,Content Provider,,例如,音频、视频、联系人信息等等。我们可以通过这些,Content Provider,获得相关信息的列表。这些列表数据将以,Cursor,对象返回。因此,从,Content Provider,返回的数据是二维表的形式。,linux,进程间通讯方法,管道,(pipe),:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。,有名管道,(named pipe),:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。,信号量,(semophore),:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种 锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。,消息队列,(message queue),:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。,信号,(sinal),:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。,共享内存,(shared memory),:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的,IPC,方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。,套接字,(socket),:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。,方式,方式三:广播(,Broadcast,),广播是一种被动跨进程通讯的方式。当某个程序向系统发送广播时,其他的应用程序只能被动地接收广播数据。这就象电台进行广播一样,听众只能被动地收听,而不能主动与电台进行沟通。,在应用程序中发送广播比较简单。只需要调用,sendBroadcast,方法即可。该方法需要一个,Intent,对象。通过,Intent,对象可以发送需要广播的数据。,先建一个,android,工程:,sendbroadcast,。在,XML,布局文件中放两个组件:,EditText,和,Button,,当单击按钮后,会弹出显示,EditText,组件中文本的对话框,关闭对话框后,会使用,sendBroadcast,方法发送消息,并将,EditText,组件的文本通过,Intent,对象发送出去。,方式四:,AIDL,服务,服务(,Service,)是,android,系统中非常重要的组件。,Service,可以脱离应用程序运行。也就是说,应用程序只起到一个启动,Service,的作用。一但,Service,被启动,就算应用程序关闭,,Service,仍然会在后台运行。,android,系统中的,Service,主要有两个作用:后台运行和跨进程通讯。后台运行就不用说了,当,Service,启动后,就可以在,Service,对象中 运行相应的业务代码,而这一切用户并不会察觉。而跨进程通讯是这一节的主题。如果想让应用程序可以跨进程通讯,就要使用我们这节讲的,AIDL,服 务,,AIDL,的全称是,Android Interface Definition Language,,也就是说,,AIDL,实际上是一种接口定义语言。通过这种语言定义接口后,,Eclipse,插件(,ODT,)会自动生成相应的,Java,代码接 口代码。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服