关闭

Binder源码分析之Java层(原)

前面的几节中我们介绍了Native层Binder通讯的原理和用法,那么在Java层如何使用Binder通讯呢?其原理又与Native层的Binder有什么关系呢?         与Native层的ServiceManager类似,Android在Java层也有一个ServiceManager用于处理Java层Service的注册、申请。只不过,Java层的这个ServiceManager,其实...
阅读(2434) 评论(1)

Binder源码分析之Native层(原)

前面两节中介绍了Binder机制中的ServiceManager和Binder驱动,在这一节中,我们来介绍Native中的Binder通讯。         为了更好的理解过程,我们挑选Native中的MediaServer进行分析。     一、MediaServer加载过程         Android启动过程中会去执行init.rc脚本,在这个脚本中将会启动一些关键的系统服务,其中之...
阅读(5464) 评论(6)

Binder源码分析之驱动层(原)

前言         在《Binder源码分析之ServiceManager》一文中我们介绍了利用Binder进行通讯的流程,即ServiceManager把自己注册为“管理员”之后,负责其他Service的add操作,或者其他Client的get操作。在这个过程中,有一些接口我们并没有深入分析,比如:         1、打开Binder open("/dev/binder",...
阅读(3841) 评论(2)

Binder源码分析之ServiceManager(原)

ServiceManager作为Native层Service的管理员,有着极其重要的作用,主要表现两个方面:         1、对于服务端来说,系统所有的服务提供者都需要向ServiceManager注册。         2、对于客户端来说,所有客户端如果想要获得某个系统服务的代理,必须向ServiceManager申请相应的服务端代理。         下面从源码分析ServiceMa...
阅读(3409) 评论(0)

两种AIDL用法分析(原)

我们在前面介绍了关于AIDL的两种用法,第一种用法主要用在应用层中,第二种用法主要用在framework中。但是这两种用法中都提到了Stub、asInterface等关键字,在这一节中我们主要针对AIDL内部机制的分析来深入理解AIDL调用的过程。         为了便于分析,我们还拿第一节中我们自己搭建的例子去分析。         当时我们在Eclipse Android工程的Java包...
阅读(12230) 评论(1)

Framework中的AIDL(原)

这一节中,我们来看一下系统中更为普通的AIDL用法。         为了便于分析,我们挑选了ITelephonyRegistry这个SystemService进行分析。这个服务的主要作用就是对通话相关的事件进行监听,我们把重心放在AIDL的实现结构上,不去关注ITelephonyRegistry具体的实现。 一、AIDL文件相关         先来看一下这个服务的AIDL文件:...
阅读(4597) 评论(3)

应用层的AIDL用法(原)

一、什么是AIDL服务   一般创建的服务并不能被其他的应用程序访问。为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。因此,可以将这...
阅读(7665) 评论(4)
    个人资料
    • 访问:282446次
    • 积分:3353
    • 等级:
    • 排名:第10005名
    • 原创:63篇
    • 转载:0篇
    • 译文:0篇
    • 评论:103条
    最新评论