Android Binder 学习
Android Binder
Android 作为多进程操作系统,每个功能模块都是一个独立的进程,特别是 hal 层将底层硬件隔离开,进程通信会频繁的发生,为了更好的在进程间通信,Android 开发了 Binder 模块专门用于解决该问题。
前置知识介绍
进程执行过程
Linux 下进程通信方式
Binder 概述
Android Binder 是采用 C/S 框架,一个 ServiceManager 作为服务的管理者,保存所有注册的服务进程,需要调用服务的客户进程在使用时前来查询对应的服务接口并完成调用。其中注册,查询,调用其他进程的服务都是通过 Bidner 驱动支持完成。
所以 Android Binder 分为 4 大模块
- ServiceManager 管理服务
- Server 注册服务进程提供的服务接口
- Client 端的查询并调用 Server 提供的服务
- Binder 驱动模块以内核形式对进程间通信提供支持
Binder 案例讲解
- ServiceManager 启动在内核中注册为第一个服务进程
- hal 层服务进程注册到 ServiceManager
- frameworks 层作为客户端查询并使用 hal 层服务进程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)