Android AMS
文章平均质量分 84
一个学渣的自我救赎
这个作者很懒,什么都没留下…
展开
-
Android ActivityManagerService
ActivityManager是一个系统级别的管理者,主要负责管理和监控所有正在运行的组件(包括Activity、Service、BroadcastReceiver等),并为应用程序提供一些基本的系统服务。它负责调度资源、管理进程、监控应用程序的状态等工作,被视为Android系统中最重要的服务之一。原创 2024-05-04 10:48:02 · 880 阅读 · 0 评论 -
Android13 ActivityTaskSupervisor realStartActivityLocked流程分析
ActivityTaskSupervisor的realStartActivityLocked方法用于启动活动,函数的名字翻译是真正的开始活动已锁定,这回真是开始启动活动了吗。。。这个流程简直了这个方法中又调用了 ActivityThread 的 scheduleTransaction。上面方法主要处理如下:1、调用TransactionExecutor的executeCallbacks方法。2、调用TransactionExecutor的executeLifecycleState方法。原创 2024-05-04 14:21:32 · 911 阅读 · 0 评论 -
Android13 ActivityThread handleLaunchActivity流程分析
在 handleLaunchActivity 方法中首先去初始化了 WindowManagerGlobal,紧接着调用了 performLaunchActivity 并返回了一个 Activity 实例,那么 Activity 的实例化必定是在 performLaunchActivity 中完成的。原创 2024-05-04 14:11:46 · 1010 阅读 · 0 评论 -
Android ActivityTaskSupervisor
ActivityTaskSupervisor是Android系统中的一个关键类,负责管理和调度Activity的任务栈。它是ActivityManagerService的一部分,负责处理Activity的启动、切换、关闭等操作。ActivityTaskSupervisor的主要功能包括:管理任务栈:ActivityTaskSupervisor维护了一个任务栈列表,每个任务栈包含多个Activity实例。它负责创建、销毁和管理任务栈,以及处理任务栈之间的切换。原创 2024-05-04 13:49:15 · 891 阅读 · 0 评论 -
Android ActivityTaskManagerService
ActivityTaskManagerService是Android系统中的一个服务,它位于server/wm目录下。它是在Android 10中引入的,主要负责管理activities和activity相关容器,如task、stacks和display。它是Android系统中的一个关键组件,用于管理和控制应用程序的生命周期、任务栈、窗口和显示等。原创 2024-05-04 13:42:21 · 660 阅读 · 0 评论 -
Android13 ActivityTaskManagerService启动流程分析
ActivityTaskManagerService由SystemServiceManager启动,启动流程如下:上面方法的主要处理如下:1、调用SystemServiceManager的startService方法,返回ActivityTaskManagerService.Lifecycle的对象。2、调用mSystemServiceManager.startService返回对象(ActivityTaskManagerService.Lifecycle)的getService方法。原创 2024-05-04 13:34:55 · 882 阅读 · 0 评论 -
Android13 ActivityTaskManagerService startActivity流程分析
如果需要启动的Activity在最近的任务栈中,并且并没有销毁。那么使用一个过渡动画,直接切换到要启动的Activity。如果没有走正常流程。getActivityStartController函数是获取一个ActivityStartController对象。原创 2024-05-04 12:17:53 · 746 阅读 · 0 评论 -
Android13 ActivityManagerService registerReceiverWithFeature流程分析
在AMS的registerReceiverWithFeature方法中首先获取ReceiverList集合,该集合用于存储广播接收器,然后再创建一个用于描述注册的广播接收器,并添加到ReceiverList中,最后将BroadcastFilter添加到mReceiverResolver中,这样AMS接收到广播时就可以从mReceiverResolver中找到对应的广播接收者。原创 2024-05-04 11:52:38 · 91 阅读 · 0 评论 -
Android13 ActivityManagerService broadcastIntentWithFeature流程分析
上面方法主要处理如下:1、调用queue(BroadcastQueue)的enqueueParallelBroadcastLocked方法,将该条广播记录到mParallelBroadcasts中(并行广播)。2、调用queue(BroadcastQueue)的enqueueOrderedBroadcastLocked方法,将该条广播记录到mOrderedBroadcasts中(有序广播)。原创 2024-05-04 11:49:19 · 598 阅读 · 0 评论 -
Android13 ActivityManagerService stopService流程分析
【代码】Android13 ActivityManagerService stopService流程分析。原创 2024-05-04 11:30:37 · 292 阅读 · 0 评论 -
Android13 ActivityManagerService bindServiceInstance流程分析
ActivityManagerService的bindServiceInstance用于绑定Service,流程如下:代码如下:调用重载方法:ActiveServices bindServiceLocked调用ActiveServices的bindServiceLocked方法:ActiveServices requestServiceBindingLocked调用requestServiceBindingLocked方法Bind服务:ApplicationThread sc原创 2024-05-04 11:24:12 · 301 阅读 · 0 评论 -
Android13 ActivityManagerService startProcessLocked流程分析
调用的是 LocalSocket.connect 方法。LocalSocket 是客户端(system_server 进程),与服务端(Zygote 进程)建立 Socket 连接,实现跨进程通讯。尝试使用兼容ABI打开Zygote进程的会话套接字(如果尚未打开)。如果兼容的会话套接字已打开,则返回该会话套接字。此功能可能会阻塞,可能必须尝试连接到多个Zygotes才能找到合适的Zygote。要求保持mLock。向服务端(Zygote 进程)发送启动应用程序进程的参数,后续在ZygoteInit中处理。原创 2024-05-04 11:13:17 · 867 阅读 · 0 评论 -
Android13 ActivityManagerService startService流程分析
ActivityManagerService的startService方法用于启动一个Service,流程如下:代码如下:ActiveServices startServiceLocked调用mServices(ActiveServices)的startServiceLocked方法:调用startServiceLocked方法:调用startServiceInnerLocked方法:调用startServiceInnerLocked方法:调用bringUpServiceL原创 2024-05-04 11:04:27 · 748 阅读 · 0 评论 -
Android13 ActivityManagerService 启动流程分析
ActivityManagerService由SystemServer启动,启动流程如下:AMS在SystemServer进程中启动。SystemServer.java中startBootstrapServices方法的执行过程:1.调用SystemServiceManager对象的startService方法,参数为ActivityManagerService.Lifecycle.class。返回Lifecycle对象,Lifecycle继承自SystemService。原创 2024-05-04 10:57:09 · 885 阅读 · 0 评论