首页 > 代码库 > Android Binder
Android Binder
- Binder用于完成进程间通信,它是一种工作在Linux层面的架构,这种架构提供了服务端接口,Binder驱动,客户端接口三个模块
- 服务端,一个Binder服务端实际上就是一个Binder对象,该对象一旦创建就会启动一个线程,用于接收Binder驱动发送的消息,收到消息后会执行到Binder对象的onTransact()函数,并按照该函数的参数执行不同的服务代码,要实现一个Binder服务,必须重载onTransact()方法
- Binder驱动:任何一个Binder对象被创建时,同时会在Binder驱动中创建一个mRemote对象,该对象类型也是Binder,客户端要访问远程服务时都是通过mRemote对象
- 客户端:客户端要访问远程服务,必须获得mRemote引用,然后调用其transact()方法,Android提供了Service用于返回Binder
- ServiceManager:一个独立的进程,管理各种系统服务,其本身也是一个Service. ServiceManager所管理的所有Service都是以响应的Manager返回给客户端,客户端一般不能直接通过Binder引用去访问具体服务,而是经过一个Manager,响应的Manager类对客户端是可见的,而远程服务类对客户端则是隐藏的,这些Manager类中都会有一个远程服务Binder的变量
Android Binder
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。