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的生命周期管理,这样处理会使功能结构更加清晰,扩展性更强。

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

ActivityandroidP启动的大概流程如下,

请求启动activity
Anroid P的activity生命周期代码变化


启动新进程

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

activity启动的部分生命周期


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






相关文章:

猜你喜欢
  • 2021-05-04
  • 2021-08-22
  • 2021-12-09
  • 2022-12-23
  • 2021-07-08
  • 2021-11-02
  • 2022-01-18
相关资源
相似解决方案