直达Github项目地址java
一款用于Android平台的基于Binder的进程间通讯库,采用annotationProcessor
生成IPC通讯须要的代码。EasyMessenger
相对于AIDL
具有以下优点:git
EasyMessenger
目前支持以下数据类型:github
implementation 'cn.zmy:easymessenger-lib:0.1' annotationProcessor 'cn.zmy:easymessenger-compilier:0.1'
声明接口:异步
@BinderClient public interface ClientInterface { int add(int num1, int num2); }
build以后,会生成ClientInterfaceHelper
类,开发者也正是经过这个Helper类进行IPC通讯。ide
//使用以前须要初始化 ClientInterfaceHelper.instance.__init(context, new ComponentName("{server_package}", "{server_service_name}")); //同步IPC调用 int result = ClientInterfaceHelper.instance.add(1, 2); //异步IPC调用 ClientInterfaceHelper.instance.addAsync(1, 2, new IntCallback() { @Override public void onSuccess(int result) { //调用成功 } @Override public void onError(Exception ex) { //调用失败 } });
实现接口:ui
@BinderServer public class FunctionImpl { //必须是pubic //方法名称、参数数量、类型、顺序必须和client的接口一致 public int add(int num1, int num2) { } }
build以后会生成FunctionImplBinder
,将这个Binder和Service绑定:code
public class ServerService extends Service { @Override public IBinder onBind(Intent intent) { return new FunctionImplBinder(new FunctionImpl()); } }
直达Github项目地址server
欢迎关注个人博客接口