Jor*_*rdi 43
AIDL用于Binder.Binder是一种在Android服务上进行RPC调用的机制.
何时使用AIDL?当您需要服务时.你什么时候需要服务?如果要在另一个应用程序中共享数据并控制某些内容,则需要使用AIDL作为接口的服务.(仅在共享数据时使用Content Provider).
服务可以在您的应用程序中用作MVC模式中的模型卷.
小智 21
AIDL是Android界面定义语言.这基本上允许您进行IPC调用.
使用:有些情况下,一个进程需要与其他进程通信以获取某些信息.
示例:进程A需要呼叫状态信息以确定是否需要更改呼叫类型(例如,音频到视频呼叫,反之亦然).您可以从某些侦听器获得呼叫状态,但是要将呼叫类型从音频更改为视频,进程A需要更改挂钩.这种"挂钩"或改变呼叫的方式通常是电话类的一部分,电话类是电话处理的一部分.因此,为了从Telephony进程获得这样的信息,One可以编写电话服务(作为android电话进程的一部分运行),这将允许您查询或更改呼叫类型.由于此处的进程A(客户端)正在使用此远程服务与Telephony进程通信以更改呼叫类型,因此它需要具有与服务进行通信的接口.由于Telephony服务是提供者,而进程A(客户端)是用户,因此他们都需要就他们能够理解和遵守的接口(协议)达成一致.这样的接口是AIDL,它允许您(通过远程服务)与Telephony进程通信并完成一些工作.
简单地说,AIDL是客户获得的"协议",它告诉它如何与服务对话.服务本身将拥有该协议的副本(因为它为其客户发布).然后,服务将实现一旦请求到达时如何处理的详细信息,或者说某人正在与之通话时的详细信息
因此,进程A请求通过服务更改呼叫,服务获取请求,它与电话进程通信(因为它是它的一部分)并更改对视频的调用.
需要注意的一点是,AIDL只是多线程环境所必需的.如果你不需要处理多线程拱,你可以取消Binders.