学习android内核--相关流程以及相关类作用记录

本文介绍了Android系统中的关键组件,如ActivityThread、ApplicationThread、ActivityManagerService等的作用与职责,涉及进程间通信、Activity的调度与管理等内容。

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

ActivityThread:每一个应用程序客户端都是从该类开始的。一个客户端对应一个ActivityThread,负责创建这个“家庭”,并负责与外界打交道(接收AMS的通知等)。


ApplicationThread:它是一个Binder对象,ActivityManagerService会使用它来和ActivityThread来进行进程间通信

 

ActivityService

 

ActivityServiceNative

 

ActivityManagerService:负责Activity的一些调度,比如启动Acitvity,切换Activity,都要通过它;内存管理(activity);进程管理(AmS向外提供了查询系统正在运行的进程信息的API);

1.当AmS收到启动某个activity的Intent后,首先会检查一下环境,比如Caller(意图发起者)是否有启动权限,intent的目标activity是否存在等。它会根据Intent的信息找到匹配的(PackageManager)Component信息。


WindowManagerService:


 

ServiceManager:管理各种系统服务。本身也是一个service,可以通过BinderInternal,getContextObject()获取该对象Binder引用,从而通过该引用再去获取其它service的Binder引用。ServiceManager是Android系统Binder进程间通信机制的守护进程,负责管理系统中的Binder对象,所有启动的系统服务都添加到此。

 

SystemServer(main->init1->ini2(*))->ServiceThread:addService()注册各种服务。

 

Instrumentation:可以理解为应用进程的管家,ActivityThread要创建或暂停某个Activity时,是通过这个“管家”进行的;设置这个管家的好处是可以统计所有的“开销”,开销的信息保存在“管家”那里。这个类的对象是在ActivityThread创建Activity时创建的

 

PhoneWindowManager:



LocalActivityManager:用来 使用主线程对象 mActivityThread 来装载指定的Activity。


Intrumentation:用来监控应用程序和系统的交互


 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值