目录
相关文章:
Binder学习指南(文章8:讲得清晰明白,就是根据这篇文章终于了解了binder机制)
Android Bander设计与实现 - 设计篇(文章1:阅读量12w,211赞,全面)
一篇文章了解相见恨晚的 Android Binder 进程间通讯机制(文章2:阅读量5w,76赞,全面)
写给 Android 应用工程师的 Binder 原理剖析(文章7:由浅入深很详细,有代码实例)
BAT大咖助力Android面试6-Binder面试详解(文章3:阅读量不多,详细,有代码实例)
Android面试题(二)——IPC机制(文章4:阅读量4568,全面)
android面试(6)-Binder机制(文章5:阅读量2533,)
如何在android面试中说清楚android中binder机制的实现过程(文章6:阅读量1217,很详细)
一、Linux内核的基础知识
1、进程隔离 / 虚拟地址空间
为了保证 安全性 & 独立性,一个进程不能直接操作或者访问另一个进程,即Android的进程是相互独立、隔离的。
2、系统调用(用户空间和内核空间)
- 进程间,用户空间的数据不可共享,所以用户空间 = 不可共享空间
- 进程间,内核空间的数据可共享,所以内核空间 = 可共享空间
- 所有进程共用1个内核空间
进程内 用户空间 & 内核空间 进行交互 需通过 系统调用,主要通过函数:
copy_from_user():将用户空间的数据拷贝到内核空间
copy_to_user():将内核空间的数据拷贝到用户空间
3、binder驱动连接进程
二、Binder通信机制介绍
1、为什么使用binder
(1)Android使用的Linux内核拥有着非常多的跨进程通信机制
(2)性能
(3)安全
Android Binder是用来做进程通信的,Android的各个应用以及系统服务都运行在独立的进程中,它们的通信都依赖于Binder