Binder 理解 专栏 (二):进程源码之驱动分析

28 阅读1分钟

服务三大件:服务注册、服务发现、服务调用。

系统服务三大件演示

  • 服务指的是可以提供的服务,就是一些可执行的方法不是 Android理解上的Service。
  • SystemServer是由Zygote孵化出来的一个进程也不是 Android理解上的Service
  • 服务注册:SystemServer上的服务通过Binder注册到service_manager中。 需要注册class用于查找到对应的class、注册方法 缓存中心缓存class、缓存class内的方法、缓存对象(对象可以在使用的时候在进行注册) 系统服务AMS\PMS\WMS等都是创建SystemService后立马注册的
  • 服务发现 用户通过Binder调用service_manager查找到对应注册的服务
  • 服务调用 找到服务后service_manager 通过binder调用SystemServer中的对应服务。

image.png 驱动加载 SystemService 进程负责启动相关服务,并且将服务注册到他的叔叔进程 Service_manager进程中。 image.png

image.png