美文网首页
Messenger 信使

Messenger 信使

作者: jacky123 | 来源:发表于2016-07-26 11:02 被阅读34次

概述

通过Messenger 我们可以在不同的进程中传递 Message 对象,在Message中放入我们需要传递的数据,就可以轻松地实现进程间通信了。Messenger是一种轻量级的IPC方案,它的底层实现是AIDL,我们可以看下Messenger的构造方法就明白了。从构造方法我们可以明显看出AIDL痕迹,不管是IMessenger还是Stub.asInterface,这种使用都表明它的底层是AIDL。

public Messenger(Handler target) {
    mTarget = target.getIMessenger();
}
    
public Messenger(IBinder target) {
    mTarget = IMessenger.Stub.asInterface(target);
}

Messenger的使用方法很简单,它对AIDL做了封装,使得我们可以更简便地进行进程间通信。同时,由于它一次处理一个请求,因此在服务端我们不用考虑线程同步的问题,这是因为服务器不存在并发执行的情形,服务器以串行的方式处理客户端发来的消息。


Messenger中进行数据传输必须将数据放入Message中,而Messenger和Message都实习那了Parcelable接口,因此可以跨进程通信。


优缺点

优点:

  • 简单

缺点:

  • 服务器以串行的方式处理客户端发来的消息,如果大量的消息同时发送到服务器,服务器仍然只能一个个处理,那么用Messenger就不合适了。
  • Messenger的作用是为了跨进程传递消息,很多时候我们可能需要跨进程调用服务端的方法,这种情形用Messenger就无法做到了。

相关文章

  • Messenger 信使

    概述 通过Messenger 我们可以在不同的进程中传递 Message 对象,在Message中放入我们需要传递...

  • Messenger轻量级IPC方案

    概述 什么是messenger Messenger可以翻译为信使,通过它可以在不同的进程中传递Messenger对...

  • IPC之Messenger

    参考Android开发艺术探索 Messenger Messenger:信使,通过它可以不同进程中传递Messag...

  • Android IPC之Messenger

    Messenger 翻译为信使,通过Messenger可以实现在不同进程间传递Message对象。Messenge...

  • ipc 使用Messenger进行跨进程通信

    Messenger Messenger翻译为信使,即它可以在不同进程中传递Message对象。在Message中放...

  • Android中的IPC方式(二)

    1. 使用Messenger的原理 Messenger 可以译为信使,通过他可以在不同进程中换地Message对象...

  • Messenger实现进程间通信

    为什么Messenger能进行进程间通信 Messenger翻译为信使,他可以在不同的进程中传递Message对象...

  • Messenger信使(跨进程通信)

    由Handler发送接收服务器Servicepublic class MyService extends Serv...

  • 进程间的信使--Messenger

    改文章用来记录警示,以及给各位做个提醒。 跨进程通信是Android中绕不开的一个坑,使用的刀也能成为你的一把利...

  • 鲁米的诗15

    你感受到的痛苦是信使, 倾听他们带来的信息。 These pains you feel are messenger...

网友评论

      本文标题:Messenger 信使

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