Android---进程间通机制的简单理解
Android进程间的通信通过轻量级的RPC(Remote Procedure Call远程进程调用)和ADIL(Android Interface Definination Language Android接口定义语言)规范实现的。
Android通过自己的接口定义语言,使用户很方便地定义出一个接口作为规范,通过一个远程Service为代理 ,客户端在绑定该远程Service过程中获取远程对象,进而使用该对象。
首先使用AIDL语言定义服务接口,其扩展名为.aidl,该文件会被自动译成同名的Java文件,存放在gen目录下,用户不能对该文件进行修改,如:
package com.demo.service;//包的声明
interface ITestService{
String getSome(String str);
}
该文件定义的接口和Java中定义接口的方式类似,然后在定义服务组件用以实现服务接口
public class TestService extends Service{
private final ITestService.stub mBind = new ITestService.stub(){
public String getSome(String str) throws RemoteExcption{
return "Hello";
}
};//定义内部类,实现了服务接口的子类,通过stub方法,在gen目录下自动生成的服务接口的Java文件中可以找到stub
@override
public IBinder onBind(Intent intent){
super.onBind(intent);
}
}
最后编写客户端Activity,绑定定义好的服务端的服务,就可以调用服务接口中定义的方法,实现进程间的通信。
以上总结的并不完善,待继续研究之后在再补充。