ActivityManagerService简称AMS,负责管理四大组件的生命周期以及应用程序进程调度,其中Activity相关实际上由ATMS负责。它有自己的IActivityManager.aidl、ActivityManagerInternal,属于server/am目录下。 ActivityTaskManagerService简称ATMS,负责管理Activities和Activity相关容器(Task,Stacks,Display),也有自己的IActivi...
具体过程 1.ActivityTaskManagerService->ActivityStarter frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java ActivityTaskManagerService执行startActivity方法最终获取到ActivityStarter,ActivityStarter对启动activity的相关参数进行了赋值,最终执行execute方法 publicfinalintstartActivity(IAppli...
从栈的角度来说(Activity任务栈是一个假想的模型),一个或多个ActivityRecord会组成一个TaskRecord,TaskRecord用来记录Activity的栈,而ActivityStack包含了一个或多个TaskRecord。 1.4 维护的ArrayList ActivityStack中维护了很多ArrayList,这些ArrayList中的元素类型主要有ActivityRecord和TaskRecord,其中TaskRecord用来记录Activi...
TaskManagerService通过ActivityTaskManager来实现对Task的调度和管理。 三、ActivityTaskManager的架构 ActivityTaskManager是Android系统中Task管理的核心类,它位于android.app包中。ActivityTaskManager的主要职责是维护一个Task列表,这些Task代表了应用程序中当前运行的Activity。ATM(ActivityTaskManager)通过与TaskStackManager(TSM)...
在之前的Android SystemServer启动(二)中,分析到在SystemServer中会启动大量的Service,其中就有一个比较特殊的Service,它就是ActivityManagerService。 今天我们就来了解一下ActivityManageerService的启动,下面都将其简称为AMS。 启动AMS AMS的启动发生在SystemServer启动过程中的BootPhase 0阶段。
摘要:上一节讲解了SystemServer的架构、启动流程以及被Zygote 进程fork的流程,这一节重点讲解ActivityManagerService -AMS 服务是如何启动的。 1.概述 上一节我们讲完了SystemServer的启动过程,这一节接着上一节的步骤,来讲解ActivityManagerService的启动过程。ActivityManagerService简称AMS,具有管理Activity行为、控制acti...
frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java View Code 1.1 ActivityStack的实例类型 ActivityStackSupervisor中有多种ActivityStack实例,如下所示。 frameworks/base/services/core/java/com/android/server/am/ActivityStackSupervisor.java ...
ActivityManagerService管理着Activity,Task和应用程序进程。三者在AMS中的表现形式分别为:ActivityRecord,TaskRecord,ProcessRecord。这三者的关系如下图所示: 从图中可以看出,AMS是按层次关系进行管理所有的Activity的。 (1) ActivityStackSupervisor的成员mStacks是AMS管理层次的顶层,类型为ArrayList<ActivityStack>,它只包含...
publicActivityManagerService(Context systemContext) { ... mStackSupervisor=newActivityStackSupervisor(this); ... } 1. 2. 3. 4. 5. View Code 1.1 ActivityStack的实例类型 ActivityStackSupervisor中有多种ActivityStack实例,如下所示。 frameworks/base/services/core/java/com/android/server/am/ActivityStac...
在之前的Android SystemServer启动(二)中,分析到在SystemServer中会启动大量的Service,其中就有一个比较特殊的Service,它就是ActivityManagerService。 今天我们就来了解一下ActivityManageerService的启动,下面都将其简称为AMS。 启动AMS AMS的启动发生在SystemServer启动过程中的BootPhase 0阶段。