Android Binder - eLinux.org

主要观点:Binder 是 Android 特有的进程间通信机制和远程方法调用系统,一个 Android 进程可通过 binder 调用另一个 Android 进程的例程,传递要调用的方法和参数。Android 不用 SysV IPC 进行进程间通信,其实现位于内核源代码 drivers/android/binder.c 及 include/uapi/linux/android/binder.h 中。
关键信息

  • 提供资源:包括多个关于 Binder 的文档链接,如 http://www.angryredplanet.com... 等,还有相关的演示文稿和论文。
  • 回答问题:解释了 Binder 需在内核中实现的原因,如避免复制、管理远程对象生命周期等;介绍了 Android 中 Binder 的使用方式,涵盖窗口管理器、活动管理器等多个方面;提及 mainlining 反馈,包括对 Binder 在内核中做太多事、使用 char 设备等的讨论;阐述了与 kdbus 的关系。
  • 历史:最初源于 BeOS,Linux 版本由 PalmSource 项目派生而来,Dianne Hackborn 是其架构师之一。
    重要细节
  • 在 Android 中,Binder 用于核心平台的几乎所有跨进程通信,如窗口管理器与客户端、表面合成器等的通信,活动管理器管理组件等,还支持单向和双向调用,有“链接到死亡”等设施。
  • mainlining 反馈中,开发者对 Binder 的实现方式提出了多种看法和建议,如将部分功能移至用户空间、采用不同的 IPC 方式等。
  • 与 kdbus 的关系方面,Greg Kroah-Hartman 指出 kdbus 与 Binder 不完全相同。
阅读 7
0 条评论