android AIDL 总结

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源码。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值