Amdroid 11 Launcher 启动流程

在FallbackHome退出之后,这时候就要启动我们的Launcher了。值得注意的是Launcher并不是从AMS的systemReady方法中启动,而是在FallbackHome 执行 pause的时候调用。可以从调用堆栈里看出

//为了确认是FallbackHome的pause,特意在activityPause添加打印,打印信息如下:
//ActivityInfo:ActivityInfo{dc58c57 com.android.settings.FallbackHome}


java.lang.Exception
03-14 17:33:17.194   436   450 D test10  :      at com.android.server.wm.ActivityStackSupervisor.startSpecificActivity(ActivityStackSupervisor.java:979)
03-14 17:33:17.194   436   450 D test10  :      at com.android.server.wm.ActivityStack.resumeTopActivityInnerLocked(ActivityStack.java:1972)
03-14 17:33:17.194   436   450 D test10  :      at com.android.server.wm.ActivityStack.resumeTopActivityUncheckedLocked(ActivityStack.java:1516)
03-14 17:33:17.194   436   450 D test10  :      at com.android.server.wm.RootWindowContainer.resumeFocusedStacksTopActivities(RootWindowContainer.java:2311)
03-14 17:33:17.194   436   450 D test10  :      at com.android.server.wm.ActivityStack.completePauseLocked(ActivityStack.java:1218)
03-14 17:33:17.194   436   450 D test10  :      at com.android.server.wm.ActivityRecord.activityPaused(ActivityRecord.java:4973)
03-14 17:33:17.194   436   450 D test10  :      at com.android.server.wm.ActivityTaskManagerService.activityPaused(ActivityTaskManagerService.java:1857)
03-14 17:33:17.194   436   450 D test10  :      at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1944)
03-14 17:33:17.194   436   450 D test10  :      at android.os.Binder.execTransactInternal(Binder.java:1154)
03-14 17:33:17.194   436   450 D test10  :      at android.os.Binder.execTransact(Binder.java:1123)

看堆栈,FallbackHome在pause的时候,引起Launcher3的启动,调用到ActivityStackSupervisor的startSpecificActivity方法,后面的启动流程就和FallbackHome的启动一致了,具体参考Android11 FallbackHome启动和关闭流程分析

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android系统在启动过程中,会依次启动各个系统服务,其中也包括Launcher服务。LauncherAndroid系统的桌面显示服务,它负责管理并显示设备的主屏幕和应用程序列表。Launcher服务在Android系统的最后阶段启动,即在主界面启动之前。 当设备完成各个系统服务的启动,并且系统进入正常运行状态时,Launcher服务会被启动。系统启动时,先启动底层服务如Zygote进程、SystemServer进程等,然后再启动Android应用进程。Launcher服务作为最基本的应用程序之一,需要在其他应用程序之前加载,以确保用户可以正常使用设备的主屏幕。 Launcher服务的启动主要通过系统服务管理器来实现。系统服务管理器负责管理Android系统的各项服务,并按照事先定义好的优先级顺序启动服务。在启动Launcher服务时,系统服务管理器会调用相应的启动函数,加载Launcher相关的资源和配置文件,并开始监控用户对桌面的操作。 一旦Launcher服务启动成功,就会显示设备的主屏幕,并加载应用程序列表。通过Launcher服务,用户可以查看和管理设备上已安装的应用程序,并快捷地启动它们。同时,Launcher服务还提供了桌面小部件、壁纸等个性化设置,使用户可以自定义设备的外观和功能。 总而言之,Android系统的Launcher服务在启动过程的最后阶段启动,它管理和显示设备的主屏幕和应用程序列表,为用户提供方便的桌面操作和个性化设置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值