首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

ActivityManagerService启动过程分析

之前讲Android的View的绘制原理和流程的时候,讲到过在Android调用setContentView之后,Android调用了一个prepreTravle的方法,这里面就提到了ActivityManagerService...ActivityManagerService提供的主要功能:        (1)统一调度各应用程序的Activity        (2)内存管理        (3)进程管理 上一篇我们分析Android...一、ActivityManagerService 创建过程 mActivityManagerService = mSystemServiceManager.startService(             ...ActivityManagerService.Lifecycle.class).getService(); 通过SystemServiceManager这样一个模板类来创建运行在SystemServer...public ActivityManagerService(Context systemContext) {    // 1.系统Context 和 ActivityThread

89780

Android之ActivityManagerService启动详解

ActivityManagerService,简称AMS,具有管理Activity行为、控制activity的生命周期、派发消息事件、内存管理等功能,AMS的另外两个重要概念是两大核心功能是WindowManagerService.java...分析ActivityManagerService的流程之前需要先下载Android的系统源码,相关下载可以参照下面的文章:中国大陆如何下载 Android 源码 用户从Launcher程序点击应用图标可启动应用的入口...具体的,用户在Launcher程序里点击应用图标时,会通知ActivityManagerService启动应用的主Activity,ActivityManagerService发现这个应用还未启动,则会通知...应用进程接下来通知ActivityManagerService应用进程已启动,ActivityManagerService保存应用进程的一个代理对象,这样ActivityManagerService可以通过这个代理对象控制应用进程...,然后ActivityManagerService通知应用进程创建主Activity的实例,并执行它的生命周期方法,也就是诸如OnCreadte()等方法。

25320

Android源码解读-App启动过程

WX20220113-105541.png 整个应用程序的启动过程复杂,主要分为以下五个阶段: 一.Launcher通过Binder进程间通信机制通知ActivityManagerService...,它要启动一个Activity; 二.ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态; 三....Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,于是ActivityManagerService就创建一个新的进程,用来启动一个...Activity就是在这个ActivityThread实例中运行; 四.ActivityThread通过Binder进程间通信机制将一个ApplicationThread类型的Binder对象传递给ActivityManagerService...,以便以后ActivityManagerService能够通过这个Binder对象和它进行通信; 五.ActivityManagerService通过Binder进程间通信机制通知ActivityThread

41111

【Android 启动过程】Android 应用启动流程 | Activity 启动流程

Zygote ( 受精卵 ) 进程 , Zygote 进程会调用 system_server 进程 , system_server 进程 会拉起 PackageManagerService 进程 和 ActivityManagerService...进程 , ActivityManagerService 进程 会启动 Launcher 应用 ; Launcher 应用就是界面中显示各个应用图标的应用 , 就是 Android 的桌面应用 ; Framework...个阶段 , 以 Activity A 中启动 Activity B 为例 : 阶段 1 : Activity A 请求 Android System Service ( 系统服务 ) , 具体指的是 ActivityManagerService...ActivityThread 中的相关代码创建 Activity B ; 阶段 3 : 在应用 ActivityThread 主线程中 , 启动 Activity B 页面 ; 简要流程 : Activity A -> ActivityManagerService...Launcher 应用中启动 Activity 示例 : 在 Launcher 应用中 , 调用 startActivity() 方法启动 Activity , 首先获取 system_server 进程中的 ActivityManagerService

3.8K10

Android四大组件Broadcast中注册广播registerReceiver流程源代码详解

ActivityManagerService在收到相应的广播时,就是通过这个Binder对象来通知MainActivity来接收的。...ActivityManagerService.registerReceiver 这个函数实现在frameworks/base/services/java/com/android/server.../am/ActivityManagerService.java文件中: public final class ActivityManagerService extends ActivityManagerNative...这就是为什么叫做Sticky Intent了,这个最后发出的广播虽然被处理完了,但是仍然被粘住在ActivityManagerService中,以便下一个注册相应Action类型的广播接收器还能继承处理...接着,又把这个ReceiverList列表以receiver为Key值保存在ActivityManagerService的成员变量mRegisteredReceivers中,这些都是为了方便在收到广播时

44230

Android 四大组件之一:BroadCastReceiver动态注册广播流程

这就是为什么叫做Sticky Intent了,这个最后发出的广播虽然被处理完了,但是仍然被粘住在ActivityManagerService中,以便下一个注册相应Action类型的广播接收器还能继承处理...❞ 广播发送流程 ❝ 广播的发送者将广播发送到ActivityManagerServiceActivityManagerService接收到这个广播以后,就会在自己的注册中心查看有哪些广播接收器订阅了该广播...,然后把这个广播逐一发送到这些广播接收器中,但是ActivityManagerService并不等待广播接收器处理这些广播就返回了,因此,广播的发送和处理是异步的。...概括来说,广播的发送路径就是从发送者到ActivityManagerService,再从ActivityManagerService到接收者,这中间的两个过程都是通过Binder进程间通信机制来完成的...❝ 这里的mBroadcastsScheduled表示ActivityManagerService当前是不是正在处理其它广播,如果是的话,这里就先不处理直接返回了,保证所有广播串行处理。

63130

Android Framework学习(三)之SyetemServer进程启动解析

android framework进程启动流程如下: init进程 –> Zygote进程 –> SystemServer进程 –>各种应用进程 SystemServer进程主要的作用是启动各种系统服务,比如ActivityManagerService...ActivityManagerService是系统中一个非常重要的服务,Activity,service,Broadcast,contentProvider都需要通过其余系统交互。...getService() { return mService; } } 可以发现Lifecycle是ActivityManagerService是的一个静态内部类...,在其构造方法中会创建一个ActivityManagerService,通过刚刚对Installer服务的分析我们知道,SystemServiceManager的startService方法会调用服务的...的引用,所以我们可以看一下ActivityManagerService的start方法的实现: private void start() { Process.removeAllProcessGroups

35920

浅谈android性能优化之启动过程(冷启动和热启动)

服务进程(Service也是由ActivityManagerService进程来启动的);在Android应用程序框架层中,ActivityManagerService是一个非常重要的接口, 它不但负责启动...进程中,并且调用ActivityManagerService.startActivity接口; Step 2....ActivityManagerService调用ActivityStack.startActivityMayWait来做准备要启动的Activity的相关信息; Step 3....ApplicationThread不执行真正的启动操作,它通过调用ActivityManagerService.activityPaused接口进入到ActivityManagerService进程中,...对于通过点击应用程序图标来启动Activity的情景来说,ActivityManagerService在这一步中,会调用startProcessLocked来创建一个新的进程,而对于通过在Activity

2.7K31
领券