ActivityManager系统服务源码分析

本文主要分析ActivityManager在Android系统中的作用,它负责与Activity交互并获取系统Activity信息。通过ActivityManagerNative的代理类ActivityManagerProxy,调用getServices方法获取运行服务详情。ActivityManagerNative作为Binder的子类,实现了IActivityManager接口,其默认实例gDefault采用代理模式。在方法调用过程中,通过ServiceManager获取ActivityManagerService,并利用Binder的transact()方法进行跨进程通信,最终在ActivityManagerService中实现具体逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ActivityManager作用:与正在运行的Activity进行交互,获取系统中所有运行的Activity相关信息,例如Task Memory Service。

如下所示:获取正在运行的服务信息,ActivityManagerNative.getDefault().getServices()调用的是代理类ActivityManagerProxy中的getServices方法。

ActivityManagerProxy是ActivityManagerNative的内部类。

ActivityManagerNative是一虚拟类,继承了Binder类实现了IActivityManager接口,如下:




gDefault是一代理模式,返回的是ActivityManagerNative的代理类ActivityManagerProxy

方法中通过ServiceManager.getSystem("activity")取得ActivityManagerNative类的子类ActivityManagerService类,国通asInterface()方法传入到代理类中。



通过getServices方法中代用了 mRe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值