【android话题-4.1Activity】说说Actvity的启动流程

考察内容:

  • 启动Activity会经历哪些生命周期回调
  • 冷启动大致流程,涉及哪些组件,通信过程是怎么样的?
  • Activity启动过程中,生命周期回调的原理?

应用端Activity启动的步骤

在这里插入图片描述

  • 通过ClassLoader加载APK里面的Activity类,生成Activity对象;
  • 准备好Application(并非创建,而是把之前创建好的Application返回);
  • 创建ContextImpl
  • attach上下文(不单是context,还包括与Application运行相关的重要系统变量);
  • 生命周期回调

Activity启动过程中涉及的组件间通信过程

在这里插入图片描述

  • 需要向AMS发送startActivity请求;
  • AMS如果发现应用进程没启动就会通过socket向zygote发送启动进程请求;
  • zygote收到请求后就会启动进程;
  • 应用启动后会向AMS发起attachApplication的IPC调用(注册应用里的applicationThread);
  • AMS向应用发起bindApplication的IPC调用(给应用初始化application);
  • AMS再向应用发起scheduleLaunchActivity的IPC调用(给应用加载和创建Activity并执行Activity生命周期);

回归:说说Activity的启动流程

  • 启动Activity要向AMS发起biner调用
  • Activity所在进程是怎么启动的?
  • 应用Activity的生命周期是怎么回调的?
发布了106 篇原创文章 · 获赞 27 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/menghaocheng/article/details/104352646