AIDL与Binder与Messenger的使用区别!

原创 2016年03月10日 00:05:07

a.只有当你需要来自不同应用的客户端通过IPC(进程间通信)通信来访问你的服务时,并且想在服务里处理多线程的业务,这时就需要使用AIDL。

b.如果你不需要同时对几个应用进程IPC操作,你最好通过实现Binder接口来创建你的接口。

c.如果你仍需要执行IPC操作,但不需要处理多线程,使用Messenger来实现接口即可。

d.无论如何,在实现AIDL之前确保你完全理解Bound Service相关知识。


总结下,它的们共同点和差异的地方:

1.他们都与IPC(远程)调用有关。

2.本质不同,Binder是一个对象,继承了IBinder对象,你可以借助它来自定义RPC(远程过程调用协议)协议。AIDL是android提供的接口定义语言,借助这个工具,你可以很轻松地实现IPC通信机制,根据需要灵活定义接口,

3.作用范围不同。如果是在一个应用里实现远程调用,使用Binder即可,没必要使用AIDL。如果涉及到在多个应用程序之间使用IPC通信,并且在服务又有多线程业务处理,这时可以使用AIDL。


适用范围 messenger<binder<aidl    当然复杂度也依次增加。当然实际messenger的本质也是调用的AIDL。

参考Messenger的使用与本质

     Binder与AIDL机制差别

      

版权声明:欢迎你来转载,不过请带个此Blog链接!

Android中的Service:Binder,Messenger,AIDL(2)

前言前面一篇博文介绍了关于Service的一些基本知识,包括service是什么,怎么创建一个service,创建了一个service之后如何启动它等等。在这一篇博文里有一些需要前一篇铺垫的东西,建议...
  • luoyanglizi
  • luoyanglizi
  • 2016年06月06日 11:02
  • 19328

总结关于Service进程通信和跨进程通信的几种方式,AIDL,Messenger,Binder。

以前也用过Service,也使用过Service通信的一些方式,比如广播,接口回调之类的,但是不够全面。 最近看到公司项目有跨进程的Service,就系统的学习了一下Service的方方面面,在此总结...
  • u012846101
  • u012846101
  • 2016年11月02日 18:32
  • 245

Messenger与AIDL的异同

最近做项目需要使用进程间通信,大家知道应用层的进程间通信无非Broadcast,Activity,Service,Content Provider四大组件。Broadcast适用于一对多,我这里是一对...
  • jiwangkailai02
  • jiwangkailai02
  • 2015年08月30日 02:25
  • 1871

binder与aidl机制区别

binder是一个远程对象的基础类,核心部分是远程调用机制,这部分是由IBinder定义的。它是对IBinder类的实现,其中IBinder类提供这样一个类的标准的本地化实现方式。 大多数开发者不会去...
  • a2758963
  • a2758963
  • 2015年02月07日 18:35
  • 1864

Android——Binder(AIDL)机制

1.Binder 1)IBinder和Binder? IBinder是远程对象的基本接口,是为了高性能而设计的轻量级远程调用机制的核心部分。但他不仅用于远程调用,也用于进程内调用。该接口定义了...
  • ls5718
  • ls5718
  • 2016年07月07日 21:07
  • 1975

Binder和AIDL之间的关系

什么是Binder? 从IPC角度来说,Binder是Android中一种跨进程通信的方式。 从Android FrameWork角度来说,Binder是ServiceManager连接各种Manag...
  • u010291868
  • u010291868
  • 2017年06月17日 00:40
  • 341

AIDL与Binder的区别

Binder是一个远程对象的基础类,核心部分是远程调用机制,这部分是由IBinder定义的。 它是对IBinder类的实现,其中IBinder类提供了这样一个类的标准的本地化实现方式。 大...
  • sunny_girl_11
  • sunny_girl_11
  • 2015年11月17日 11:18
  • 4147

关于Android Service真正的完全详解,你需要知道的一切

Service 1.Service基础知识概述   Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如Activity),服务一...
  • javazejian
  • javazejian
  • 2016年10月07日 08:11
  • 49144

Android aidl Binder框架浅析

1、概述Binder能干什么?Binder可以提供系统中任何程序都可以访问的全局服务。这个功能当然是任何系统都应该提供的,下面我们简单看一下Android的Binder的框架Android Binde...
  • lmj623565791
  • lmj623565791
  • 2014年08月11日 09:05
  • 34326

Android基础——初学者必知的AIDL在应用层上的Binder机制

初学者必知的AIDL在应用层上的Binder机制首先得理解几个概念:IPC:Inter-Process Communication,进程间的通信或跨进程通信。简单点理解,一个应用可以存在多个进程,但需...
  • qq_30379689
  • qq_30379689
  • 2016年08月20日 14:11
  • 4285
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AIDL与Binder与Messenger的使用区别!
举报原因:
原因补充:

(最多只允许输入30个字)