ServiceManager,SystemServer,SystemService,SystemServiceManager

1. ServiceManager

通过解析init.rc来启动ServiceManager


1)作为进程间通信binder机制中的重要角色,运行在native层,负责注册与提供服务
2)维护一个死循环,不断的查看是否有service的操作请求,如果有就读取相应的内核binder driver
3)维护一个缓存的Map
4)context.getSystemService方法获取的manager都是通过ServiceManager来获取bindr对象


2. SystemServer

SystemServer是Zygote调用forkSystemServer启动的第一个进程,system_server进程承载着整个framework的核心服务,例如: ActivityManagerService,PowerManagerService,DisplayManagerService,PackageManagerService,WindowManagerService,LauncherAppsService等80多个核心系统服务。这些服务以不同的线程方式存在于system_server

3. SystemService

SystemServer进程会创建并启动一系列SystemService的子类实例,这些子类实现了各种具体的服务功能,共同构建了Android系统的基础设施

构造方法:创建SystemService实例时初始化必要的成员变量和资源

生命周期管理:定义了系统服务的启动、停止、绑定和解除绑定等基本生命周期方法,如onStartCommand()、onBind()、onUnbind()等

服务注册与注销:系统服务在启动时需要注册到SystemServiceManager中,以便系统可以跟踪和管理所有运行的服务

服务间通信:SystemService通常会与其他系统服务进行交互,例如通过Binder机制与其他服务进行通信

资源和权限管理:SystemService可能还需要管理与服务相关的系统资源,并进行必要的权限检查

系统事件响应:SystemService类的子类可能需要响应系统发生的各种事件,例如系统启动、设备状态变化、用户交互等

4. SystemServiceManager 

SystemServiceManager 类用于创建和启动各种系统服务,并且这些系统服务必须是 com.android.server.SystemService 的子类。除此之外,它还支持系统服务启动状态的通知及处理。用户使用方法 startBootPhase 来发送并告知通过 SystemService 启动的服务当前系统的启动阶段

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值