AMS启动和应用

作者: flynnny | 来源:发表于2021-02-20 22:51 被阅读0次

Android面试季必问——AMS的核心原理 系列
Android启动流程 https://www.jianshu.com/p/f66f639c59d3
AMS启动和应用 https://www.jianshu.com/p/8f0d372b0a34
Activity启动流程 https://www.jianshu.com/p/53d63374619d

AMS启动

四大组件启动、平时的命令服务都来源于AMS。

还是从开机开始:

1.png

Zygote进程启动:

2.png

App由Zygote拉起,Zygote先孵化出system server(第一个)拉起各种服务包括launch桌面服务,最后由AMS启动桌面服务。

AMS由SystemServer拉起!

*面试问题:App为什么从zygote 中创建进程,为什么不从init->zygote->system_server中的 init或System_service中创建?
1,init时耗时,加载虚拟机,预加载类文件。等耗时操作。
2,system_server要创建大量服务(80左右),app不需要。

在SS中 的run方法里有如下引导服务步骤启动AMS:

3.png 4.png

AMS启动经历了哪一些过程:

SS中:

5.png

他调用了一个mSystemServiceManager;
*这个类和Service_manager容易混淆。
Service_manager管理的是Binder相关的服务。
SystemServiceManager;是系统相关的服务。

6.png

SystemServicer把启动分为了不同的阶段(因为启动时间太长了,下面的服务需要上面的服务启动完毕)

7.png

回到SS中 创建mActivityManagerService传了一个
mActivityManagerService.Lifecycle.class对象,通过反射把service创建。

mActivityManagerService.Lifecycle是AMS的静态内部类

8.png

AMS启动中都干了些什么

部分代码:

9.png

重要的有:mUiHandler(ui主线程)、mProcessStats(应用进程信息)、mStackSupervisor(任务栈管理,管理activity栈)、mLifecycleManager(Activity启动时用到,下一节)、Watchdog(看门狗。守护进程)、updateOomAdjLocked()(此方法跟进程保活相关)

AMS创建之后哪里用到了

回到开始图片

10.png

设置安装程序的安装器installer

11.png 12.png

在这里,把上面服务加到ServiceManager中管理,供我们使用。

相关文章

  • Android应用启动、退出分析

    §AMS和应用进程§应用启动流程§应用退出流程§启动、退出消息 AMS和应用进程 应用进程 <- 系统管理 <- ...

  • AMS

    AMS 是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要 AMS 的支持。 AMS 的启动...

  • AMS启动和应用

    Android面试季必问——AMS的核心原理 系列Android启动流程 https://www.jianshu...

  • 字节跳动Android Framework高频面试题总结之( A

    1.概述AMS的原理? AMS是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS的支持...

  • Android四大组件的工作过程

    一、Activity启动过程 应用冷启动过程: Launcher进程通过Binder机制通知AMS创建应用 AMS...

  • Android系统服务

    AMS是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS的支持。 官方把系统服务分为了...

  • Android应用程序启动分析

    概述 启动一个应用程序要通过AMS,而AMS在启动应用程序时,会先判断该应用程序所需要的进程是否存在,若不存在,则...

  • 应用程序进程启动介绍

    AMS发送启动应用程序进程请求 Zygote接受请求并创建应用程序进程 AMS与Zygote之间是通过socket...

  • Framework之AMS启动流程,简单上手!

    一、AMS介绍 AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调...

  • ANR问题解析(一):AMS系统时间调节原理

    AMS提供的主要功能: 统一调度各个应用程序的Activity。 应用程序需要启动Activity–>报告给AMS...

网友评论

    本文标题:AMS启动和应用

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