Android OS中有哪些IPC机制?

Sum*_*man 61 android ipc android-intent android-bundle android-binder

请问任何人请告诉我android中存在的所有IPC机制是什么.

据我所知:

1)意图,
2)粘合剂.

Vla*_*nov 85

IPC是进程间通信.它描述了不同类型的android组件如何通信的机制.

1)Intents组件可以发送和接收的消息.它是在进程之间传递数据的通用机制.在意图的帮助下,人们可以启动服务或活动,调用广播接收器等.

2)Bundles是数据传递的实体.它类似于对象的序列化,但在android上要快得多.Bundle可以通过getExtras()方法从intent获得.

3)Binders是允许活动和服务获得对其他服务的引用的实体.它不仅可以简单地向服务发送消息,而且可以直接调用它们上的方法.

  • 捆绑可以被视为与Intent一起出现,并且不要忘记BroadcastReceiver.以下是来自Android官方网页的文字:"我们强烈建议您使用针对IPC的Android系统功能,例如Intent,Binder或Messenger with a Service,以及BroadcastReceiver".http://developer.android.com/training/articles/security-tips.html#IPC (7认同)

Sum*_*man 35

Android中有三种类型的IPC机制:

  1. 意图(以及捆绑)
  2. 粘合剂
  3. ASHMEM(匿名共享内存) - Linux共享内存与此共享内存之间的主要区别在于,Linux中的其他进程无法释放共享内存,但如果其他进程需要内存,则此操作系统可以释放此内存.

  • 粘合剂包括AIDL.它只是一种语言,可以帮助您为IPC生成Binder接口. (3认同)
  • 应该添加UNIX套接字和管道 (3认同)

lom*_*mza 22

正如在Android Developers页面上所写,Android中的 IPC机制包括:

  • 意图(包括捆绑包)
  • 有服务的粘合剂或信使
  • BroadcastReceivers


Set*_*sak 16

这篇文章中的所有答案都很简洁.但我想说明我应该使用哪种IPC机制.首先,IPC意味着Inter Process communication两个应用程序或进程通过在它们之间传递一些数据来相互通信.由于Android是为嵌入式和小型设备,我们不应该使用serializationIPC,而我们可以用BINDERs它在内部使用parcels.Parcel是一种使用共享内存概念的轻量级序列化.

Binder IPC和Serialization IPC之间存在许多差异:

1.序列化在嵌入式设备中使用非常繁重,通信速度非常慢.

2. Binders使用Parcel来快速制作IPC.

3. Binders内部使用共享内存概念,在两个进程之间共享数据时使用较少的内存.

底线: Binders使用较少的内存,并且使用包裹时速度非常快.Serialization非常繁重,需要时间来发送和接收数据,与绑定器相比,它需要更多的内存.

注意:要在活动,服务和接收方之间传递数据,请仅使用Bundles.不要选择序列化或粘合剂.粘合剂仅专门用于2个进程将进行通信的活页夹服务.

希望这可以帮助 :)


小智 5

IPC机制有三种类型:

  1. 处理程序
  2. 实施粘合剂
  3. 图书馆