AMS和应用程序的交互分析

AMS与Activity跨进程通信解析
本文深入分析了Android系统中Activity与Activity Manager Service (AMS)间的跨进程通信机制,重点探讨了Binder机制如何实现这一过程。从startActivity方法入手,详细解释了ActivityManagerProxy与ActivityManagerService的交互流程,以及ApplicationThreadNative在其中的作用。

如果不是跨进程,AMS和应用程序之间的调用会比较简单。但是由于AMS和应用程序之间属于不同进程,那么之间的交互是通过Binder机制来交互的。现在具体分析一下。
首先Activity与AMS交互。
Activity与AMS的交互方法我们可以从startActivity开始分析。最终会进入

 int result = ActivityManagerNative.getDefault()
            .startActivityAsUser(whoThread, who.getBasePackageName(), intent,
                    intent.resolveTypeIfNeeded(who.getContentResolver()),
                    token, target != null ? target.mEmbeddedID : null,
                    requestCode, 0, null, options, user.getIdentifier(
Android AMS(Activity Manager Service)WMS(Window Manager Service)是两个核心系统服务,它们之间的交互主要通过Binder IPC(Inter-Process Communication)实现。以下是一些AMSWMS交互的函数类: 1. ActivityManagerService类:这是AMS的实现类,提供了许多ActivityActivity生命周期相关的函数。其中一些函数包括: - startActivity(Intent intent, Bundle options):启动一个Activity。 - resumeAppSwitches():通知AMS恢复应用程序切换。 - moveTaskToFront(int taskId, int flags, Bundle options):将指定的任务移动到前台并重新启动它。 2. WindowManagerService类:这是WMS的实现类,提供了许多窗口管理相关的函数。其中一些函数包括: - addView(View view, WindowManager.LayoutParams params):向窗口管理器添加一个视图。 - removeView(View view):从窗口管理器中移除一个视图。 - performLayout():执行窗口的布局操作。 3. ActivityManagerNative类:这是AMS的远程代理类,用于实现AMS的远程调用。其中一些函数包括: - getDefault():获取AMS的远程代理实例。 - startService(IApplicationThread caller, Intent service, String resolvedType, int userId):启动一个服务。 4. WindowManagerGlobal类:这是WMS的全局类,提供了全局访问WMS的接口。其中一些函数包括: - getWindowManagerService():获取当前进程中的WMS实例。 - addView(View view, WindowManager.LayoutParams params, Display display, Window parentWindow):向指定的显示器窗口添加视图。 这些函数类是AMSWMS交互的一些基本元素,用于管理应用程序的生命周期窗口显示。开发人员可以使用它们来创建管理Android应用程序的界面。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值