Anroid P的activity生命周期代码变化

Anroid Pactivity生命周期代码架构发生了重大变化,引入了一套Transaction接口,整体结构关系如下,以启动activity为例,从AMS部分的ASS部分开始,进行事务调度,先通过ClientLifecycleManager管理器执行事务调度,ClientLifecycleManagerTransaction接口对AMS提供的一个接口层,它进一步调用ClientTransaction,通过binder接口将控制从AMS所在的系统进程转移到APP进程,

ATAPP进程的主线程,它分几大部分,ApplicationThreadbinder接口,H是线程内部消息处理hanlerActivityClientRecordactivity结构实体封装,还要AT自身的功能处理函数。调用从AMS通过binder接口后,转换为线程内部消息,发送给handlerHH调用事务执行器TransactionExecutor的通用接口,

执行器会调用executeCallbacksexecuteLifecycleState,执行预先向其内部设置的callback和生命周期item,同时执行体内部还维护一个状态处理函数,用于处理生命周期的管理状态。

    callback和生命周期item会通过ObjectPool来进行缓存,每个item的事项实际上是调用的AT的功能接口函数完成activity的生命周期管理,这样处理会使功能结构更加清晰,扩展性更强。



ActivityandroidP启动的大概流程如下,

请求启动activity


启动新进程


activity启动的部分生命周期







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值