安卓首次启动Fallbackhome是否可以直接去除?--学员作业

背景:

有学员朋友在vip群提出一个需求相关的问题,他想要把settings裁剪掉,但是发现裁剪后Fallbackhome肯定就没了,发现Launcher居然无法启动了,一直处于Bootanimation的画面,无法进入系统。

针对这个去除Fallbackhome去除后是否可以正常进入Launcher的问题,学员们也进行了激烈讨论,很多学员朋友都猜想肯定还是会进入Launcher的,只是可能时间会长一点,那么真实的情况是真的会吗?

同时提出问题的朋友还提出另一个现象:

那就是系统首次开机是可以进入到Launcher的,只是再启动reboot后就不可以了。

问题复现:

复现环境:

aosp 15 编译模拟器

复现修改:

尽可能按照学员朋友的要求进行复现,不过学员朋友是直接去除settings这个apk,其实完全不需要一定去除apk,可以考虑只去除Fallbackhome这个Activity就行

修改如下:

直接屏蔽掉设置的Fallbackhome这个Activity

packages/apps/Settings/AndroidManifest.xml
修改后进行编译 make

然后运行模拟器:emulator

发现系统一直处于bootanimation画面,时间再久也无法进入的Launcher,(注意这里大家不要设置任何设备锁)

其实这里也就是很多学员有的疑问:
马哥课程里面讲解的Fallbackhome本身好像没有干啥啊,它也只是等待检测设备解锁后启动Launcher,Fallbackhome本身自己又没有调用啥解锁,属于被动,所以普遍认为系统会自己解锁,解锁后自然会触发系统重新进行Launcher的启动。

作业提示:

上面学员的疑问和猜想其实很正常哈,说明学员们还是有认真学习Fallbackhome这块的内容。

这里大家可能会有如下想法,是不是Launcher桌面在解密后没有再被触发startActivity,是否可以考虑手动再触发startActivity既可以。

尝试命令行启动

bash 复制代码
test@test:~/aosp15/frameworks$ adb shell am start -n com.android.launcher3/.uioverrides.QuickstepLauncher
Starting: Intent { cmp=com.android.launcher3/.uioverrides.QuickstepLauncher }
Error type 3
Error: Activity class {com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher} does not exist.

发现依然是找不到Launcher的Activity

再看看是不是还处于加密状态:

作业要求:

1、请在上面已经对settings屏蔽了Fallbackhome后,想一个办法可以让开机动画结束,正常进入系统

2、请剖析出原因,为啥Fallbackhome去除后就会导致系统一直卡在开机动画

3、如过想要去除Fallbackhome,又要系统可以正常启动,有啥完美的方案呢?

4、请解释为啥上面说的第一次启动可以进入Launcher后面reboot后就再也不可以了

更多framework实战开发干货,请关注下面"千里马学框架"

相关推荐
wu_android1 小时前
Android 视图系统入门指南
android
淡淡的香烟1 小时前
Android11 Launcher3实现去掉抽屉改为单层
android
火柴就是我1 小时前
每日见闻之THREE.PerspectiveCamera的含义
android
小书房2 小时前
Android的Dalvik和ART
android·aot·jit·art·dalvik
夏日玲子2 小时前
Monkey 测试的基本概念及常用命令(Android )
android
whysqwhw3 小时前
Transcoder代码学习-项目构建
android
夕泠爱吃糖3 小时前
Linux 文件内容的查询与统计
android·linux·c#
yzpyzp3 小时前
Kotlin的MutableList和ArrayList区别
android·kotlin
用户2018792831673 小时前
故事:《安卓公司的消息快递系统》
android
newki3 小时前
【NDK】项目演示-Android串口的封装工具库以及集成的几种思路
android·c++·app