2012-10-04 105 views
2

我在Android显影剂导向的Android绑定服务和AIDL服务

两个阅读有关bound serviceAIDL based service似乎允许其它部件以结合并执行进程间通信

绑定的服务允许组件(诸如活动)绑定到 服务,发送请求,接收响应,甚至执行进程间通信(IPC)。

AIDL(Android接口定义语言)与您可能使用过的其他IDL 类似。它允许您定义编程 接口,客户端和服务商都同意使用进程间通信(IPC)来互相通信。

那么有什么区别?

回答

2

AIDL只是与绑定服务进行通信的一种方式。 “AIDL based servcie”不存在这样的事情,它只是一个绑定服务,它返回一个基于AIDL接口生成的Binder。

+0

在Android开发人员的ADIL指南中说**“注意:只有当您允许来自不同应用程序的客户端访问您的IPC服务并希望处理您的服务中的多线程时,才需要使用AIDL如果您不需要执行并发IPC跨越不同的应用程序,你应该通过实现一个Binder“**来创建你的接口,所以这意味着什么? – onmyway133

+0

这意味着什么说:如果您使用AIDL允许多个客户端并发连接,你应该能够处理这个。如果您使用Messenger,它会为您序列化请求。如果您在相同的过程中使用该服务,则可以通过扩展Binder的自己的类直接访问它(无IPC)。 –

0

AIDL是一个契约,如果客户与服务对话AIDL是使用的格式,所以都知道它的含义。另外,你可以把这个,那个和其他的东西放在一个包里,然后在这里说。哦,看,这个和其他或你可以发送消息。

绑定服务意味着合同双方应该互相了解对方,如电话号码,联系人,姓名等。服务应该知道客户,也许客户应该知道服务。