AIDL使用的例子

了解Android中的AIDL ,我想要一个真实的例子,意味着在什么情况下我们需要使用AIDL进行开发。

通过阅读Android文档…它使我感到困惑和许多问题,所以很难阅读整个文档对我来说,任何人都可以帮助我

  1. 这是为了与外部电话沟通。

  2. 或与不同的应用进行通信,(为什么我们需要与其他应用进行通信)

  3. 他们在文档中说什么样的服务

Solutions Collecting From Web of "AIDL使用的例子"

AIDL用于Binder。 Binder是一种在Android服务上执行RPC调用的机制。

何时使用AIDL? 当你需要一个服务。 你什么时候需要服务? 如果您想共享数据控制另一个应用程序中的某些内容,则需要使用AIDL作为接口的服务。 (仅在共享数据时使用内容提供者)。

在MVC模式中,服务可以在应用程序中用作模型。

AIDL是Android接口定义语言。 这基本上允许你做IPC调用。

使用:在某些情况下,一个进程需要与其他进程交谈以获取某些信息。

例如: 进程A需要呼叫状态的信息来确定是否需要改变呼叫types(例如,audio到video呼叫,反之亦然)。 您可以从某些监听器获得呼叫状态,但是要将“呼叫types”从“audio”更改为“video”,则“ stream程A”需要更改一个挂钩。 这种“挂钩”或改变呼叫的方式通常是电话过程的一部分的电话类别的一部分。 因此,为了从电话过程中获得这样的信息,人们可以编写一个电话服务 (作为android电话过程的一部分运行),这将允许你查询或改变呼叫types。 由于这里的进程A(客户端)正在使用这个与电话进程通信来改变呼叫types的远程服务 ,所以它需要有一个接口来与服务通话。 由于电话服务是提供者,而stream程A(客户端)是用户,所以他们都需要同意他们可以理解和遵守的接口(协议)。 这样的接口是AIDL ,它允许你(通过远程服务)交谈电话进程,并完成一些工作。

简单地说就是外行,AIDL是客户得到的“协议”,告诉客户如何与服务对话。 服务本身将拥有该协议的副本(因为它是为客户发布的)。 然后,服务将实现一个请求到达时的处理细节,或者说某人正在与之通话时的细节

因此,处理A请求通过服务来改变呼叫,服务得到请求,它与电话进程(因为它是其一部分)进行通话并且改变对video的呼叫。

重要的一点是,AIDL只是multithreading环境所必需的。 如果你不需要处理multithreading的话,你可以不用绑定器。

另一个真实世界的例子是Google Play许可证使用AIDL。

1 – 是否与外部电话沟通。 它与外部的应用程序进行通信。

2 – 或与不同的应用程序进行通信(为什么我们需要与其他应用程序进行通信)正如GodOnScooter所提到的,当您的应用程序与电话服务通信时,这实际上是另一部分。

3 – 他们在docs中讨论的是什么样的服务这是一个在系统的不同进程中运行的服务,绑定到这个服务需要IPC(进程间通信),AIDL是用来实现这个的。