美文网首页
四大组件工作过程

四大组件工作过程

作者: carlwu_186 | 来源:发表于2022-06-07 14:23 被阅读0次

Activity的启动过程

image.png

图中相关模块的作用

ActivityThread

可以把它理解为应用运行的主线类,它的主要功能有:

包含了应用的入口 : main()

这个函数主要做了下面工作:

  1. 利用ApplicationThread建立了应用与AMS的链接。
  2. 构造了Instrumentation。
  3. 创建了应用的Application。
  4. 开启了主线程的消息处理模型。
管理应用四大组件的运行

ApplicationThread

它是应用程序在AMS中的Binder对象,AMS利用它可以和ActivityThread通信,四大组件相关回调都是通过它来告诉ActivityThread的。

Instrumentation

这个类伴随着ActivityThread一块诞生,主要用来帮助ActivityThread来管理Activity相关工作。它持有着AMS在应用端的Binder,ActivityThread主要通过它来和AMS通信。

ActivityManagerService

它是Android最核心的服务,主要管理着Android系统中四大组件的运行,

ActivityStackSupervisor

负责所有Activity栈的管理。内部管理了mHomeStack、mFocusedStack和mLastFocusedStack三个Activity栈。其中,mHomeStack管理的是Launcher相关的Activity栈;mFocusedStack管理的是当前显示在前台Activity的Activity栈;mLastFocusedStack管理的是上一次显示在前台Activity的Activity栈。

ClientLifecycleManager

帮助AMS回调应用程序四大组件生命周期相关方法。

android系统启动过程

Boot Loader↓
Linux init.rc↓
Zygote
---- main() ↓
---- new SystemServer().run() ↓
SystemServer
---- mActivityManagerService = new SystemServiceManager().startService(ActivityManagerService) ↓//创建AMS
---- mActivityManagerService.setSystemProcess()//将SystemServer进程可加到AMS中调度管理

  • AMS创建过程 涉及到Android 四大组件管理的初始化:
        Broadcast --》BroadcastQueue
        Provider --》ProviderMap
        Service --》ActiveServices
        Activity --》ActivityStackSupervisor


    image.png

相关文章

网友评论

      本文标题:四大组件工作过程

      本文链接:https://www.haomeiwen.com/subject/qcutdrtx.html