永发信息网

AIDL的全称是什么?如何工作?能处理哪些类型的数据?

答案:3  悬赏:0  手机版
解决时间 2021-02-15 05:59
AIDL的全称是什么?如何工作?能处理哪些类型的数据?
最佳答案



AIDL的全称:Android Interface Definition Language,即Android接口定义语言。
Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。
为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案一样,Android使用一种接口定义语言(Interface Definition Language,IDL)来公开服务的接口。我们知道4个Android应用程序组件中的3个(Activity、BroadcastReceiver和ContentProvider)都可以进行跨进程访问,另外一个Android应用程序组件Service同样可以。因此,可以将这种可以跨进程访问的服务称为AIDL(Android Interface Definition Language)服务。
建立AIDL服务要比建立普通的服务复杂一些,具体步骤如下:
(1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件。该文件的语法类似于Java代码,但会稍有不同。
(2)如果aidl文件的内容是正确的,ADT会自动生成一个Java接口文件(*.java)。
(3)建立一个服务类(Service的子类)。
(4)实现由aidl文件生成的Java接口。
(5)在AndroidManifest.xml文件中配置AIDL服务,尤其要注意的是,标签中android:name的属性值就是客户端要引用该服务的ID,也就是Intent类的参数值。
全部回答
AIDL的英文全称是Android Interface Define Language 当A进程要去调用B进程中的service时,并实现通信,我们通常都是通过AIDL来操作的 A工程: 首先我们在net.blogjava.mobile.aidlservice包中创建一个RemoteService.aidl文件,在里面我们自定义一个接口,含有方法get。ADT插件会在gen目录下自动生成一个RemoteService.java文件,该类中含有一个名为RemoteService.stub的内部类,该内部类中含有aidl文件接口的get方法。 说明一:aidl文件的位置不固定,可以任意 然后定义自己的MyService类,在MyService类中自定义一个内部类去继承RemoteService.stub这个内部类,实现get方法。在onBind方法中返回这个内部类的对象,系统会自动将这个对象封装成IBinder对象,传递给他的调用者。 其次需要在AndroidManifest.xml文件中配置MyService类,代码如下: 为什么要指定调用AIDL服务的ID,就是要告诉外界MyService这个类能够被别的进程访问,只要别的进程知道这个ID,正是有了这个ID,B工程才能找到A工程实现通信。 说明:AIDL并不需要权限 B工程: 首先我们要将A工程中生成的RemoteService.java文件拷贝到B工程中,在bindService方法中绑定aidl服务 绑定AIDL服务就是将RemoteService的ID作为intent的action参数。 说明:如果我们单独将RemoteService.aidl文件放在一个包里,那个在我们将gen目录下的该包拷贝到B工程中。如果我们将RemoteService.aidl文件和我们的其他类存放在一起,那么我们在B工程中就要建立相应的包,以保证RmoteService.java文件的报名正确,我们不能修改RemoteService.java文件 bindService(new Inten("net.blogjava.mobile.aidlservice.RemoteService"), serviceConnection, Context.BIND_AUTO_CREATE); ServiceConnection的onServiceConnected(ComponentName name, IBinder service)方法中的service参数就是A工程中MyService类中继承了RemoteService.stub类的内部类的对象。
android interface definition language android接口定义语言
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
陆龟栖息地一般在哪里
谁知道怎么修改红色警戒3起义时刻苏联里的V4
安乡县城管大队市容卫生监察中队地址在什么地
柔时的小板凳吧式火锅(薛店分店)怎么去啊,有
下列()具有完善的理论基础,能对环境价值有
为什么打电话过来,我手没有显示电话号码
为什么安卓智能手机没蓝牙?没刷过机,新买的
将mp3或wma转换到wav或amr直接改后缀名可以么
弹弹堂s怎么刷点卷,绑定的也行
淮海工学院能升级成功么?
葡萄山我想知道这个在什么地方
绿色开花植物的花的主要功能是BA. 吸引昆
我醉驾车被扣了人也被拘留了七天现在取保候审
水瓶座上升摩羯
中药冰片加入面膜中长期使用会不会有副作用或
推荐资讯
求某家族的御茶会议中文歌词!! 只要中文歌
姐妹麻辣烫在哪里啊,我有事要去这个地方
齐齐哈尔那个牙科好?堵牙多钱?
吴兰英医诊所地址在哪,我要去那里办事
我开了一个修车洗车店明叫,鸿福汽服,怎么写
用鼻呼吸比用口呼吸好的原因是D①鼻毛可阻挡
房产测绘工资大概多少
NAOH为什么能与S,P反应?反应后生成什么呢?
图示为某地区昼夜状况图,图中BC为晨昏线,∠
传奇世界手游法宝怎么得 法宝获得方法
这个液压图什么意思?
用ps软件渲染视频,但是只有jpg格式~没有视
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?