Android Binder 机制

本文详细介绍了Android系统中的Binder机制,作为Android进程间通信的重要框架,Binder涉及到IPC、系统服务、设计模式等多个方面。文章从Binder简介、Android系统框架、Binder通信流程、Binder框架结构、设计模式以及Binder与内存映射mmap等方面展开,阐述了Binder如何实现不同进程间的高效安全通信,并通过实例解析了Binder的工作原理。
摘要由CSDN通过智能技术生成

前言

Binder做为Android中核心机制,对于理解Android系统是必不可少的,相信看完这篇文章大家也可以搞懂binder机制。

1、Binder简介

先理解一个概念IPC:Inter-process communication ,进程间通信,已有的进程间通信如下几种:
在这里插入图片描述
1、Files 文件系统(包括内存映射)
2、Sockets
3、Pipes 管道
4、Intents, ContentProviders, Messenger
5、Binder

Android系统中的Binder框架图如下:
在这里插入图片描述
拿Activity举例从上图可以看出来:Activity是由ActivityManager来控制的,而ActivityManager其实是通过Binder获取ActivityManagerService服务来控制Activity的,并且ActivityManager是Android系统FrameWork层的,和应用中的activity不是同一个进程。

重点

1、Binder是Android提供的一套进程间通信框架。

2、系统服务ActivityManagerService,LocationManagerService,等都是在单独进程中的,使用binder和应用进行通信。

2、Android系统框架

在这里插入图片描述
如上图,Android系统分成三层。最上层是application应用层,第二层是Framework层,第三层是native层。
由下图可知几点:

1、Android中的应用层和系统服务层不在同一个进程,系统服务在单独的进程中。

2、Android中不同应用属于不同的进程中。

Android应用和系统services运行在不同进程中是为了安全,稳定,以及内存管理的原因,但是应用和系统服务需要通信和分享数据。

优点

安全性:每个进程都单独运行的,可以保证应用层对系统层的隔离。

稳定性:如果某个进程崩溃了不会导致其他进程崩溃。

内存分配:如果某个进程以及不需要了可以从内存中移除,并且回收相应的内存。

3、Binder通信

client请求service服务,比如

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值