美文网首页
IPC 原理

IPC 原理

作者: chelFang | 来源:发表于2016-08-31 15:05 被阅读0次

http://blog.csdn.net/luoshengyang/article/details/664246

Binder的总体架构,它由Client、Server、Service Manager和驱动程序Binder四个组件构成。本文着重介绍组件Service Manager,它是整个Binder机制的守护进程,用来管理开发者创建的各种Server,并且向Client提供查询Server远程接口的功能

Android系统进程间通信Binder机制在应用程序框架层的Java接口:

1. 获取Service Manager的Java远程接口的过程;

2. HelloService接口的定义;

3. HelloService的启动过程;

4. Client获取HelloService的Java远程接口的过程;

5.  Client通过HelloService的Java远程接口来使用HelloService提供的服务的过程。

1:

sServiceManager =newServiceManagerProxy(newBinderProxy());

总结一下,就是在Java层,我们拥有了一个Service Manager远程接口实现类ServiceManagerProxy,而这个ServiceManagerProxy对象在JNI层有一个句柄值为0的BpBinder对象与之通过gBinderProxyOffsets关联起来。

2:

定义aidl,生成Java 根据IHelloService接口的定义生成相应的Stub和Proxy类,这个就是我们熟悉的Binder机制的内容了,即实现这个HelloService的Server必须继续于这里的IHelloService.Stub类,而这个HelloService的远程接口就是这里的IHelloService.Stub.Proxy对象获得的IHelloService接口

Stub extends android.os.Binder ;  Proxy implements android.os.IHelloService

3:

HelloService extends   IHelloService.Stub

在frameworks/base/services/java/com/android/server/SystemServer.java文件中,定义了SystemServer类。SystemServer对象是在系统启动的时候创建的,它被创建的时候会启动一个线程来创建HelloService,并且把它添加到Service Manager中去。

会调用HelloService类的构造函数,而HelloService类继承于IHelloService.Stub类,IHelloService.Stub类又继承了Binder类,因此,最后会调用Binder类的构造函数

>一系列JNI

最后,通过BpBinder::transact函数进入到Binder驱动程序,然后Binder驱动程序唤醒Service Manager响应这个ADD_SERVICE_TRANSACTION请求

4:

return IHelloService.Stub.asInterface(ServiceManager.getService("hello"));,实际上是一个IHelloService.Stub.Proxy对象

相关文章

  • Android Binder 机制学习3 - Binder IP

    了解了 Linux IPC 相关的概念和通信原理, 下面正式介绍下 Binder IPC 的原理.(如有侵权, 请...

  • IPC 原理

    http://blog.csdn.net/luoshengyang/article/details/664246 ...

  • IPC原理

    https://mp.weixin.qq.com/s/ZI3WIUbCUgcajjwzXBHihQ

  • Binder机制原理

    1.Binder IPC 实现原理 【内存映射】

  • Android IPC机制详解(一)

    本文主要从以下几个方面来介绍IPC机制1、什么是IPC2、Binder机制原理3、AIDL实现 一、什么是IPC ...

  • Binder机制

    进程间通信方式 Android Binder框架图 Android系统框架 IPC 进程通信原理 Binder原理...

  • Android跨进程通信IPC之22--Messenger

    移步系列Android跨进程通信IPC系列 1 概述 Messenger是一种轻量级的IPC方案,其底层实现原理就...

  • Binder进程间通信-JAVA层

    进程间通信基本原理 进程间通信原理 Binder是什么? IPC(Inter-Process Communicat...

  • Android 知识框架

    IPC机制,Binder和匿名共享内存等 四大组件启动,工作原理 View系统,绘制原理,事件分发 动画框架,原理...

  • AIDL - 简介

    本文仅作为 AIDL 的初步了解与具体代码实现的讲解。并未深入IPC原理、Binder原理等。 一、概述 AIDL...

网友评论

      本文标题:IPC 原理

      本文链接:https://www.haomeiwen.com/subject/mcyqettx.html