zoukankan      html  css  js  c++  java
  • 零碎笔记之ServiceManager

    SM是开机的时候通过init.rc文件启动的,这就保证了它是系统中第一个注册成"服务大管家"的Service,所有的service服务都需要在SM中完成注册。
    ServiceManager.getService获取的对象是本地代理,映射到服务端Service调用

    作用:

    I.提供IBind对象,也就是各个service的引用,供每个进程使用,且对于每个进程来说,该Ibind对象是唯一的。

    II.让各个系统service注册到servicemanager中。

    在ServiceManager中有两个比较重要的方法:add_service和check_service,系统的service需要通过add_service把自己的信息注册到servicemanager中,当需要使用时,通过check_service检查该service是否存在

    ServiceManager完成三件事

    1. 打开Binder设备,并在内存中映射128k的空间

    2. 告诉Binder驱动程序,自己是Binder上下文管理者

    3. 进入循环,不停去读Binder设备,看是否有对service的请求,如果有的话就去调用svcmgr_handller函数回调处理请求。

  • 相关阅读:
    InitializingBean
    线程池
    maven
    mysql主从库
    zookeeper
    分布式服务框架 Zookeeper -- 管理分布式环境中的数据
    远程调试
    enum
    注解
    Shell错误[: missing `]'
  • 原文地址:https://www.cnblogs.com/krislight1105/p/9988958.html
Copyright © 2011-2022 走看看