EasyMessenger直达Github项目地址一款用于Android平台的基于Binder的进程间通信库,采用annotationProcessor生成IPC通信需要的代码。EasyMessenger相对于AIDL具备如下优势:采用Java声明接口,更方便接口方法支持重载同时支持同步和异步通信EasyMessenger目前支持如下数据类型:boolean, byte, char, short, int, long, float, doubleboolean[], byte[], char[], int[], long[], float[], double[]String, String[]Parcelable, Parcelable[]SerializableArrayListenum(需要实现parcelable)下载implementation ‘cn.zmy:easymessenger-lib:0.1’annotationProcessor ‘cn.zmy:easymessenger-compilier:0.1’开始使用Client声明接口:@BinderClientpublic interface ClientInterface{ int add(int num1, int num2);}build之后,会生成ClientInterfaceHelper类,开发者也正是通过这个Helper类进行IPC通信。//使用之前需要初始化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) { //调用失败 }});Server实现接口:@BinderServerpublic class FunctionImpl{ //必须是pubic //方法名称、参数数量、类型、顺序必须和client的接口一致 public int add(int num1, int num2) { }}build之后会生成FunctionImplBinder,将这个Binder和Service绑定:public class ServerService extends Service{ @Override public IBinder onBind(Intent intent) { return new FunctionImplBinder(new FunctionImpl()); }}直达Github项目地址欢迎关注我的博客