首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Binder 简述
📅 2026/10/30 1:39:19
✍️ 爱科研究院
👁 阅读 3,247
BinderBinder使用ClientServer(c/s架构)通信方式。Binder框架定义了四个角色Server,Client,ServiceManager以及Binder驱动。其中Server,Client,ServiceManager运行于用户空间驱动运行于内核空间。ServiceManager负责把Binder Server注册到一个容器中。通过代理对象通信Binder代理对象 Binder引用对象 Binder实体对象 Binder本地对象AIDLAndroid Interface Definition Language Android接口定义语言Android提供的一种Binder实现。线程池主线程是由 Zygote母体生成的线程池首次创建第一个Binder线程A然后监听BR_SPAWN_LOOPER事件收到后创建第二个Binder线程B线程B继续监听BR_SPAWN_LOOPER事件收到后创建第三个Binder线程C。总共创建3个Bindr线程这是Binder协议决定。根据系统处理器数目以及应用程序的负载强度线程池的线程数目可以动态调整这是Binder优化需要考虑的。Service Manager是整个Binder通信机制的大管家是Android进程间通信机制Binder的守护进程管理Binder机制Client端和Server端通信时都需要先获取Service Manager接口才能开始通信服务。所有系统服务都需要在ServiceManager类中进行注册服务注册、获取和访问过程通信BpBinder发送端根据handler在当前binder_proc中找到相应的binder_ref由binder_ref再找到目标binder_node实体由目标binder_node再找到目标进程binder_proc销毁在应用进程创建的过程中有一个attachApplicationLocked方法的过程中便会创建死亡通知。当binder服务端挂了之后便会通过binder的DeathRecipient来通知AMS进行相应的清理收尾工作。当该进程会杀则会回调到binderDied()方法。Crash进程中拥有一个Binder服务端ApplicationThread而应用进程在创建过程调用attachApplicationLocked()从而attach到system_server进程在system_server进程内有一个ApplicationThreadProxy这是相对应的Binder客户端当Binder服务端ApplicationThread所在进程(即Crash进程)挂掉后则Binder客户端能收到相应的死亡通知从而进入binderDied流程。进程异常退出的时候内核保证会释放未正常关闭的它打开的/dev/binder文件即调用与/dev/binder文件所关联的release回调函数进而执行清理工作BBinder死亡通知机制Client进程从Binder驱动获得一个BpBinderClient进程向Binder驱动注册一个死亡通知该死亡通知与上述BpBinder所引用的BBinder相关联Binder驱动监控到BBinder所在进程异常退出的时候检查该BBinder是否注册有死亡通知Binder驱动向注册的死亡通知所关联的BpBinder所运行在的Client进程发送通知Client进程执行相应的清理工作
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/30 1:39:19
JSON转Sketch文件:原理、实践与避坑指南
2026/10/30 1:34:19
130亿参数挑战千亿级性能:腾讯Hunyuan-A13B如何改写大模型游戏规则?
2026/10/30 1:34:19
一眼看穿它为什么不答:dsh-purge 怎么做 DeepSeek Harness 安全评测
2026/10/30 3:39:56
免费HTML模板怎么挑怎么改:从授权到上线的避坑指南
2026/10/30 3:39:56
多模态大语言模型偏好对齐数据集构建与应用实践
2026/10/30 3:39:56
pdf.js交互插件:打造可搜索、可缩放、可打印的生产级PDF工作台
2026/10/30 3:39:56
免费HTML模板与CSS样式改造指南:选型、减负与授权合规
2026/10/30 3:39:56
GKV通用键值配置服务常见问题排查与性能调优实践
2026/10/30 3:34:56
大模型在新闻推荐系统中的应用与优化实践
2026/10/30 0:03:44
OpenShell 完全定制指南:从安装到深度配置,打造高效 Windows 开始菜单
2026/10/30 0:03:44
Superpowers技能体系全解析:从Skills引入到安装的完整指南
2026/10/30 0:03:44
TensorFlow实现Weibull生存模型预测债券违约概率
2026/10/29 21:03:42
全国计算机二级C语言真题PDF高效刷题指南
2026/10/29 21:03:35
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/29 21:03:28
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/28 15:37:16
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/28 15:37:15
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/28 15:37:15
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)