谁能告诉我Android中存在的所有IPC机制是什么。
据我所知是:
- 意图
- 粘合剂
Android中的IPC机制分为三种:
这篇文章中的所有答案都很好且简洁。但我想说明我们应该使用哪种 IPC 机制。首先IPC
意味着Inter Process communication
两个应用程序或进程将通过在它们之间传递一些数据来相互通信。由于 android 适用于嵌入式和小型设备,我们不应该使用serialization
for IPC
,而是可以使用BINDERs
which 在内部使用parcels
. Parcel
是一种使用共享内存概念的轻量级序列化。
Binder IPC和Serialization IPC有很多区别:
1.序列化在嵌入式设备中使用非常繁重,通信会很慢。
2. Binders 使用 Parcels 使 IPC 非常快。
3. Binder 内部使用共享内存概念,在两个进程之间共享数据时使用更少的内存。
底线: Binders
使用更少的内存,并且使用包裹非常快。Serialization
非常重,发送和接收数据需要时间,并且与活页夹相比需要更多的内存。
注意:要在活动、服务和接收者之间传递数据,只能使用Bundles。不要选择序列化或活页夹。Binder 专门用于 2 个进程将进行通信的 Binder 服务。
希望这可以帮助 :)
正如Android Developers page所写, Android中的 IPC 机制包括:
IPC 机制分为三种类型:
Android 中特定于树的进程间通信是:
另一个对我有用的解决方案是使用内部文件:
https://developer.android.com/training/data-storage#filesInternal
从一个进程写入,关闭文件,从另一个进程读取。