activity启动流程源码分析

由于电脑过老的原因,下载新的SDK比较麻烦,下面内容基于API25源码进行分析。

  1. activity启动过程其实也是跨进程通信的典型例子,通过在SystemServer进程下的AndroidManagerService来告诉zygote开启应用进程ActivityThread,ActivityThread也就是我们说的应用主进程,生命周期各个状态都是通过ActivityThread来控制的。
  2. AMS有一个重要功能就是管理app的进程,负责通知zygote开启应用进程
  3. ActiveThread是每一个应用程序所在进程的主线程,循环的消息处理;

进程分类:

前台进程:官方解释如下,满足下面5中情况任意一种即是前台进程,当前处于前台的activity正在与用户交互;与activity绑定的服务正在与用户交互;服务调用startForeground之后;服务执行生命周期中的onCreate,onStart,onDestroy;广播执行onReceive

这里写图片描述

可见进程:能被用户看到的,但是不可以交互的,比如activity中弹出对话框

这里写图片描述

服务进程:一个拥有后台运行service的进程

这里写图片描述

后台进程:一个带有activity的进程进入后台,onStop被执行,即为后台进程

这里写图片描述

空进程:内部没有任何组件,作用就是作为缓存数据,应用下次启动的时候能加快启动速度

这里写图片描述

 activity启动源码流程:

以上启动流程图画的比较简陋达到效果就可以了,有问题多多指出。

猜你喜欢

转载自blog.csdn.net/liangtianmeng/article/details/82429046