1.为什么使用Binder
Android使用的Linux内核拥有着非常多的跨进程通信机制(管道、Socket等),Binder有两大优点
1)性能 (Binder相对于传统方式更加高效。Binder数据拷贝只需要一次,而管道、消息队列、Socket都需要2次,内存共享方式不需要内存拷贝,但是实现难度高,较为复杂。)
2)安全性(支持通信双方进行身份校验)
2.Binder通信模型
Binder的C/S架构:在Android开机启动过程中,Android会初始化系统的各种Service,并将这些Service向ServiceManager注册(即让ServiceManager管理)。客户端想要得到具体的Service直接向ServiceManager要即可。客户端首先向ServiceManager查询得到具体的Service引用,然后通过这个引用向具体的服务端发送请求,服务端执行完成后就返回。
3.什么是Binder
1)通常意义下,Binder指的是一种通信机制
2)对于Server进程来说,Binder指的是Binder本地对象,对于Client来说,Binder指的是Binder代理对象。
3)对于传输过程而言,Binder是可以进行跨进程传递的对象。
实例:AIDL