前言
在平时的开发中,我们不免会遇到跨进程的通信,平时使用系统提供的诸如ActivityServiceManager这些系统服务,其实就是使用了跨进程的调用,那么跨进程的调用,需要解决的就是进程间的通信问题,Android系统为我们提供了Binder机制,利用Binder机制,我们可以自由地实现进程间的通信,下面我们一起看看Binder机制的相关原理。
正文
认识Binder
首先,我们先认识一下Binder是什么,有什么作用,相比其他的进程间通信方式有什么优点。
1.Binder是什么
Binder是一种进程间通信的机制,在Android系统中,进程间的通信,它们的底层基本都是用到了Binder的IPC机制,比如我们进程1的Activity要使用进程2中Service的某个能力,则需要用到Binder机制来进行进程间的通信,包括平时我们使用的系统提供的一些Service如AMS、IMS等等,都是用到了Binder在底层作为支撑。
2.Binder的优势
我们知道在系统中其实有很多种IPC的方式,如Socket、消息队列和内存共享等,Android还提供了Binder机制,相信会有其独特的优点:
-
性能:在移动设备上,由于性能受到各方面的限制,例如电量,所以在使用进程间通信时,需要对性能这块有很大的要求。Socket、消息队列这些,在进程间通信时,数据拷贝需要两次,而内存共享只需拷贝无需拷贝