d01_c_认识android核心服务_ok_W_第1页
d01_c_认识android核心服务_ok_W_第2页
d01_c_认识android核心服务_ok_W_第3页
d01_c_认识android核心服务_ok_W_第4页
d01_c_认识android核心服务_ok_W_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、D01_c基於軟硬整合觀點认识Android核心服务( c)By 高煥堂基於軟硬整合觀點7、天一号的核心服务: ServiceManager 天 一号的核心服务就是ServiceManager(简称SM)。当Android系统启动时,就会优先将之登记到Binder Driver里,如下图:ServiceManagerBD 随后,陆续会有更多的核心服务呼叫SM的addService()函数去登录到BD里。例如, ActivityManagerService也是透过SM而登录到BD里。再如,MediaPlayerService也继续透过SM去登录到BD里,如下图:MediaPlayerServic

2、eActivityManagerServiceServiceManagerBDOpenCode 当Android系统启动完成(主要核心服务也启动完成)之后,就可以启动及执行应用程序了。 执行应用程序时,各App服务(亦即Service 的子类)都由ActivityManagerService来掌管。 例如,App里的myActivity等类别可以使用bindService()来绑定(Bind)到myService服务,然后透过IBinder接口而远程呼叫到myService。之后,myService再透过JNI 而呼叫到MediaPlayerService,进而呼叫到更底层的驱动模块。mySe

3、rvice.javaService.java(SDK-based 服務)JNIMediaPlayer.javaMediaPlayerServiceMediaPlayer.cpp(核心服務)OpenCodeBinder DriverService.javamyService.javaVMSystem ServerIBinderZygoteZygoteVMServiceManagerMediaPlayerServiceSurfaceFlingerRuntimeInit進程(讀取init.rc)MediaServerLinux Kernel + Drivers + HW基於軟硬整合觀點8、核心服务的

4、共通API: IBinder接口myActivity.javaActivity.javaRuntimeInit進程(讀取init.rc)MediaServerSurfaceFlingerSystem Server ServiceManagerIBinderZygoteZygoteServiceManagerVMLinux Kernel + Drivers + HW 就以ServiceManager(简称SM)为例子,由于SM跑在自己的进程里,为了让别的模块可以来呼叫它的服务,它必需提供共通的IBinder接口,才能让其它进程里的模块来进行IPC沟通。如下图:IPC進程(Process)進程(Process)JNIC+ ClientIBinderServiceManagerBinder DriverLinux KernelHAL 此刻,如果另一个进程里的C+ Client想与SM互动时,就会透过更底层的ProcesState服务在自己的进程里,诞生一个BpBinder对象,作为BinderDriver的分身(即Proxy对象)。 让C+ Client能透过BpBinder而与Binder Driver互动,进而跨进程地与SM沟通,所以BpBinder也间接地扮演SM的分身的角色。如下图所示:IPC進程(Process)進程(Process)JNIC+ Clienttransact

温馨提示

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

评论

0/150

提交评论