一.Linux内核的基础知识
1.进程隔离/虚拟地址空间.
进程隔离: 避免进程间的干扰,防止进程A访问进程B的情况。采用的虚拟地址空间来运行进程.
在android中如果要访问不同进程,那么就需要用Binder来进行访问.
2.系统调用
应用程序通过系统调用访问内核空间.
3.Binder驱动
运行在内核空间中,负责各个用户进程通过Binder通信的内核来进行交互的一个模块.
二.Binder通信机制介绍
1.为什么使用Binder
a.Android使用的Linux内核拥有非常多的跨进程通信机制
b.性能
c. 安全.
2.Binder通信模型
a.通信录:Binder驱动
b.电话基站:service manager
1.首先有一个进程要申请成为service manager.负责管理各电话号码.
2.各service启动的时候向service manager进行报告,注册自己的电话号码(service的地址)
自此service manager拥有了各同学的电话号码(service的地址)
3.如果Client同学想和Server2同学进行通信,那么首先client同学要去service manager那里去查询server2的地址,拿到地址后就可以通过Binder和server2同学进行通信了.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
什么是Binder:
是一种跨进程的通信机制.
对于server进程来说Binder指的是Binder的本地对象.对于client来说,Binder指的是Binder的代理对象.
对传输过程而言,Binder是可以进行跨进程传递的对象
=======================================================================================================
AIDL:Binder的实例