由于电脑过老的原因,下载新的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启动流程源码分析

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

activity启动流程源码分析

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

activity启动流程源码分析

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

activity启动流程源码分析

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

activity启动流程源码分析

 activity启动源码流程:

activity启动流程源码分析

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

相关文章:

  • 2020-09-29
  • 2018-08-31
  • 2021-09-08
  • 2021-04-06
  • 2021-11-16
  • 2021-12-02
  • 2021-05-10
  • 2021-08-05
猜你喜欢
  • 2020-07-07
  • 2021-11-13
  • 2020-01-08
  • 2021-10-15
  • 2021-10-04
  • 2021-05-19
  • 2021-10-19
相关资源
相似解决方案