概述
Android开机启动后默认会先进入锁屏然后灭屏休眠, 本文旨在介绍这个过程中最先启动的Home Launch Activity (其实在Android N上最早被启动的是Settings中的FallbackHome Activity) 如何发生相关的生命周期变化, 以及AMS hold wakeup lock和释放wakeup lock确保设备可以进入省电休眠状态
Framework分析
如上面的时序图所示1.1.1 步骤中AMS hold了mGoingToSleep这个wakeup lock 一旦1.1.1.1 checkReadyForSleepLocked的if (!mService.isSleepingOrShuttingDownLocked()) 条件检查失败,就会导致后续期望的Activity Pause生命周期调度没有发生, 进而使得整个流程中最后4.1.1中释放mGoingToSleep wakeup lock的回调没有来到