虽然网上有大牛们从MediaManagerService来分析binder机制,但是对于一个初学者来说,门槛有点高,转来撞去撞晕了。 从操作系统原理中可以知道进程通信就那么几种,目前从网上了解到binder属于操作系统中提及的内存共享的方式,之所以以驱动的方式来实现是因为驱动程序运行在1G的内核空间,可以实现跨进程通信。
欢迎大牛们跟帖,对于初学者或刚入门的来说,原理比什么代码分析更为重要。谢谢你们无私的贡献。
欢迎大牛们跟帖,对于初学者或刚入门的来说,原理比什么代码分析更为重要。谢谢你们无私的贡献。
懂binder机制的人很多,但是不是每个人都接触MediaManagerService
那有劳你给大家分析一下吧 我对MediaManagerService了解不多
我基本能记起来的就是类似于一个client,一个server
client发送一条信息给server,比如执行哪个函数,参数是神马
server回一个执行结果
当然client跟server在不同的linux进程中
为了加快执行速度,binder的driver会开辟一块内存供这两个进程用
说白了还是linux进程通信的一种机制
从底层看,android上的应用也是一个一个的linux进程
最近用到RPC,看到两篇文章,地址贴出来有兴趣的可以去看下。Android深入浅出之Binder机制
http://www.cnblogs.com/innost/archive/2011/01/09/1931456.html
Android Bander设计与实现 - 设计篇
http://note.sdo.com/u/1454652138/n/mJ3HG~jCnvHgLX03w000rt
写个接口 继承 IInterface
然后再写 Bn和Bp类
还有declare和 impl的宏定义
感觉就像配置spring。
不过系统的结构复杂继承太多就难看了。