什么情况下Zygote进程会重启呢?一般来说,出现这四种情况就会导致Zygote进程会重启。
(1)servicemanager 进 程 被 杀: 当servicemanager进程被杀死时,会触发Zygote进程重启。这是因为servicemanager是最先启动的,Zygote再启动,最后启 动systemServer。启动顺序决定了进程的依赖性。启动Zygote的目的,就是为了启动systemServer进程。systemserver中service都需要连接servicemanager,所以servicemanager先启动。servicemanager只有一个功能就是提供binder通讯服务。因此,当servicemanager进程被杀死时,systemserver将杀死自身,从而导致Zygote被重启。
(2)(onresart)surfaceflinger 进 程 被 杀 ;
(3)(onresart)Zygote 进 程 自 己 被 杀 ;
(4)(oneshot=false)system_server进程被杀; (waitpid)

Zygote进程是所有应用程序进程的父进程。它负责启动和管理许多关键系统服务,包括surfaceflinger和servicemanager。当这些关键系统服务之一崩溃或被杀死时,Zygote进程会重启以确保系统的稳定性。这就是为什么当surfaceflinger进程被杀死时,Zygote进程也会重启的原因。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐