Android 进程间通信 (IPC) binder

 

 


和传统IPC机制相比,谷歌为什么采用Binder

我们先看下Linux中的IPC通信机制:

  • 1、传统IPC:匿名管道(PIPE)、信号(signal)、有名管道(FIFO)
  • 2、AT&T Unix:共享内存,信号量,消息队列
  • 3、BSD Unix:Socket

虽然Android继承Linux内核,但是Linux与Android通信机制是不同的。Android中有大量的C/S(Client/Server)应用方式,这就要求Android内部提供IPC方法,而如果采用Linux所支持的进程通信方式有两个问题:性能和安全性。

  • 性能:目前Linux支持的IPC包括传统的管道,System V IPC(包括消息队列/共享内存/信号量)以及socket,但是只有socket支持Client/Server的通信方式,由于socket是一套通用当初网络通信方式,其效率低下,且消耗比较大(socket建立连接过程和中断连接过程都有一定的开销),明显在手机上不适合大面积使用socket。而消息队列和管道采用"存储-转发" 方式,即数据先从发送方缓存区拷贝到内核开辟的缓存区中,然后再从内核缓存中拷贝到接收方缓存中,至少有两次拷贝过程。共享内存虽然无需拷贝,但控制复杂,难以使用。
  • 安全性:在安全性方面,Android作为一个开放式,拥有众多开发者的平台,应用程序的来源广泛,确保智能终端的安全是非常重要的。终端用户不希望从网上下载的程序在不知情的情况下偷窥隐私数据,连接无线网络,长期操作底层设备导致电池很快耗尽的情况。传统IPC没有任何安全措施,完全依赖上层协议来去报。首先传统IPC的接受方无法获取对方进程可靠的UID/PID(用户ID/进程ID),从而无法鉴别对方身份。Android为每个安装好的应用程序分配了自己的UID,故进程的UID是鉴别进程的身份的重要标志。使用传统IPC只能由用户在数据包里填入UID/PID,但这样不可靠,容易被恶意程序利用。可靠的身份标记只由IPC机制本身在内核中添加。其次传统IPC访问接入点是开放的,无法建立私有通道。比如命名管道、system V的键值,socket的ip地址或者文件名都是开放的,只要知道这些接入点的程序都可以对端建立连接,不管怎样都无法阻止恶意程序通过接收方地址获得连接。



Reference:

https://www.jianshu.com/p/b4a8be5c6300

https://www.dre.vanderbilt.edu/~schmidt/cs282/PDFs/android-binder-ipc.pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值