Application启动流程

先对整体有了一个基本的认识之后,再去看细节

谈到Android Application的启动流程,很多文章都是各种源码类和方法的一堆调用关系,这样的文章就算看一百遍,也只是云里雾里。源码得看,但是最好不要一下子深陷到源码的细节之中,不可自拔。这里站在前人的基础之上做一个总结。

在说应用的启动流程之前,得先了解一下Android系统的启动流程,因为Application的启动是离不开系统的处理的。

Android系统的启动流程
  1. BootLoader启动内核和init进程;

  2. init进程分裂出过个守护进程,如Android Debug Damon,USB Damon,这些守护进程会处理一些与硬件相关的接口;

  3. init进程启动一个Zygote进程

    Zygote进程初始化了第一个VM,并预加载了Framework和一些通用资源。
    zygote进程会开启一个Socket接口,用来监听请求。一旦收到请求,Zygote会基于自身预先加载的VM来孵化一个新的VM,并创建一个新的进程。

  4. 启动Zygote之后,init进程会启动Runtime进程。Zygote会孵化出一个超级管理进程-System Server。System Server 会启动所有系统核心的服务,如Activity Manager Service以及硬件相关的Service。

5.这个时候就开始准备启动它的第一个App进程-Home进程了。

Android系统已经启动完毕,一些核心的服务也已经启动完毕,然后启动Launcher应用,那么什么时候启动应用的进程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值