Dww-s-Blog-3d43ef1bf6e6402db0f7da955d7bd9e6

Binder 开发技术周报.

 
Binder 是为了给Android 提供一套安全、稳定、高效的跨进程通信系统,其在上层应用层表现有Activity、Service等等组件. 以及常见的AIDL等NB架构. 都与该套系统有着紧密相关的事项.
  • 高效:Binder 的高效来源于与其他跨进程对比如:管道、信号、消息队列等。 (除共享内存) 它只需要一次内存copy即可完成进程间数据同步. (mmap机制)
  • 稳定:在高效这块会弱于共享内存,因为共享内存其实连一次copy其实都没有。但是要在错综复杂的Andorid 系统中构建这套系统,需要考虑诸多问题。 如: 进程间读写同步问题,权限控制等等问题. 显然对比“共享内存”这个技术方案下,它是极其稳定的。 (那么他又能提供什么东西呢?? )
  • 安全:Binder有着一套严格的 权限控制体系,同时他的安全管理是源于系统层本身。 对上层应用开发者视角是无从感知的。
  • 其他选择的原因:
    • Andorid 的作者:Andy Rubin 它原本团队其实就是Binder 的创造者. (ps : 基于openBinder 框架)
    • 因为Linux Kernel 是遵循GPL协议,如要改动底层代码必须要将其开源并获得Linux Kernel团队的许可. 从而结合以上,Android 创造出了。
    •  
其如果按这个样子来说的话,其实根本不太需要进行Binder 的建设。我们至需要与thread_j
其难点也是在Binder 驱动中。