关于跨进程通信AIDL的一些总结

在android系统中,跨进程通信依赖Binder机制,上层使用时只需使用AIDL语言,定义接口调用、数据传递。

还可以使用kotlin 高阶函数优化调用,

例如:

private val mListenerList=RemoteCallbackList<IOnBusChangeListener>()

private inline fun remoteCall(call:IOnBusChanageListener.()->Unit){

  val num=mListenerList.beginBroadcast()

  for (i in 0 until num){

    val listener:IOnBusChangeListener = mListenerList.getBroadcastItem(i)

    call.invoke(listener)

   }

  mListenerList.finshBroadcast()

}

有了如上对跨进程调用的封装,我们就可以少写很多代码,使得逻辑更加简洁易读,

调用:

  remoteCall{

  ......  

  }

原文地址:https://www.cnblogs.com/lzh-Linux/p/14102733.html