浅谈IPC通信之各方式对比使用及场景(四)

前边三篇已经讲解了IPC所涉及的内容,现在切入正题了......

Binder机制

androidIPC机制就是Binder机制,是提供远程过程调用(RPC)功能,在Binder机制中,由系统组件组成,分别是Client、Server、Service Manager和Binder驱动程序,其中Client、Server和Service Manager运行在用户空间,Binder驱动程序运行内核空间。Binder就是一种把这四个组件粘合在一起的粘结剂了,其中,核心组件便是Binder驱动程序了,Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力,是辅助管理的功能,Client和Server正是在Binder驱动和ServiceManager提供的基础设施上,进行Client-Server之间的通信;

IPC通信方式

1.Bundle:一般用于四大组件间的进程间通信,简单易用
2.文件共享:通过IO方式把数据写到文件里进行通信,需要注意序列化
3.AIDL:AIDL是IPC的一个轻量级实现
4.ContentProvider:ContentProvider相当于为数据存储和获取提供了一个统一的接口
5.Messenger: Messenger本质也是AIDL,只是进行了封装,开发的时候不用再写.aidl文件,所以相对于AIDL较于简单。
6.Socket:一般用来网络数据的交换

各方式对比及使用场景

浅谈IPC通信之各方式对比使用及场景(四)_第1张图片
IPC通信方式对比.png

使用方法(参考demo)

包含所有IPC通信
https://github.com/jackandroid2016/IPCDemo

你可能感兴趣的:(浅谈IPC通信之各方式对比使用及场景(四))