Messager与AIDL的区别

作者: patch张 | 来源:发表于2019-07-23 08:48 被阅读0次

1.Messenger的本质也是AIDL,只不过Messenger对其进行了封装,在操作的时候不用再写.aidl文件。

因为在使用Messenger的时候不用写aidl文件,所以使用Messenger是非常简单方便的,但是因为Messenger是对AIDL的封装,所以在底层进程通信上,两者的效率应该是差不多的。

2.在service端,Messenger处理client的请求是单线程的,AIDL是多线程的。

AIDL当service端收到一个请求时,就会启动一个线程,不是主线程,对其进行处理,而Messenger是将其放入handle的MessageQueue中进行处理,handle需要绑定一个thread。

3.在client端,使用AIDL获取返回值是同步的,使用Messager是异步的。

Messenger提供了一种方法进行进程间通信,就是send(Message msg)方法,没有返回值,如果需要返回值,需要将client的Messenger作为msg.replyTo参数传递过去,service处理完后,在调用的cilent的send方法将返回值返回client,这个过程是异步的。AIDL可以指定方法,指定返回值,这个过程是同步的。

相关文章

  • Messager与AIDL的区别

    1.Messenger的本质也是AIDL,只不过Messenger对其进行了封装,在操作的时候不用再写.aidl文...

  • Android中实现进程通信

    AIDL Messager ContentProvider Socket Bundle Messager http...

  • Android IPC机制

    跨进程有多种方式: 基于Binder的AIDL、Messager、ContentProvider 能够携带Bund...

  • IPC机制

    1,跨进程通信,有几种方式,AIDL,socket套接字,contentProvider,messager,共享文...

  • Handler

    服务端代码Handler是系统对AIDL的轻量级封装利用Handler以及Messager 实现跨进程服务端与客户...

  • Android进程间通信

    一、android组件之间通过Bundle通信 二、文件共享 三、Messager 四、AIDL 五、Conten...

  • Android基础(25)进程间通信

    1)进程和 Application 的生命周期2)AIDL3)Messager4)Binder 机制及底层实现 5...

  • 很高兴能再次遇见您——AIDL

    一:aidl与messenger的使用区别 aidl与messenger都是使用在进程间通信的方式,底层都是Bin...

  • AIDL与Binder的区别

    消息队列和管道采用存储-转发方式,即数据先从发送方缓存区拷贝到内核开辟的缓存区中,然后再从内核缓存区拷贝到接收方缓...

  • 简化的Messager类

    看MVVMLight的Messager源码,自己实现了一个简单的Messager类。Messager类可以在MVV...

网友评论

    本文标题:Messager与AIDL的区别

    本文链接:https://www.haomeiwen.com/subject/pvynlctx.html