背景:
针对给学员朋友布置的作业:
安卓开机启动Fallbackhome是否可以直接去除?--学员作业
马哥这边也尝试进行实现,实现后也发现确实针对Fallbackhome去除的这个小项目取得了一定的成果,这个Fallbackhome去除成果主要分为2个情况进行分析。
1、没有设置安全密码锁情况
这种情况下其实是可以考虑进行提前解锁ce的,实现后的效果如下

大家明显看到确实在系统启动后,可以直接从bootanimation直接进入到正常的手机Launcher上,进入也没有看到有任何的Fallbackhome画面
实现的核心思路:
考虑在框架里面AMS的systemReady方法中进行提前的解锁ce的方式。(详细源码vip群分享)
2、设置安全密码锁情况
这种情况下因为有密码,手势等,属于安全级别,无法通过直接解锁ce方法进行解锁,这种情况下就无法在没有解锁前解锁ce,所以还是需要有一个Fallbackhome的Activity。
这块其实就不建议去除Fallbackhome了,因为只要有密码等安全设置,系统是无法在没有用户输入密码前直接解锁ce。
总结:
大家都可能为了提高开机启动速度,或者说不想让用户看到Fallbackhome画面也好,都会有想办法去除Fallbackhome的需求或者想法,但是大家需要注意的是android以前也是没有Fallbackhome的,也是指导出现了CE加密才出现的,本质上Fallbackhome就是作为系统还没解锁前作为launcher的Activity进行启动,不然系统啥Activity都无法启动的话,就会一直处于开机动画,无法进入系统。
那么最后是否可以去除Fallbackhome呢?
这个其实需要看你的需求,如果你的设备是那种根本不存在让用户输入密码等解锁情况,那么其实是可以考虑去除,也确实可以起到一定的优化第一次开机时间。
但是如果设备还是会有设置密码,或者九宫格解锁这种,那么就不建议去除Fallbackhome。
更多framework实战开发干货,请关注下面"千里马学框架"