虽然网上有大牛们从MediaManagerService来分析binder机制,但是对于一个初学者来说,门槛有点高,转来撞去撞晕了。  从操作系统原理中可以知道进程通信就那么几种,目前从网上了解到binder属于操作系统中提及的内存共享的方式,之所以以驱动的方式来实现是因为驱动程序运行在1G的内核空间,可以实现跨进程通信。
  欢迎大牛们跟帖,对于初学者或刚入门的来说,原理比什么代码分析更为重要。谢谢你们无私的贡献。

解决方案 »

  1.   

    一定要从MediaManagerService来分析binder机制么 ? 
    懂binder机制的人很多,但是不是每个人都接触MediaManagerService
      

  2.   

    如果只是应用binder不难,分析源码的话需要点时间
      

  3.   

    MediaPlayerService去掉camera,audio,record之类的东西,剩下的代码比较少,而且这里binder是双向的,比较典型,用来分析binder是个不错的选择。还有其他比较好的例子吗?
      

  4.   


    那有劳你给大家分析一下吧 我对MediaManagerService了解不多
      

  5.   

    binder是android里面比较难分析的一个机制,之前看过,现在也忘得差不多了
    我基本能记起来的就是类似于一个client,一个server
    client发送一条信息给server,比如执行哪个函数,参数是神马
    server回一个执行结果
    当然client跟server在不同的linux进程中
    为了加快执行速度,binder的driver会开辟一块内存供这两个进程用
    说白了还是linux进程通信的一种机制
    从底层看,android上的应用也是一个一个的linux进程
      

  6.   


    最近用到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
      

  7.   

    有空会写个总结贴出来,不过我觉得csdn上已经有很多大牛分析的很好了
      

  8.   

    binder的机制都是驱动层实现的会用就行(大部分工作需要都是去看系统的binder) 
    写个接口 继承 IInterface
    然后再写 Bn和Bp类
    还有declare和 impl的宏定义
    感觉就像配置spring。
    不过系统的结构复杂继承太多就难看了。