美文网首页
Android ServiceManager

Android ServiceManager

作者: 周_0717 | 来源:发表于2020-02-18 21:26 被阅读0次

            ServiceManager在init进程启动之后启动,用来管理系统中的service注册、查找、通讯等。

            1、注册:首先会检查是否有权限注册service,如果没有权限就直接返回不能注册;然后去检查该service是否已经注册过了,如果已经注册过,那就不能再注册;再判断内存是否够用。如果都没有问题,就会注册该service,加入到svcList中来,(在servicemanager中维护service信息的地方就是svcList,里面存了service的name和handler)。

            2、查找:通过name从svcList找到对应等service,返回对应的handler

            3、通讯:ServiceManager以类似Loop的工作方式不断从Binder设备中读取消息,发送给对应的service;若没有消息,则会进入等待状态,等待新消息到来再被激活;由于每个App只能打开一次Binder设备,做一次内存映射,所有需要使用binder驱动的线程共享这一资源,即共享同一个ServiceManager。

    相关文章

      网友评论

          本文标题:Android ServiceManager

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