请问任何人请告诉我android中存在的所有IPC机制是什么。
据我所知:
1)意图,
2)粘合剂。
答案 0 :(得分:84)
IPC是进程间通信。它描述了不同类型的android组件用于彼此通信的机制。
1)Intents
是组件可以发送和接收的消息。它是在进程之间传递数据的通用机制。在意图的帮助下,人们可以开始服务或活动,调用广播接收器等等。
2)Bundles
是传递的数据实体。它类似于对象的序列化,但在android上要快得多。可以通过getExtras()
方法从意图中读取Bundle。
3)Binders
是允许活动和服务获取对另一个服务的引用的实体。它不仅可以简单地向服务发送消息,还可以直接在服务上调用方法。
答案 1 :(得分:33)
Android中有三种类型的IPC机制:
答案 2 :(得分:21)
正如Android Developers page所述,Android中的IPC机制包括:
答案 3 :(得分:15)
这篇文章中的所有答案都很简洁。但我想说明我应该使用哪种 IPC机制 。首先,IPC
表示Inter Process communication
,其中两个应用程序或进程通过在它们之间传递一些数据来相互通信。由于android适用于嵌入式和小型设备,因此我们不应将serialization
用于IPC
,而应使用内部使用BINDERs
的{{1}}。 parcels
是一种使用共享内存概念的轻量级序列化。
Binder IPC和序列化IPC之间存在许多差异:
1。在嵌入式设备中使用序列化非常繁重,通讯速度非常慢。
2。粘合剂使用Parcels使IPC非常快。
3。 Binders内部使用共享内存概念,在两个进程之间共享数据时使用较少的内存。
底线: Parcel
使用更少的内存,并且在使用parcel时速度非常快。 Binders
非常繁重,需要时间来发送和接收数据,与绑定器相比,它需要更多内存。
注意:要在活动,服务和接收者之间传递数据,请仅使用捆绑。不要选择序列化或粘合剂。粘合剂专门用于粘合剂服务,其中2个进程将进行通信。
希望这有助于:)
答案 4 :(得分:5)
IPC机制有三种类型:
答案 5 :(得分:0)
另一个对我有用的解决方案是使用内部文件:
https://developer.android.com/training/data-storage#filesInternal
从一个进程写入,关闭文件,从另一个进程读取。