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方法中代用了 mRemote.transact(GET_SERVICES_TRANSACTION, data, reply, 0);即binder类中的transact()

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

被折叠的 条评论
为什么被折叠?



