Service的跨进程通信实战
设想这么一个场景,我们有2个APP(或者2个进程,均可),其中一个APP需要提供一个Person相关的服务(该服务有一个名为eat的接口),我们叫它PersonServer;另一个APP需要访问PersonServer提供的服务,我们叫它Client。也就是现在有2个APP,一个作为Server端,提供服务,另一个作为Client端,使用服务。
我们来看如何在Android中实现?
PersonServer端实现
PersonServer端是服务的提供者,我们首先需要创建一个Service来提供该服务,并且需要该服务具备跨进程通信的能力,以便Client端进行调用。
实现AIDL
跨进行,我们首先想到的是使用AIDL来实现接口的跨进程能力。
首先我们需要定义一个名为IPerson的AIDL接口,并提供eat方法:
package com.testaidl;
interface IPerson {
boolean eat(String food);
}
我们看到,IPerson的实现非常简单,我们使用I