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,绑定定义好的服务端的服务,就可以调用服务接口中定义的方法,实现进程间的通信。

以上总结的并不完善,待继续研究之后在再补充。

你可能感兴趣的:(android)