返回信息流RT,一直以来看面经都发现Binder机制是一个问的比较多的面试题。自己也对这方面的知识结合博客和《Android开发艺术探索》进行了学习,突然想到如果真在面试中问到了这个问题该如何回答,我先贴一下我的想法,请各位大神指教,多谢!
Binder机制是Android中的一种IPC通信机制。它的设计是基于C/S结构,其中一个进程作为Server端,提供服务;多个进程作为Client端,借助Binder与Server端完成通信获取服务。Binder可以看成是Server端提供的某个特定服务的访问接入点,Client通过这个接入点来获取该服务。Binder的实体对象位于Server端,该对象的引用位于Client端,Client通过Binder引用来访问Server。通信过程中,ServiceManager首先将字符型的Binder名字转换为Binder对象的引然后Client向Server端发起一个远程服务请求并将当前线程挂起(远程方法一般比较耗时,所以需要在非UI线程中发起请求),Server端的Binder实体对象将参数传入对应服务中,并在线程池中运行服务,得到结果后将结果返回给Client并唤醒挂起的线程完成进程间通信。
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #31619同步于 2016/8/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
[讨论][问题]求教如何在面试中回答Binder机制
siguoyicl
2016/8/8镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
你说的有点像书上说的感觉,但是我觉得可能还是没有答到面试官想问你的内容。其实看下源码会更好理解,特别是c++层的。我看了罗升阳的Android进程间通信,也还是没理解它到底怎么通信,愧于c++和linux底层知识的欠缺。Binder的这种Proxy模式在Android中用的地方太多了,个人觉得还需要多熟悉几遍,自己编写一个aidl尝试远程调用,理解原理。最后附上他的博客 http://blog.csdn.net/luoshengyang/article/details/6618363
多谢指点,我写的那点基本上就是对书上和博客的一些总结
【 在 lixing 的大作中提到: 】
: 你说的有点像书上说的感觉,但是我觉得可能还是没有答到面试官想问你的内容。其实看下源码会更好理解,特别是c++层的。我看了罗升阳的Android进程间通信,也还是没理解它到底怎么通信,愧于c++和linux底层知识的欠缺。Binder的这种Proxy模式在Android中用的地方太多了,个人觉得还需要多熟悉几遍,自己编写一个aidl尝试远程调用,理解原理。最后附上他的博客 http://blog.csdn.net/luoshengyang/article/details/6618363