android AIDL 总结
2014-06-10 23:51
127 查看
AIDL用途:进程间通信。
总结:
1.创建aidl文件,命名为IMyAidl.aidl。所在包名:com.android.my.aidl
2.eclipse自动生成IMyAidl.java。里面包含自己写的接口,还有系统自动生成的用于进程间通信的大段代码。
3.创建一个类,这个类是主要功能实现类,可以命名为MyServiceImpl.java继承IMyAidl.Stub。Stub是Binder的派生类。
4.建立一个service,这个service是用来让其他进程绑定的。在这个service的onBind()方法里,返回MyServiceImpl的实例。
5.在服务端的Manifest中,添加4中service的元素,其中Intent-filter里action添加 <action android:name="com.android.my.aidl.IMyAidl"/>
6.把上边IMyAidl.aidl连同包一同拷贝给Client端
7.在Client端有有一个activity(这里简单举例为单向通信),它需要通过bindService方法和service绑定,目的是“获得”service的Binder,进而调用接口实现方法。
bindService(new Intent("com.android.my.aidl.IMyAidl"), new ServiceConnected(){.... ...... .....}, Context.BIND_AUTO_CREATE)
在 ServiceConnected的回调方法中,传回的IBinder 要赋给成员变量IMyAidl mMyAidl
= IMyAidl.Stub.asInterface(IBinder) //mMyAidl其实是服务端的一个代理proxy.
到此:C/S连接完毕,客户端可以访问服务端功能。
能够使用AIDL,只是说明可以实现进程间通信的功能。但是究其具体机制,还需要进一步的研究Binder源码。
总结:
1.创建aidl文件,命名为IMyAidl.aidl。所在包名:com.android.my.aidl
2.eclipse自动生成IMyAidl.java。里面包含自己写的接口,还有系统自动生成的用于进程间通信的大段代码。
3.创建一个类,这个类是主要功能实现类,可以命名为MyServiceImpl.java继承IMyAidl.Stub。Stub是Binder的派生类。
4.建立一个service,这个service是用来让其他进程绑定的。在这个service的onBind()方法里,返回MyServiceImpl的实例。
5.在服务端的Manifest中,添加4中service的元素,其中Intent-filter里action添加 <action android:name="com.android.my.aidl.IMyAidl"/>
6.把上边IMyAidl.aidl连同包一同拷贝给Client端
7.在Client端有有一个activity(这里简单举例为单向通信),它需要通过bindService方法和service绑定,目的是“获得”service的Binder,进而调用接口实现方法。
bindService(new Intent("com.android.my.aidl.IMyAidl"), new ServiceConnected(){.... ...... .....}, Context.BIND_AUTO_CREATE)
在 ServiceConnected的回调方法中,传回的IBinder 要赋给成员变量IMyAidl mMyAidl
= IMyAidl.Stub.asInterface(IBinder) //mMyAidl其实是服务端的一个代理proxy.
到此:C/S连接完毕,客户端可以访问服务端功能。
能够使用AIDL,只是说明可以实现进程间通信的功能。但是究其具体机制,还需要进一步的研究Binder源码。
相关文章推荐
- android AIDL 总结
- Android AIDL运用总结
- Android工作实践总结:Aidl 远程调用(aidl实例总结)
- Android IPC - AIDL 学习总结
- Android远程服务三:android AIDL远程服务个人归纳总结
- Android AIDL的总结与介绍
- Android 基础总结:( 二十一)AIDL详解(下)
- Android IPC - AIDL 学习总结
- Android工作实践总结:Aidl 远程调用(aidl实例总结)
- Android 基础总结:( 二十)AIDL详解(上)
- [置顶] Android:IPC之AIDL的学习和总结
- 第一次使用Android AIDL总结
- 关于android AIDL的学习总结
- Android Service总结06 之AIDL
- Android aidl 使用总结
- android关于类在序列化以及AIDL中的若干总结点
- Android之AIDL知识总结
- Android Service总结06 之AIDL
- Android学习基础要点总结
- AIDL-AndRoid接口描述语言实现跨进程通讯