framework层中系统服务要么直接extend SystemService,要么创建静态内部类Lifcycle extends SystemService,接下来详细介绍下SystemService类,千万不要和SystemServer类搞混了。
SystemService是frameworks/base/services/core/java/com/android/server/SystemService.java。
目录
3. publishBinderService(String name, IBinder service)
4. getBinderService(String name)
5. publishLocalService(Class type, T service)
6. getLocalService(Class type)
一、SystemService概述
它是运行在系统进程中的service的基类,根据需要override和implement生命周期事件回调方法。
SystemService的生命周期方法如下:下边的方法都是由system service的主线程调用。
1.构造函数
用来提供初始化系统service;
2.onStart()
调用该方法启动service。在onStart()中应该调用publicBinderService(String,IBinder),把该service公开,这样其他service或者apps可以访问到它。
3.onBootPhase(int)
在收到PHASE_BOOT_COMPLETED的boot phase之前,该方法被调用的次数和引导阶段的次数一样多。每个阶段都是执行特定work,像获取可选的服务依赖,等待查看SafeMode是否使能,或者注册一个该服务之后启动的service。
Android 12支持的Boot_Phase包含7种,分别为

SystemService是Android系统服务的基础类,它定义了系统服务的生命周期方法,如onStart()和onBootPhase(intphase)。在onBootPhase中,服务会根据系统的启动阶段执行相应工作,如等待显示准备、锁设置就绪等。服务可以通过publishBinderService公开,以便其他组件访问。此外,还可以使用publishLocalService和getLocalService管理本地服务。isSafeMode()方法则用于检查是否处于安全模式。

1319

被折叠的 条评论
为什么被折叠?



