美文网首页
IPC、Binder机制

IPC、Binder机制

作者: carlwu_186 | 来源:发表于2022-06-06 11:46 被阅读0次
  • 开启进程的方式:使用 android:process 。进程名以":"开头的进程属于当前应用的私有进程。
  • 多进程会照成几个方面的问题:静态成员和单例模式完全失效、线程同步机制完全失效、SharedPreferences的可靠性下降、Application会多次创建。
  • Serializable的serialVersionUID的作用是反序列化时比对类版本用的,如果序列化的文件中的serialVersionUID和当前类的serialVersionUID不一致,说明当前了和序列化时的类发生了某些变化,反序列化时就会报错。
  • onTransact方法运行在服务端中的Binder线程池中,如果此方法返回false,那么客户端的请求会失败,因此可以利用这个特性来做权限验证。
  • Binder的工作机制,客户端发起远程请求时,当前线程会被挂起直至服务器进程返回数据。
  • 服务端的Binder方法运行在Binder的线程池中,所以Binder方法不管是否耗时都应该采用同步的方式实现。
  • Android系统对SharedPreferences的读/写有一定的缓存策略,在内存中会有一份SharedPreferences文件的缓存,因此在多线程模式下,系统对它的读/写就变得不可靠。
  • AIDL的方式可以支持在服务端中调用客户端的回调函数和客户端通信:提供一个AIDL接口,在接口中定义回调函数,每个用户都需要实现这个接口。在服务端中使用RemoteCallbackList的register或unregister接收客户端的回调对象。遍历RemoteCallbackList时必须配对使用beginBroadcast和finishBroadcast。
  • 客户端的listener方法运行在客户端的Binder线程池中。因此服务端在调用客户端的listener方法要注意不能在UI线程中调用。
  • 客户端的onServiceConnected和onServiceDisconnected方法运行在UI线程中。
  • Binder的linkToDeath和unlinkToDeath给Binder设置死亡代理,当Binder死亡的时候可以收到通知。onServiceDisconnected方法也可以感知Binder的意外死亡。binderDied运行在客户端的Binder线程池中,onServiceDisconnected运行在客户端的UI线程中。
  • AIDL的权限验证:在onBind或onTransact方法中验证。验证方法可以用permission、包名。
  • 当有多个业务模块的AIDL文件时,服务端可以只提供一个Service,暴露queryBinder接口根据业务模块返回相应的Binder对象给客户端。使用的是Binder连接池,AIDL 文件是:
interface IBinderPool {
  IBinder queryBinder(int binderCode)
}
  • Messenger适用于低并发的一对多即时通讯,无RPC需求,或者无须返回结果的RPC需求。


    整个Binder模型的原理步骤 & 源码分析

相关文章

  • Binder 总结

    什么是binder binder是Android 中的一种进程间通信机制(IPC机制) binder 为什么会出现...

  • Android IPC机制详解(一)

    本文主要从以下几个方面来介绍IPC机制1、什么是IPC2、Binder机制原理3、AIDL实现 一、什么是IPC ...

  • Android IPC之Binder机制分析

    原文链接: ---Android IPC之Binder机制分析--- 更多精彩请点击:AIDL实现IPC详解---...

  • Binder进程间通信机制

    一、Binder是什么 Binder是android中用于进程间通信IPC的重要机制。 Binder架构包括服务器...

  • Android进阶:Binder机制、AIDL进程通信学习(模拟

    目录 Binder是什么? 从面向对象的思想看 Binder IPC 进程空间的划分 Binder机制是如何跨进程...

  • Android四大组件-Service工作过程

    一.前言 通过上篇IPC之Binder连接池机制Binder连接池机制,我们知道通过bindService方法能完...

  • Binder总结分析_应用层

    Binder总结分析_native层 Binder是Android系统提供的一种IPC机制(Inter-Proce...

  • IPC机制 Binder

    引言 Binder是Android系统中最重要的特性之一。正如其名“粘合剂”,它是粘合系统间各个组件的桥梁,And...

  • IPC、Binder机制

    开启进程的方式:使用 android:process 。进程名以":"开头的进程属于当前应用的私有进程。 多进程会...

  • Binder机制

    Binder 在理解Binder机制之前,需要知道Binder是做什么的,在进程之间通信称作IPC,那么Binde...

网友评论

      本文标题:IPC、Binder机制

      本文链接:https://www.haomeiwen.com/subject/dbszkrtx.html