请问有哪些在安卓系统中存在的进程间通信(IPC)机制?
据我所知包括:
- 意图(Intents)
- 绑定器(Binders)
请问有哪些在安卓系统中存在的进程间通信(IPC)机制?
据我所知包括:
Android 中有三种 IPC 机制:
IPC
表示进程间通信
,即两个应用程序或进程之间通过传递一些数据来进行通信。由于Android是针对嵌入式和小型设备的,因此我们不应该使用序列化
来进行IPC
,而应该使用内部使用parcel
的BINDERs
。 Parcel
是一种利用共享内存概念的轻量级序列化方式。
Binder IPC与序列化IPC之间存在许多差异:
1. 在嵌入式设备中使用序列化非常耗费资源,通讯速度会很慢。Binders
使用的内存较少,而且由于使用了 parcels,所以速度相当快。而序列化
非常耗费资源,发送和接收数据需要时间,而且与 binders 相比,序列化需要更多的内存。
注意: 为了在活动、服务和接收器之间传递数据,请仅使用Bundles
。不要选择序列化或 binders。Binders 专门用于 binder 服务,两个进程将进行通信。如Android开发者页面上所述,Android中的IPC机制包括:
IPC机制有三种类型:
在Android中,树形特定的进程间通信方式有如下几种:
另一个对我起作用的解决方案是使用内部文件:
https://developer.android.com/training/data-storage#filesInternal
从一个进程写入,关闭文件,从另一个进程读取。
通用机制
是通过什么方式实现的呢?(期望得到类似于内核系统调用、Dalvik中找到的Java扩展等内容) - n611x007