返回介绍

1. 简介

发布于 2024-12-23 21:29:01 字数 697 浏览 0 评论 0 收藏 0

Binder 是一种 Android 进程间通信机制,提供远程过程调用(Remote Procedure Call) 功能。我们最直接的使用是调用 Context.getSystemService() 来获取系统服务,或直接使用 AIDL 来实现多个程序(APP) 间数据交互。

Binder 是非常重要的 Android 基础组件,几乎所有的进程间通信都是使用 Binder 机制实现的。本文将结合源码展开讲述 Binder ,同时对一些重要知识点提供扩展阅读的参考。

android_binder

不管是 Android 系统服务(System services) 还是用户的应用进程(User apps),最终都会通过 binder 来实现进程间通信。上层应用首先通过 IBinder 的 transcate 方法发送命令给 libbinder, libbinder 再通过系统调用(ioctl) 发送命令到内核中的 binder 驱动,之后再由驱动完成进程间数据的交互。

我们经常使用的 Intent,Messager 数据传递也是对 Binder 更高层次的抽象和封装,最终还是会由内核中的 binder 驱动完成数据的传递。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文