Broadcast和AIDL之间的区别?

Broadcast和AIDL都能进行进程间通讯?Broadcast使用起来更加简单为何还要有AIDL这个产物?他们的区别是?

0

4个回答

AIDL是安卓专门的进程间接口语言,肯定更简单灵活,Broadcast是系统组件,会占用更多内存,执行复杂。

1

接前面一位AIDL Broadcast 都是进程间接口语言
Broadcast 可以接受到 系统发送的消息如 网络等连接消息 ,且 不关心接受者
AIDL 就像一条桥 本来 a应用无法访问b应用 你2个都写aidl接口后 a-》b就能访问了

0
u012846783
勤奋的懒惰 Broadcast只能是异步的,而AIDL能同步。
大约 2 年之前 回复

其实感觉实际开发中能不用广播就不用,耗费系统性能。

0

不要用AIDL,用Messager

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
AIDL,广播,Provider注意的一些小细节
关于使用AIDL需要注意的几个点nnn服务端的进程可能异常停止,此时客户端拿到的binder是失效的,所以要为拿到的binder设置监听,即linkToDeath(实现接口的匿名内部类);然后在接口实例的方法里面调用unlinkToDeath(),之后可以进行服务重绑定n当为服务端注册客户端监听时,客户端使用的Listener接口应该是定义为AIDL接口,普通接口不能跨进程,服务端集合使用Remo...
Binder和AIDL之间的关系
什么是Binder?n从IPC角度来说,Binder是Android中一种跨进程通信的方式。n从Android FrameWork角度来说,Binder是ServiceManager连接各种Manager和相应ManagerService的桥梁。n从Android应用层的角度来说, BInder是客户端和服务端进行通信的媒介。n从代码中可以看出Binder是Android中的一个类,它是IBinde
android开发 Broadcast和AIDL区别和适用范围
如题, 进程或组件间通信时可以用广播或者AIDL,二者有何区别?适用范围?
Aidl 实战解析,进程间通信
众所周知,AIDL是进程间通信很常用的一种通信方式,很多时候你总会觉得它非常复杂而又乱其实,你写一个demo你就懂了而且最好的理解方式也是你自己亲手写一个demo!下面我们通过一个最简单的demo来所说AIDL到底是怎么使用的第一步 创建一个你要在进程间传递的数据类型,并且让这个数据类型implement安卓的两种序列化方式之一,Serializable或者Parcelable!否则,你的这个数据
使用BroadCast实现进程间通信以及静态注册和动态注册广播的区别
Android中,一般情况下一个应用程序是一个独立的进程。而进程之间的内存是不可见的,那么进程间如何通信呢? n其中一种实现方式便是通过广播来实现。这种方式实现方式的特点是被动通信,因为只能发送方发送广播,接收方被动的接收广播。下面通过代码来具体讲解其具体实现方式:1.首先写发送广播的应用程序:(这个程序的功能很简单:点击界面上的按钮发送一个Action为“android.intent.action
Android中使用AIDL完成不同进程间的通信
Android中使用AIDL完成不同进程间的通信使用AIDL完成不同应用程序之间的数据通信,本人也是菜鸟一枚,错漏的地方请大家海涵。话不多说,下面开始讲解。首先,建立两个工程,一个作为服务端,一个作为客户端。服务端的目录结构如下:n作为服务端就要能够接受来自客户端的请求,因此服务端需要向外界暴露出一些接口让客户端调用。 n大概思路是服务端首先要创建一个Service用来监听客户端的请求,然后创建一个
android aidl通讯两个APP之间的应用
讲述一个APP如何去访问另一个APP的数据。
AIDL解析(一)两个应用之间使用AIDL进行通信的例子
IPC(Inter-Process Communication) :指进程间通信 ,指至少两个进程或线程间传送数据或信号的一些技术或方法n桌面应用Launcher是用Binder IPC启动应用,而进程与进程之间的交流,就是使用AIDL了。不单单是进程与进程之间可以用AIDL,Service和组件之间不但可以用Messenger来通信,也可以用AIDL来通信。使用Messenger更简单,核心是
AIDL初探:夸进程的通信和跨进程的回调机制
最近一个项目涉及到跨进程的操作,我们的应用ClientApp需要用到底层的数据,但是这个数据data是在一个不断监听接收底层的服务ServiceA里面,痛苦的是这个服务是在另外一个进程里面。虽然我们可以用万能的广播机制,但这会造成系统非常大的负担。另外一种方法可以用ContentProvider,很多时候还是挺好用的,但是实时性不够,两个进程之间也缺乏交互性,所以我决定用AIDL来实现这一功能。
AIDL与Binder与Messenger的使用区别!
a.只有当你需要来自不同应用的客户端通过IPC(进程间通信)通信来访问你的服务时,并且想在服务里处理多线程的业务,这时就需要使用AIDL。rnrnb.如果你不需要同时对几个应用进程IPC操作,你最好通过实现Binder接口来创建你的接口。rnrnc.如果你仍需要执行IPC操作,但不需要处理多线程,使用Messenger来实现接口即可。rnrnd.无论如何,在实现AIDL之前确保你完全理解Bound
Android 使用AIDL实现两个app之间的通信
AIDL是基于Service完成app之间的通信,它是Android Interface definition language 的缩写,AIDL的通信是基于一个  .aidl    文件,需要两个app之间拥有同样的包名,然后同样的包名里面有同样的 .aidl   文件,这样才可以完成通信。首先需要创建 .aidl  文件(这是我两年前在eclipse上写的,那是AS还不是多普及,我先介绍下ec...
【原创】Android aidl实现两个apk之间远程调用Service
Aidl,android平台的IPC方式之一,基于系统的Ibinder机制。rn网上大多数例子都是在一个apk下来测试调用service,现在我在两个project下面来调用。rn一个是server project,一个是client projectrn首先我们建立的是server project,这里面要实现aidl文件和一个service,activity只是用来启动service的,当然,你...
service和aidl的区别
service是在当前进程中新开线程,aidl是系统新开进程,属于另一个进程。
AIDL用法 实现两个APP间的通信
AIDL是跨进程通信的一种方法,下面我来讲讲它的用法:服务项目中的配置使用:第一步:在服务项目中建一个自定义MyService类并继承Android的Service类,实现onBind()方法。第二步:在AndroidManifest文件处声明Service,并指定一个Action用于客户项目绑定这个Service。例如:第三步:新建AIDL文件(AIDL目录与java、res目录同级,文件在包名...
Angularjs 利用 $on、$emit和$broadcast传值,利用$watch监听模型变化
Angularjs 利用 $on、$emit和$broadcast传值  n$emit只能向父controller传递event与datan       $scope.$emit("参数名称",参数值);nn$broadcast只能向子controller传递event与datan    $scope.$broadcast("参数名称",参数值);nnn$on用于接收event与d
Binder与AIDL的关系
什么是BinderBinder是一个类,它实现了IBinder接口,而IBinder接口定义了与远程对象的交互协议。通常在进行跨进程通信时,不需要实现IBinder接口,直接从Binder派生即可。除了实现IBinder接口外,Binder中还提供了两个重要的接口。(1)Transact(),客户端调用,用于发送调用请求(2)onTransact(),服务端响应,用于接收调用请求因为以上的原因,B...
双进程/两个app之间使用AIDL
首先第一个APP 做AIDL的接口及服务,第二个APP再去绑定服务,然后使用AIDL接口中的方法(绑定第一个APP的服务的时候必须先打开第一个APP在后台运行,否则无法绑定) 这里主要是讲 两个应用之间使用AIDL 不会细讲如何创建AIDL的过程及约束。建立在已经过学习过AIDL的朋友之上学习的。n第一个APP:n1、创建一个AIDL文件 ICompute.aidl 然后 声明一个add方法
Android AIDL 实现两个APP之间的跨进程通信实例
1 Service端创建首先需要创建一个Android工程然后创建AIDL文件,创建AIDL文件主要为了生成继承了Binder的Stub类,以便应用Binder进行进程间通信servier端结构如下 nAIDL代码如下// IBookManager.aidlnpackage com.example.bookserver.aidl;// Declare any non-default types he
Android开发:使用AIDL实现两个App间通信
Android开发:使用AIDL实现两个App间通信nn今天开发了一个功能,通过Android的AIDL机制完成两个app间的通信。功能需求很简单,一个客户端app,叫做client,一个服务端app叫orderManager;客户端负责展示订单列表,并且可以向服务端添加订单;服务端负责管理订单,可以对外提供订单信息。 n闲言少叙,下面直接上代码。nnnn1、编写bean类。 n首先在client...
AIDL实现跨APP通信(双向通信)
某天,接到了一人任务要在两个app互相传递一些消息,上网查了以后发现有几种方式。第一是广播、第二是AIDL,由于初出茅庐全不会就选择了AIDL。。。下面简单粗暴的开始贴代码好了。也是得到了网上的一些借鉴,若有雷同,嗯你懂的。nnn1.我们需要先建立AIDL文件。值得一提的是,我们要在main下建立一个专门用来放AIDL文件的包。非常重要!nnn其中,AIDLClient.aidl是客户
Android多进程间采用AIDL方式进行通信简单DEMO
在上一节中,我介绍了Android中Service的生命周期以及一些有关知识。在这一节中,我采用代码编写的方式来介绍一下不同程序之间也就是不同进程之间通信采用AIDL方式。rn首先我需要解释一下,不同程序进程间采用AIDL方式启动服务,我们可以看作成client客户端与server服务端之间的通信,无非c/s都是安装在了我们的智能手机设备Android系统之上。好了,理解到这里我们就可以继续往下介
简单的Jni 以及Aidl的实现
首先解释一下Jni,在我看来Jni 说白了就是Android系统中Java与Native交互的工具那么AIDL又是什么呢,android是特有的AIDL通信机制,是为了让实现在其它进程里的代码也能调用某个接口。然后说一下为什么要写这个Jni以及AIDL呢,这是因为当时遇到个问题,需要获取某个so里面的一个数据,该so必须通过jni来获取。具体为什么非要通过jni,这里不多说。最后说一下基本思路。首...
Android中Binder与AIDL之间的关系
Android中Binder与AIDL之间的关系nBindernnAndroid中特有的一种进程间通信方式,一种虚拟的物理设备,设备驱动是/dev/bindernAndroid中实现了IBinder接口的一个类nServiceManager连接各种Manager(ActivityManager、WindowManager等等)和相应ManagerService的桥梁n应用层客户端和服务端进行通信的...
Android进阶——使用远程服务AIDL实现进程间带远程回调接口较复杂通信小结(二)
引言nn作为Android四大组件之一的服务Service,相信大家都不会陌生,从初学者的时候就知道分为本地服务和远程服务。本地服务自不必多说,这篇就总结下如何使用远程服务,由于远程服务AIDL 底层涉及到Binder 机制(这个是Android核心IPC机制,以后打算专门整理出一系列关于Binder Java层的原理,可以说AIDL就是Binder机制的一种体现),本篇着重总结用法,结合小例子简...
进程间通信之AIDL和Messager
rn看附件rn
Android Studio使用AIDL 实现进程间通信实例
Android studio aidl 数据交换
利用AIDL进程间传输图片例子
IDE:Android studio 1.5 测试机:Android 5.0
android进程间通讯
Binder框架 Binder介绍 Android跨进程通讯 Activity Content Provider Broadcast AIDL
应用之间的通信Aidl和共享内存块MemoryFile的使用
前天经理交给我一个任务,需求是在一个应用中获取摄像头的数据传递到另外一个应用中使用,生成图片。原理是运用android进程之间的通信AIDL技术,传递分辨率,图片的格式N21,摄像头传递的每一帧的图片大小都是固定的,计算方式为宽*高*单位像素字节,把每一帧图片放入共享内存,在客户端中读取共享内存数据,那么怎么保证一边写一边读,读完之后在写,写完之后在读,这样一步一步进行呢,用锁机制肯定是不行的,因
Android --(Service)AIDL跨线程通信
一,AIDL详情nnAIDL是一种定义接口语言,用于多个应用间使用同一个Service的功能。nn相比其他跨线程通信:Broadcast Receiver,它的优势是:性能稳定,效率高,而且系统上实现共享内存。nn二,AIDL的使用:nn通常使用它需要启动Client端和Service端nnService端创建nn1,先创建AIDLnnnnnn2,修改aidl文件,并 Rebuildnnnint...
AIDL跨进程的服务
AIDL跨进程的服务:Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Languag...
瞎聊!Android之aidl进程之间传递对象简单分析加 源码
        Android里多进程通讯的方式有许多,广播,内容提供者(ContentProvider),Socket,序列化和Binder等,今天就聊聊序列化和binder吧,也就是我们说的AIDL。先看个例子吧!看看怎样使用AIDL在不同进程之间传递值。我们先建三个主要的文件Book.aidl、IBookManager.aidl、Book.java其中Book.java的内容,就一个实体类,...
HIDL 简单介绍
Android HAL类型 在此之前的ANDROID版本当中Android HAL没有什么特殊的特殊的,也么有什么分类,但是从android 8.0开始,Android重构了HAL与Android FW之间的联系结构,所以Android HAL会被区分成以下2种类型: 1,Binderized HALs,从名字上应该是指Binder化的HAL,HAL都被写成了binder service,Andr...
跨进程通讯之AIDL-----不同应用程序之间跨进程
AIDL,通俗来说就是两个Android应用要进行通信,且不能通过网络云服务器的方式进行数据交互,只能调用本地函数库的机制来实现,这时Android系统提供AIDL的机制来实现Android的跨进程通讯(用户进程之间是相对封闭的,无法直接访问数据)。n我们先不管任何原理,把demo跑出来再说其他的:n准备材料:一个Service、一个Client、连接S—C的桥梁(AIDL文件)n第一步: 连接...
NDK、jni、Binder、AIDL、进程通信有关
1,请介绍一下NDK2,什么是NDK库?3,jni用过吗?4,如何在jni中注册native函数,有几种注册方式?5,Java 如何调用c、c++语言?6,jni如何调用java 层代码7,进程间通信的方式8,Binder机制9,简述IPC?10,什么是AIDL?11,AIDL解决了什么问题?12,AIDL如何使用?13,Android上的Inter-Process-Communication跨进...
手把手教你如何用AIDL实现进程通信
AIDL,全称是Android interface definition language,Android接口描述语言。我们知道,每一个进程都有自己的Dalvik VM实例,都有自己的一块独立的内存,互不影响。那我们要实现进程间通信,该怎么做呢?这个时候AIDL就起作用了,下面就带大家一步一步实现进程通信。
AIDL使用实例
利用AIDL实现了Activity和远程Service之间的通信,远程Service和普通Service的区别在于manifest中process的配置,有就是远程,没就是普通,区别在于远程Service里面可以做耗时操作,普通的不可以,但是Activity却不能可远程Service之间连接,需要通过AIDL,普通的Service可以之间和Activity连接,但是却不能做耗时操作。
【Android】 通过AIDL实现的app之间通信
如果你闲着没事儿干,那么你可以学习这个项目,自己可以玩的很开心。    aidl.im.one 和 aidl.im.two这两个module是利用aidl实现的两个可以聊天的app,不过是装在同一个手机上的    适合超级无聊之人自己和自己聊天使用。*二话不说,看我上图*AIDL :Android interface definition language,Android 接口描述语言。Andro...
AIDL 客户端与服务端的双向通信
时隔一年半了,终于写下了这个续篇,我发现我的很多博客有头无尾,都是有前面一点点,后面就没写去了,也正在想办法都补上n初涉IPC,了解AIDL的工作原理及使用方法n今天聊聊的是客户端和服务端的相互通信,何谓双向通信,事实上,我们在上一篇的博客中,只是讲解了客户端请求服务端的方法,然后服务端返回一个值给我们 n这样,其实是最简单的用法,但是常常在我们的开发过程中,如果调用了某些方法,比如网络请求,那么就
Android学习- 进程间通信之AIDL和Binder连接池
作者:桂志宏nn前面讨论过利用Messenger来进行进程间通信,这一节介绍另一种进程间通信的方法–AIDLnnAIDLnnAIDL的完整表述:Android Interface Definition Language 也就是android接口定义语言,它的本质是系统为我们提供的一种快速实现Binder的工具。nn上面讲述利用Messenger来进行IPC通信,但是Messenger是以串行的方...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据与深度学习区别 机器学习和大数据区别