Android12 Activity启动流程概要

 

  • Activity # startActivity
  • Activity # startActivityForResult
  • Instrumentation # execStartActivity
  • ActivityTaskManagerService # startActivity
  • ActivityTaskManagerService # startActivityAsUser
  • ActivityStarter # execute
  • ActivityStarter # executeRequest
  • ActivityStarter # startActivityUnchecked 在这里进行一些检查
  • ActivityStarter # startActivityInner 在startActivityInner()的时候,基本上已经检查完毕了,会先去进行状态的初始化,也就是从AcitivityRecord当中将对应的参数存储到本地使用等。
  • Task # startActivityLocked 在这里开始,启动Activity的任务就交给了Task处理,不再交给ActivityStack进行处理了
  • Task # ensureActivitiesVisible
  • Task # forAllLeafTasks(task -> task.mEnsureActivitiesVisibleHelper.process) 在Android12上,采用的大量的Consumer的方式进行事件的处理
  • EnsureActivitiesVisibleHelper # process
  • EnsureActivitiesVisibleHelper # setActivityVisibilityState
  • ActivityRecord # makeActiveIfNeeded
  • Task # resumeTopActivityUncheckedLocked 通过ActivityRecord getRootTask来进行后续处理
  • Task # resumeTopActivityInnerLocked
  • ActivityTaskSupervisor # startSpecificActivity
  • ActivityTaskSupervisor # realStartActivityLocked 在这里会进行Transaction的封装,封装了LaunchActivityItem类型的Transaction
  • ClientLifecycleManager # scheduleTransaction
  • ClientTransaction # schedule()
  • IApplicationThread(ApplicationThread为该aidl接口的实现类) # scheduleTransaction
  • ActivityThread(ClientTransactionHandler为ActivityThread的父类,交由其父类处理) # scheduleTransaction
  • ClientTransactionHandler # scheduleTransaction 该方法会发送一个Message ActivityThread.H.EXECUTE_TRANSACTION
  • ActivityThread # handleMessage 接着交由TransactionExecutor进行处理
  • TransactionExecutor # execute() 交由TransactionExecutor处理事务
  • TransactionExecutor # executeCallbacks 向注册的监听回调对应的状态
  • LaunchActivityItem # execute
  • ClientTransactionHandler(ActivityThread) # handleLaunchActivity
  • ActivityThread # performLaunchActivity
  • Instrumentation # callActivityOnCreate
  • Activity # performCreate
  • Activity # onCreate
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值