首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android进阶解密:探访AMS家族

Android 7.0和Android 8.0对于AMS相关部分的处理有较大的区别,为了更好地理解AMS家族,这里将分别介绍Android 7.0和Android 8.0的AMS家族。...Android 8.0的AMS家族 Android 8.0的AMS家族与Android 7.0有一些区别,为了更好地理解这些区别,我们仍旧以Activity启动过程来举例,只不过现在系统版本是Android...采用AIDL后就不需要使用AMS的代理类AMP了,因此Android 8.0去掉了AMP,代替它的是IActivityManager,它是AMS在本地的代理。...剩下的调用过程就不再介绍了,我们来查看Android 8.0的AMS家族,如图3所示。...图3 Android 8.0 AMS家族 对比图3和图1,可以发现Android 8.0 AMS家族要简单得多,ActivityManager 的 getService 方法会得到 IActivityManager

1.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 )

文章目录 前言 一、热启动与冷启动选择 二、AMS 进程中执行的相关操作 三、通过 Binder 机制转到 ActivityThread 中执行的操作 总结 前言 上一篇博客 【Android 启动过程...】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 ) 分析的分支是启动 Activity 时 , 没有 Activity 对应的进程 , 需要先调用 Zygote.../server/am/ActivityStackSupervisor.java ; 二、AMS 进程中执行的相关操作 ---- 在 ActivityStackSupervisor.realStartActivityLocked...transaction.recycle(); } } } 完整代码参考 /frameworks/base/services/core/java/com/android/server.../app/ClientTransactionHandler.java ; ---- 总结 本博客分析的源码对应分支 AMS -> ActivityThread ( ApplicationThread )

1K10

Android系统服务(一)解析ActivityManagerService(AMS)

相关文章 Android系统启动流程系列 Android应用进程系列 Android深入四大组件系列 前言 1.概述 AMS是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS...2.AMS的启动流程 AMS的启动是在SyetemServer进程中启动的,Android系统启动流程(三)解析SyetemServer进程启动过程这篇文章中提及过,这里从SyetemServer的main...3.AMS与进程启动 在Android系统启动流程(二)解析Zygote进程这篇文章中,我提到了Zygote的Java框架层中,会创建一个Server端的Socket,这个Socket用来等待AMS来请求...Android应用程序进程启动过程(前篇)。...,具体的调用过程可以查看Android深入四大组件(一)应用程序启动过程(后篇)这篇文章。

1.4K60

Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 )

文章目录 一、Activity 启动源码分析 ( AMS | ActivityManagerService ) 1、Instrumentation 调用 AMS 方法 2、ActivityStarter...调用 AMS 方法 3、Process 启动新进程 二、Activity 启动源码分析 ( ActivityStarter ) 1、ActivityStarter.startActivityMayWait...ActivityStack 六、ActivityStackSupervisor 四、ActivityStack、TaskRecord、ActivityRecord 一、Activity 启动源码分析 ( AMS...( AMS ) 的 startActivity 方法 , // 在此处调用 AMS , Binder 机制获取 AMS int result = ActivityManager.getService...方法之前 , 使用在清单文件中注册过的占坑 Activity 替换插件 Activity , 借此骗过 AMS ; AMS 相关源码如下 : public class ActivityManagerService

1K20

超详细,Android AMS面试攻略,带你突破面试难关

对于Android开发者来说,深入了解AMS的原理以及相关的面试技巧是非常重要的。本文将围绕AMS展开讨论,介绍一些高级的面试问题,并提供详细的解答,帮助读者更好地准备面试。...AMS基础 问题: 谈谈你对AMS的理解,以及它在Android系统中的作用是什么? 出发点: 了解面试者对于AMS的基本理解程度,以及他们对于AMS在整个Android系统中的作用的把握程度。...参考简答: AMSAndroid中的一个关键组件,负责管理Activity的生命周期以及应用程序的任务栈。...进程管理 问题: Android进程的优先级是如何划分的?如何影响AMS对进程的调度? 出发点: 考察Android进程的优先级划分及其对系统资源调度的影响。...其它 问题: Android中的内存管理机制是怎样的?AMS是如何参与其中的? 出发点: 考察Android系统的内存管理机制,以及AMS在其中的角色。

11510

Android 插件化原理解析——Hook机制之AMS&PMS

ActivityManagerService对于FrameWork层的重要性不言而喻,Android的四大组件无一不与它打交道: startActivity最终调用了AMS的startActivity系列方法...在上文Android插件化原理解析——Hook机制之Binder Hook中讲述了DroidPlugin的Binder Hook机制;我们知道AMS和PMS就是以Binder方式提供给应用程序使用的系统服务...AMS获取过程 前文提到Android的四大组件无一不与AMS相关,也许读者还有些许疑惑;这里我就挑一个例子,依据Android源码来说明,一个简单的startActivity是如何调用AMS最终通过IPC..., com.weishu.upf.ams_pms_hook.app, Intent { act=android.intent.action.VIEW dat=http://wwww.baidu.com/...Android Framewrok层对于四大组件的处理,调用AMS服务的时候,全部都是通过使用这种方式;若有疑问可以自行查看源码。

1.2K10

大型Bat面试知识总结分享—AMSAndroid起到什么作用?简单的分析下Android的源码

面试官: AMSAndroid起到什么作用,简单的分析下Android的源码 心理分析:这道题在发生在大多数场景下。面对这道题 很多求职很茫然,不知道该如何说起。...AMSAndroid中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似,因此它在Android中非常重要。...初识ActivityManagerService总结 本节所分析的4个关键函数均较复杂,与之相关的知识点总结如下: AMS的main函数:创建AMS实例,其中最重要的工作是创建Android运行环境,得到一个...对AMS 调用轨迹分析是我们破解AMS的第一条线,希望读者反复阅读,以真正理解其中涉及的知识点,尤其是和Android运行环境及Context相关的知识。...AMS中的进程管理 前面曾反复提到,Android平台中很少能接触到进程的概念,取而代之的是有明确定义的四大组件。

3.8K31

深入理解Activity启动流程和AMS框架(三)

续: 深入理解Activity启动流程和AMS框架(一) 深入理解Activity启动流程和AMS框架(二) 5、Task和LauncherMode (1)、如何才能开始一个新的Task?...Affinity字串在系统中是唯一的,AMS查找一个Task,最优先比较它的affinity。ActivityStack类中用来查找Task的方法是findTaskLocked()。...Android开发——Intent中的各种FLAG http://blog.csdn.net/javensun/article/details/8700265 6、Activity的启动流程 (1)、startActivityMayWait...android".equals(r.info.packageName)) { app.addPackage(r.info.packageName, r.info.applicationInfo.versionCode...分析Activity启动流程,无非就是牢牢把握住两条主线:应用进程(ActivityThread)和服务端进程(AMS) ?

1.1K10
领券