android Activity 的生命周期和Activity的启动简单介绍

典型状态下的生命周期分析

异常状况下的生命周期分析

Activity的启动过程:



zygote 分裂出嫡长子 system_server后,就通过runSelectLoopMode 等待并处理来自客户的消息了,那么,谁会向zygote 发送消息呢?这里以一个 Activity 的启动为例,具体分析zygote 是如何分裂和繁殖的。


ActivityManagerService 也是由 SystemServer 创建的。 假设通过 startActivity 来启动一个新的 Activity,而这个 Activity 附属于一个还未启动的进程,那么这个进程该如何启动呢?继续上图,结合上一张图


总结:总结起来就是 init 进程创建了 zygote 进程zygote进程 进行了一些初始化之后便创建了 SystemServer 进程,之后便 zygote进程调用了 runSelectLoopMode() 函数等待请求,SystemServer 进程创建了 Android 系统的服务,其中ActivityManagerService(简称AMS)是 Android 中最核心的服务,主要负责系统中四大组件的启动、 切换、 调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块类似。Activity 的启动便是由 AMS 向 zygote进程发起消息(这个说法并不精确由于 AMS 运行在 SystemServer 进程中,所以其本质还是由SystemServer 进程向 zygote 进程发起消息)。如上图


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值