AIDL
文章平均质量分 93
工程师阿杜
拓荒人
展开
-
两种AIDL用法分析(原)
我们在前面介绍了关于AIDL的两种用法,第一种用法主要用在应用层中,第二种用法主要用在framework中。但是这两种用法中都提到了Stub、asInterface等关键字,在这一节中我们主要针对AIDL内部机制的分析来深入理解AIDL调用的过程。 为了便于分析,我们还拿第一节中我们自己搭建的例子去分析。 当时我们在Eclipse Android工程的Java包原创 2013-09-27 10:11:19 · 18502 阅读 · 2 评论 -
应用层的AIDL用法(原)
一、什么是AIDL服务 一般创建的服务并不能被其他的应用程序访问。为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。因此,可以将这原创 2013-07-09 19:42:35 · 9345 阅读 · 3 评论 -
Framework中的AIDL(原)
这一节中,我们来看一下系统中更为普通的AIDL用法。 为了便于分析,我们挑选了ITelephonyRegistry这个SystemService进行分析。这个服务的主要作用就是对通话相关的事件进行监听,我们把重心放在AIDL的实现结构上,不去关注ITelephonyRegistry具体的实现。一、AIDL文件相关 先来看一下这个服务的AIDL文件:原创 2013-09-27 09:59:11 · 6866 阅读 · 5 评论 -
Binder源码分析之ServiceManager(原)
ServiceManager作为Native层Service的管理员,有着极其重要的作用,主要表现两个方面: 1、对于服务端来说,系统所有的服务提供者都需要向ServiceManager注册。 2、对于客户端来说,所有客户端如果想要获得某个系统服务的代理,必须向ServiceManager申请相应的服务端代理。 下面从源码分析ServiceMa原创 2014-02-24 20:12:34 · 5545 阅读 · 1 评论 -
Binder源码分析之Native层(原)
前面两节中介绍了Binder机制中的ServiceManager和Binder驱动,在这一节中,我们来介绍Native中的Binder通讯。 为了更好的理解过程,我们挑选Native中的MediaServer进行分析。 一、MediaServer加载过程 Android启动过程中会去执行init.rc脚本,在这个脚本中将会启动一些关键的系统服务,其中之原创 2014-03-10 15:31:37 · 7437 阅读 · 7 评论 -
Binder源码分析之驱动层(原)
前言 在《Binder源码分析之ServiceManager》一文中我们介绍了利用Binder进行通讯的流程,即ServiceManager把自己注册为“管理员”之后,负责其他Service的add操作,或者其他Client的get操作。在这个过程中,有一些接口我们并没有深入分析,比如: 1、打开Binder open("/dev/binder",原创 2014-03-04 19:30:50 · 8711 阅读 · 3 评论 -
Binder源码分析之Java层(原)
前面的几节中我们介绍了Native层Binder通讯的原理和用法,那么在Java层如何使用Binder通讯呢?其原理又与Native层的Binder有什么关系呢? 与Native层的ServiceManager类似,Android在Java层也有一个ServiceManager用于处理Java层Service的注册、申请。只不过,Java层的这个ServiceManager,其实原创 2014-03-11 14:38:51 · 3798 阅读 · 1 评论