AIDL
AIDL是一种接口语言。目的是为了进程间通信。server端和client端都需要统一的接口,client端才能通过这些接口访问server端,已达到进程间通信的目的。
实现主要步骤为:
1 在server端编写.aidl文件。aidl文件中定义一个接口,和接口下要实现的方法。
方法的参数和返回值可以是任意类型。只要这些类型要实现Parcelable。
2 在eclipse中保存后会自动生成同名的java接口。此java类下面有个静态内部类Stub。
抽象类Stub继承了BInder,且要实现aidl定义的接口。
3 在server端编写一个Service。这个是server端真正工作的部分。
编写一个内部类继承Stub,也就是说这个内部类也要实现aidl的接口。是aidl接口的具体。
onBind接口需要返回这个内部类的对象。
4 在client端,拷贝.aidl文件和其路径。同样会自动生成同名的java类。
5 在client端,编写一个Activity调用接口。
bindService绑定服务器端的Service。并传递一个ServiceConnection对象。
ServiceConnection的匿名内部类下的onServiceConnected接口可以将IBinder的对象转换成aidl同名java接口的对象。
aidl同名类的对象,就可以调用里面的接口。实现进程间通信。
总结:
1 aidl只是一个接口文件,ADT会自动生成同名的java接口。server端需要实现这个接口,client端需要调用这个接口。
2 Binder是实现server端和client端通信的关键。
相关推荐
这是一个简单的进程间通信的demo
进程间通信的示例,有需要的可以下载下来看看,应该对你有帮助的
AndroidAIDL进程间通信例子代码,一个客户端调用,一个服务端Service
aidl跨进程通信的简单例子,有客户端和服务端。客户端绑定服务,即可发送内容到服务端。如果绑定服务失败,请添加代码:intent.setPackage("com.example.alidservice");即可
Android安卓AIDL进程间通信Service简单例子,分为客户端和服务端代码,一看就会,一看就懂,核心还是IBinder.
使用AIDL实现进程间通信 两个工程即两个APP,实现数据共享 APP1中有个service 不停的对某一个数进行++操作, APP2通过AIDL 获取APP1的Service中的这个值(通过回调) 当然要使用AIDLAPP1中也要做相应处理
Aidl进程间通信简单封装了下,AIDL和Service作为一个library,其他3个app调用,实现3个app共享一个服务,3个中任意app打开即可开启服务,其他两个app共用
使用AIDL进行进程间通信
使用Android studio 实现两个app通过AIDL 和Binder连接池的进程间通信
Android进程间通信 AIDL Service 一、服务端结构 服务端需要处理的有: 1.处理对象,对象内方法,注意:AIDL 只能对函数起作用; 2.处理服务; 3.配置文件; 二、客户端 配置 1.对象,切记,与服务端的对象完全一致...
本人根据开发艺术探索这本书,深入学习跨进程通信,对AIDL终有所成,资源中是代码,里面几乎每一行都进行注解,一个不错的资源,用于以后忘记时候取过来看一下
NULL 博文链接:https://android-zhang.iteye.com/blog/1850180
文件包含两个工程,Client和Server,通过aidl实现客户端和服务端之间的通信。 服务端和客户端都创建一个aidl文件,定义接口。 服务端通过service将接口暴露给客户端,客户端绑定服务。 解压即可运行。
aidl学习 其实很简单 对应博客:http://www.cnblogs.com/nanguabing/archive/2012/12/12/2815392.html
NULL 博文链接:https://null-point.iteye.com/blog/1067325
Android使用AIDL实现进程间通信
andorid 不同进程间的通信, uses the aidl to comple the demo,hope you can learn ,and give me you idear .
本篇文章小编为大家介绍,基于Android AIDL进程间通信接口使用介绍。需要的朋友参考下