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问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android开发 Broadcast和AIDL区别和适用范围
如题, 进程或组件间通信时可以用广播或者AIDL,二者有何区别?适用范围?
aidl进程之间的通信
AIDL1 MainActivity package cn.bgs.aidlc; import cn.bgs.aidl.Server; import cn.bgs.aidl.Server.Stub; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException;
进程之间的通信之AIDL
AIDL即Android Interface definition language的缩写,是Android接口定义语言,是IPC进程间通信方式的一种,用于Android设备上两个进程之间进行进程间通信。适用于两个应用之间进行大量数据的传递,分为服务端和客户端,服务端主要提供数据,是被调用的对象,客户端接收数据,是调用的对象。下来我们看看AIDL在Android Studio中的集成使用。
Binder和AIDL之间的关系
什么是Binder? 从IPC角度来说,Binder是Android中一种跨进程通信的方式。 从Android FrameWork角度来说,Binder是ServiceManager连接各种Manager和相应ManagerService的桥梁。 从Android应用层的角度来说, BInder是客户端和服务端进行通信的媒介。 从代码中可以看出Binder是Android中的一个类,它是IBinde
Service与Broadcast之间如何传值?
Service 和 Broadcast 各自独立启动的,如何将 Broadcast 收到的信息传给 Service?rn
用broadcast在activity之间传递数据
用broadcast在两个activity之间传递数据,能保证application的UI保持不变,是当前activity的UI,接收数据的activity执行对应动作。
进程之间的通信AIDL
在Android应用程序中我们想从一个程序调用另一个程序中的方法获取数据或者使用另一个程序的功能,我们可以通过互发广播或者通过AIDL来实现,现在我们就来说说这个AIDL怎么实现。AIDL通信是通过远程连接Service实现两个进程之间的通信,首先我们在src中创建一个 .aidl系统会自动在gen中生成相关的文件, .aidl 文件中我们可以创建接口来实现我们需要的功能,代码如下:package
service和aidl的区别
service是在当前进程中新开线程,aidl是系统新开进程,属于另一个进程。
AIDL和四大组件的区别
我们都知道,AIDL和android四大组件都能够实现进程间的通讯!1:Acticity:其跨进程的访问,是需要Intent对象,并startActivity(),同时需要在AndroidMianFest文件中注册,当需要传输数据给时,—->八大基本数据类型传输没有任何限制,但是传输的是对象的时候,其对象封装时必须实现Parcelable或Serializable接口 —->其目的是永久的保存对象数
Aidl与信使的区别
Messenger实现了IPC通信(进程间通信),其真实原理也是使用了AIDL进行通信,但是和直接使用AIDL不同的是Messenger利用了Handler处 理通信,所以它是线程安全的(不支持并发处理); 而我们平时用的AIDL是非线程安全的(支持并发处理)。所以大多数时候我们应用中是不需要处理夸进程并 发处理通信的,所以这时选择Messenger会比AIDL更加容易操作。 在不考虑
broadcast
<p>n <span>本课程是人工智能工程师的辅助课程,讲解矩阵的概念、运算、分解、应用,以及</span>numpy操作。旨在帮助学员补充矩阵基础,为学习机器学习做准备,减轻后续正课的学习压力,学习更顺畅。n</p>
Android进程之间通信Aidl
[金典,说的很透彻了,点击查看](http://www.race604.com/communicate-with-remote-service-1/) 附带一个我自己写的demo[点击下载](http://download.csdn.net/detail/m107119232/9684350)
Aidl 实现进程之间的通讯
遇到进程之间相互通讯的问题时,谷歌官方给我们提供了一种aidl 的方式,通过service 使用,使用方式如下: first step : 在as project main 目录下 新建一个 aidl 文件,将文件名改为和包名不一样(因为这个包名和类名也要用在另一个项目中),可以建完之后新建一个包,将接口文件拷贝过去即可。Next: 在另一个app 中同样目录下cop
AIDL与Binder与Messenger的使用区别!
a.只有当你需要来自不同应用的客户端通过IPC(进程间通信)通信来访问你的服务时,并且想在服务里处理多线程的业务,这时就需要使用AIDL。 b.如果你不需要同时对几个应用进程IPC操作,你最好通过实现Binder接口来创建你的接口。 c.如果你仍需要执行IPC操作,但不需要处理多线程,使用Messenger来实现接口即可。 d.无论如何,在实现AIDL之前确保你完全理解Bound
<% %> 与 之间的区别
本人在修改一asp程序时遇到一个问题:该asp程序的VBscript是用<% %>来标记的。在修改时需要加入一些特效,从网上找来一些VBScript的特效的例子加入其中,运行发现加入的特效代码出错。怎么调试都通不过。就把<% %>换成了 ,结果加入的代码没有问题了,而原来的代码却不问题了。rn我想问这两种VBscript之间到底有什么不同?代码如何移植?
&&与&之间的区别
&与&&的区别
==与===之间的区别
==:用于表示两边的值是否相同 ===: 对于基本类型,String ,int 等是有区别的如果类型不同,其结果就是不等 对于高级类型array object 等是没有区别的,进行“指针地址”比较
Broadcast在两个Activity之间的通信问题
现在我有两个Activity A和B,在A中有一个按钮,按下按钮会发送一条广播,B中有自定义的广播接收器,并进行了动态注册,我想知道是不是只有启动了B才能接受到广播还是无论B有没有启动都能接收到广播?
angular1中的事件,以及$broadcast,$emit的区别
angular1中,使用$scope.$on(事件名,处理函数)可以接收事件,使用$scope.$broadcast(事件名,数据)或者$scope.$emit(事件名,数据)可以触发事件。那$broadcast和$emit有什么区别呢。他们的区别在于,$broadcast会向下广播事件即只有本身和子controller可以收到这个事件,而$emit向上广播事件,即只有本身和父controller
请教关于multicast and broadcast的区别和关系??
rn我是低手,请教一个问题:rnrn关于multicast我知道是多点,但它与广播的boardcast有什么差别?rn最好帮分析一下从使用上和应用上?rnrnmulticast的地址是224.X.X.X可以吧?这样只能在本网关以内的host能接受到还是整个internet?广播呢?有什么地址?rnrn我想做一个实时语音交流的软件,在某个人这里,发一个语音流到multicast地址,在本局网内可以收到,但是不知道局网外能否收到?rnrn另外所谓支持multicast的路由是什么概念?能说明一下吗?rnrn如果multicast只能在局网内使用,那要广域上用的,我如何做才好?rnrn请大家讨论一下吧,我会视参与人的多少持继加分的………rnrn
IPC之AIDL -- APK之间进程通信(入门)
简单的两个apk之间AIDL通信
【Android】 通过AIDL实现的app之间通信
如果你闲着没事儿干,那么你可以学习这个项目,自己可以玩的很开心。    aidl.im.one 和 aidl.im.two这两个module是利用aidl实现的两个可以聊天的app,不过是装在同一个手机上的    适合超级无聊之人自己和自己聊天使用。*二话不说,看我上图*AIDL :Android interface definition language,Android 接口描述语言。Andro...
android 跨应用进程之间的通信之AIDL
通常我们熟悉同一进程的通信方式,关于跨进程之间的通信AIDL的实现方式。 Android studio提供了aldl工具,创建步骤 1、右击项目文件,选择AIDL File 2、我们可以任意取一个文件名,点击finish 3、创建接口文件 4、创建我们要获取对象数据的Book.java文件 下面分别把这三个文件的源代码贴出来: Book.java pub
Android 两个进程之间使用AIDL
我们假定两个应用程序为A和B。 我的意图是在B应用工程中创建Aidl,然后在这里实现 aidl里面的方法,然后在A应用工程中去远程调用: 好了:我先去创建 B应用程序:package com.king.review;   创建一个aidl文件:IService.aidl    (com.king.review.aidl.IService)   package com.king.rev
android aidl通讯两个APP之间的应用
讲述一个APP如何去访问另一个APP的数据。
Android中Binder与AIDL之间的关系
Android中Binder与AIDL之间的关系 Binder Android中特有的一种进程间通信方式,一种虚拟的物理设备,设备驱动是/dev/binder Android中实现了IBinder接口的一个类 ServiceManager连接各种Manager(ActivityManager、WindowManager等等)和相应ManagerService的桥梁 应用层客户端和服务端进行通信的...
Android 之间如何通过AIDL通讯
AIDL通讯就像客户端和服务器之间的通讯 1、客户端     1.1、首先对于客户端,创建包名.类名 android.content.clientInterface.aidl package android.content; interface clientInterface{ int test_cal(int num1,int num2); } 1
不同APP之间数据访问AIDL跨进程访问
一个简单的跨进程AIDL访问,包含简单的被调用程序和调用AIDL的程序,方便初学者学习AIDL跨进程,跨APP数据访问。 客户端和原程序跟目录下都包含了read.txt阅读文档,方便学者学会AIDL的调用 【程序基于UFT-8格式,如出现乱码,请将格式改为UTF-8】
使用AIDL通过进程APK之间通信
通过使用AIDL进程间通信方式,由A.apk 传递参数到B.apk中。实现两个apk之间的数据交互。
进程(app)之间使用aidl通信
一、首先建立service进程。 1.创建aidl文件 (注意包名要与client进程中aidl包名相同) 2.aidl代码 package com.goway.test_aidl_service; // Declare any non-default types here with import statements interface StudentAidl { /*...
两个程序之间AIDL通信 解决空指针异常
昨天学了AIDl通信,结果弄了半天都错误 今天发现错误: 1  要在服务端的清单文件里写: service android:name=".IRemoteInterferface" android:exported="true" android:process=":remote"> service> 特别注意不要写成了Server: 2修改完这个错,他竟然还
双进程/两个app之间使用AIDL
首先第一个APP 做AIDL的接口及服务,第二个APP再去绑定服务,然后使用AIDL接口中的方法(绑定第一个APP的服务的时候必须先打开第一个APP在后台运行,否则无法绑定) 这里主要是讲 两个应用之间使用AIDL 不会细讲如何创建AIDL的过程及约束。建立在已经过学习过AIDL的朋友之上学习的。 第一个APP: 1、创建一个AIDL文件 ICompute.aidl 然后 声明一个add方法
广播接收者--Broadcast
什么是Broadcast BroadcastReceiver是安卓中的四大组件之一。 广播接收器,也被称为全局事件,或系统事件。 当Android系统中任何程序有动作时,如果想通知其他程序,采用广播的方式进行传播是非常有效的。广播从理论上说,可以将一个动作传播给任意多个程序(当然,广播接收器的数量会受到系统限制)。   在Android中,有一些操作完成以后,会发送广播,
Broadcast Channels
Broadcast Channels Transmission of Information Lecture 22
android Broadcast
android BroadcastReceiver动态注册,实现接收发信息。
第42课: Spark Broadcast内幕解密:Broadcast运行机制彻底解密、Broadcast源码解析、Broadcast最佳实践
第42课:  Spark Broadcast内幕解密:Broadcast运行机制彻底解密、Broadcast源码解析、Broadcast最佳实践Broadcast在机器学习、图计算、构建日常的各种算法中到处可见。 Broadcast就是将数据从一个节点发送到其它的节点上;例如Driver上有一张表,而Executor中的每个并行执行的Task(100万个Task)都要查询这张表,那我们通过Broa
发送广播Broadcast
1.  发送: Intent intent=new Intent(); intent.putExtra("str", str); intent.setAction("。。。"); sendBroadcast(intent); 2.接收: a.注册广播接收器 receiver=new MyReceiver(); IntentFilter filter=new IntentFi
Broadcast消息机制
Broadcast消息机制 广播-消息体-消息管理-消息接收 实例: 1.定义activity package com.douzi.broacast; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.
本地广播Broadcast
本地广播 :发送的广播只在程序内存发送和接收         1、使用:                  它的使用与动态广播区别是需要LocalBroadcastManager的实例,如下 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat
BroadCast简单使用
进行了静态广播,动态广播的代码详细书写,还进行了动态广播和静态广播的执行顺序