# Binder **Repository Path**: android-demo_1/binder ## Basic Information - **Project Name**: Binder - **Description**: Binder机制分析,以及笔记复盘 - **Primary Language**: Android - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-24 - **Last Updated**: 2023-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Binder #### 介绍 Binder机制分析,以及笔记复盘 #### 笔记 Android系统分成三层 最上层是application应用层,第二层是Framework层,第三层是native层 1、Android中的应用层和系统服务层不在同一个进程,系统服务在单独的进程中 2、Android中不同应用属于不同的进程中 Android应用和系统services运行在不同进程中是为了安全,稳定,以及内存管理的原因,但是应用和系统服务需要通信和分享数据。 binder的出现? 出身 George Hoffman当时任Be公司的工程师,他启动了一个名为OpenBinder的项目,在Be公司被ParmSource公司收购后,OpenBinder由Dinnie Hackborn继续开发,后来成为管理ParmOS6 CobaltOS的进程的基础。在Hackborn加入谷歌后,他在OpenBinder的基础上开发出了Android Binder(以下简称Binder),用来完成Android的进程通信。 Binder是什么? Binder是Android系统中的一种进程间通信(IPC)机制。它允许不同的进程在安全的环境下进行通信和数据交换。Binder的出现是为了解决Android系统中进程间通信的问题,并提供高效、可靠的通信机制。通过Binder,Android应用程序可以跨进程共享数据、调用远程服务,并实现进程间的相互调用和交互。 跨进程通讯有哪些? APP跨进程、线程通讯方式 跨进程通讯对比 Binder共享内存Socket性能拷贝数据一次无需拷贝拷贝数据两次稳定C/S构架,清晰明了Client与Server相对独立,稳定性好.实现与控制复杂。需要自行处理并发同步等问题基于C/S架构安全内核添加身份标志,即PID/UID(可靠)依赖上层协议;访问接入点开放不安全依赖上层协议;访问接入点开放不安全 Binder通讯模型 概念 Binder通讯模型是Android操作系统中的一种进程间通信机制。它基于客户端-服务端的架构,通过Binder驱动在不同进程之间传递数据和调用方法。Binder通讯模型采用了C/S(Client/Server)模式,其中服务端提供服务,客户端通过Binder机制与服务端进行通信。 在Binder通讯模型中,服务端通过Binder驱动注册自己,然后将Binder对象暴露给客户端。客户端可以通过Binder对象获取服务端提供的接口,并通过接口调用服务端的方法。在调用过程中,Binder驱动负责将客户端的请求转发给服务端,并将服务端的响应返回给客户端。 Binder通讯模型具有高效、稳定的特点。它通过共享内存的方式传递数据,避免了数据的拷贝,提高了通信的效率。同时,Binder通讯模型还支持多线程并发访问,能够满足多任务环境下的需求。 总之,Binder通讯模型是Android操作系统中一种可靠高效的进程间通信机制,它通过Binder驱动实现客户端与服务端之间的数据传递和方法调用。在Android应用开发中,合理利用Binder通讯模型可以实现不同进程之间的协作,提升应用的性能和用户体验。 内存划分 内存被操作系统划分成两块: 用户空间和内核空间,用户空间是用户程序代码运行的地方,内核空间是内核代码运行的地方。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响。 #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)