首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android进阶必备:跨进程通讯机制

对象和Binder驱动 Java层的Binder AIDL 服务端 客户端 分析原理 AMS的Binder体系 结语 0 前言 Binder机制是Android系统提供的跨进程通讯机制,这篇文章开始会从Linux...相关的基础概念知识开始介绍,从基础概念知识中引出Binder机制,归纳Binder机制与Linux系统的跨进程机制的优缺点,接着分析Binder的通信模型和原理,而Binder机制最佳体现就是AIDL,...的某些机制,主要想表达Binder驱动的出现的原因,如果对Linux熟悉的可以直接跳过这部分,看第五点即可 一、进程隔离 出于安全考虑,一个进程不能操作另一个进程的数据,进而一个操作系统必须具备进程隔离这个特性...Linux的动态可加载内核模块机制解决了这个问题,模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。...; Proxy(android.os.IBinder remote) { mRemote = remote;

57330
您找到你想要的搜索结果了吗?
是的
没有找到

Android开发之漫漫长途 Ⅷ——Android Binder(也许是最容易理解的)

我们都知道Android是基于Linux内核的,那我们简单介绍下Linux下的几种IPC机制。 管道(Pipe) 管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。...而在linux通信机制中,目前只有socket支持C/S的通信模式,但socket有其劣势,具体参看第二条。 有更好的传输性能。...Linux的IPC机制在本身的实现中,并没有安全措施,得依赖上层协议来进行安全控制。...而Binder机制的UID/PID是由Binder机制本身在内核空间添加身份标识,安全性高;并且Binder可以建立私有通道,这是linux的通信机制所无法实现的(Linux访问的接入点是开放的)。...函数,这里的mRemote是BinderProxy类,关于这一点我们在Native层分析的时候再给出 mRemote.transact(START_ACTIVITY_TRANSACTION

53710

Android高频面试专题 - 进阶篇(三)Binder机制

1、Linux内核基础知识 进程隔离/虚拟地址空间 为保证操作系统不同进程间数据互不干扰,进程直接是相互隔离的,这样即使A进程发生崩溃,B进程也不会受到影响。...传统的 Linux有很多通信机制,但是 Binder 并不是 Linux 内核的一部分,它是怎么做到访问内核空间的呢?...Linux 的动态可加载内核模块(Loadable Kernel Module,LKM)机制解决了这个问题;模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。...3、为什么Android使用Binder机制 Linux 本身就支持很多通信机制,比如 Socket,管道,共享内存。...其实在Proxy的构造方法中,传入了一个IBinder对象,保存为成员变量mRemote,这里的add实现,其实是调用了mRemote的transact方法,将请求发送到了真正的服务端来实现,那么Proxy

90730
领券