Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92
背景:
由于系统有模块需要和外部硬件做同步,因此要延长开机时间。
调试思路:
由于系统只显示了开机动画,没有开机Logo。因此一开始的思路是把开机动画时间延长,然后把launcher或者zygote的启动时间也延迟。调试发现不可行,因为init进程之后的进程都是并发执行的,而很多进程的功能又是相互依赖的,如下图(图片来自参考链接博客):

因此把延时做在init进程之前了,由于这时开机动画是没有运行的,所以也要开启开机Logo的显示,避免黑屏太久。
解决方法:
init改动如下:
kris@eco:~/rk3288/system/core$ g df 6a8f21df1001917edafb978a427ae98c64a91490 4d69b8b74af30a2e0329eeb124d48a228c9b1800
diff --git a/init/init.cpp b/init/init.cpp
index e748a4f..3594279 100755
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -

在RK3288平台的Android 6.0系统上,为配合硬件同步需求,需延长开机时间。通过调试发现,init进程后的并发执行特性使得简单延长开机动画或zygote启动时间无效。解决方案在于提前在init进程前增加延迟,并启用开机Logo显示,避免长时间黑屏。参考了Android启动过程详解进行调整。
最低0.47元/天 解锁文章
2975

被折叠的 条评论
为什么被折叠?



