锁屏黑屏现象总结

本文详细总结了手机出现锁屏黑屏问题的各种现象,包括不同场景下的表现和影响因素。从launcher的getWindow设置、系统对话框关闭、线程行为等方面进行了深入探讨,但目前尚未找到根本原因。日志分析显示,问题可能与launcher和policy的交互有关,特别是KeyguardViewManager的show方法。实验表明,改变相关设置和监测activity状态并未能完全消除问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、之前版本都有这个问题
2、霍尔开关添加之前就有这个问题
3、有时不明显,有时明显
4、从launcher进入锁屏时较明显,从应用进去不明显
5、当launcher的getWindow设置的背景不为null时,情况好很多
6、刚开机或刚push好launcher时情况较好
7、当情况较好时,如果多次出入应用程序界面,则情况开始变坏
8、即使通知霍尔开关的一开始就发送消息给launcher让其检查并修复getWindow设置的背景,仍会发生黑屏现象。
9、此现象预计和launcher和policy有关,前者依存度高,后者是执行者
10、launcher并没有响应Lid开关。
11、launcher 本身是没有背景的
12、锁屏声音的开关有时会有影响
13、MTK原本就认为时间差不可避免,其借用了freeze screen隐藏了黑屏。
14、目前为止,尚不能确定黑屏的原因
15、黑屏的开始是从 KeyguardViewManager 方法 show()中的 
 mKeyguardHost.setVisibility(View.VISIBLE); 
      发生之后。该方法的执行线程是PhoneWindowPolicy线程。
16、刚开机或者刚push新的launcher进去时,情况较好,长期使用尤其进入应用程序返回后,情况变坏
17、把 LauncherPlus/res/values/config.xml 中的config_allAppsFadeOutTime从200改为0,依然没有效果
18、如果mKeyguardHost.setVisibility(View.VISIBLE)注释掉,则不会黑屏、锁屏,如果不注释,则该动作的log发生在锁屏、黑屏之后。
19、如果先发送closeSystemDialogs,然后show,并且在launcher接受到closeSystemDialogs的intent后立即onPause,则黑屏仍然存在,且看起来似乎
     更加明显。
20、如果在KeyguardViewMediator的handleShow方法中不进行ActivityManagerNative.getDefault().closeSystemDialogs("lock"),则:情况仍然存在。




======================================================
现象:


翻盖,先长黑,然后上锁,然后过一段时间得到下面log(短黑情况一样)
01-01 13:48:12.468: I/Launcher.CloseSystemDialogsIntentReceiver(1963): onReceive
01-01 13:48:12.469: I/LauncherPlus.Launcher(1963): closeSystemDialogs
01-01 13:48:13.358: I/BubbleTextView(1963): drawableStateChanged
01-01 13:48:13.361: I/BubbleTextView(1963): drawableStateChanged
01-01 13:48:13.378: I/BubbleTextView(1963): drawableStateChanged
01-01 13:48:13.382: I/BubbleTextView(1963): drawableStateChanged
01-01 13:48:13.880: D/dalvikvm(1963): GC_CONCURRENT freed 1059K, 53% free 3367K/7111K, external 3111K/4304K, paused 3ms+24ms
01-01 13:48:16.874: D/dalvikvm(1963): GC_CONCURRENT freed 1201K, 53% free 3386K/7111K, external 3111K/4304K, paused 3ms+10ms




合盖,log:


01-01 13:52:57.216: I/BubbleTextView(1963): drawableStateChanged
01-01 13:52:57.245: I/BubbleTextView(1963): drawableStateChanged
01-01 13:52:57.248: I/BubbleTextView(1963): drawableStateChanged
01-01 13:52:57.251: I/BubbleTextView(1963): drawableStateChanged
01-01 13:52:58.407: D/dalvikvm(1963): GC_CONCURRENT freed 1054K, 54% free 3298K/7111K, external 3111K/4304K, paused 5ms+11ms


在应用程序界面,只有翻盖才有log,且几乎是在上锁瞬间得到:


01-01 13:57:40.520: I/Launcher.CloseSystemDialogsIntentReceiver(1963): onReceive
01-01 13:57:40.529: I/LauncherPlus.Launcher(1963): closeSystemDialogs

注:
1、以上launcher的log紧接着policy中的keyguardViewManager中的show方法的最后一行。几乎没有延迟
=======================================================

如果在keyguardViewManager中的show方法的最后一行之前开始定时检测当前activity(每100ms检测一次):
1、如果是launcher界面开始的,则当前activity一直是launcher,包括黑屏、锁屏以后
2、如果应用程序开始的,则当前activity一直是应用程序

# Android 死机重启问题常见分类与原因总结 ## 1. 硬件问题 - **幕异常** - 不良:表现为黑屏(如幕排线损坏、显示驱动故障)。 - TPL问题:表现为定(触摸面板逻辑异常)。 - **存储/DDR故障** - 内存颗粒损坏、存储芯片虚焊导致读写异常,引发系统崩溃。 - **电源与电池问题** - 电压不稳、电池老化导致供电不足,触发强制重启。 --- ## 2. 系统层问题 ### 底层系统(内核/驱动) - **Kernel Panic** - 内核驱动异常(如 GPU 驱动崩溃、文件系统损坏)。 - **Watchdog 超时** - `system_server_watchdog`:系统关键服务(如 ActivityManager)未响应。 - **进程 D 状态(不可中断睡眠)** - I/O 阻塞或驱动未释放资源,导致进程卡死,最终触发重启。 ### 上层系统服务 - **WMS(窗口管理服务)异常** - 窗口渲染逻辑错误,导致界面冻结。 - **SurfaceFlinger 卡住** - 图形合成服务阻塞,表现为定黑屏。 - **服务异常** - 指纹/人脸识别模块阻塞亮逻辑,导致黑屏(如 `occlude` 状态异常)。 --- ## 3. 应用层问题 - **应用 ANR(无响应)** - 主线程阻塞(如死、复杂计算),导致界面定,用户感知为系统卡死。 - **内存泄漏/OOM** - 应用持续占用内存,触发系统 `Low Memory Killer` 强制终止进程或重启。 - **多线程冲突** - 资源竞争引发死,导致进程挂起。 --- ## 4. 图形显示类问题 - **图形库异常(如 OpenGL/Vulkan)** - 游戏/视频渲染时驱动崩溃,导致黑屏或定。 - **Surface 管理失败** - 多图层叠加冲突,引发显示服务(SurfaceFlinger)崩溃。 --- ## 5. 外部因素与兼容性问题 - **过热保护** - CPU/GPU 温度过高触发温控降频或强制重启。 - **OTA 升级失败** - 系统分区校验错误,导致启动循环(Bootloop)。 - **第三方模块兼容性** - 非官方内核/Recovery 修改系统分区,引发不稳定。 --- ## 6. 文件系统与存储异常 - **Data 分区损坏** - 异常断电导致文件系统错误(如 `EXT4` 结构损坏)。 - **存储满/权限错误** - 系统关键目录(如 `/system`)写入失败,引发服务崩溃。 --- ## 典型现象与对应原因速查 | **现象** | **可能原因** | |-------------------------|------------------------------------------| | 黑屏且无响应 | 不良、SurfaceFlinger 崩溃、电池故障 | | 定但可触发重启 | 应用 ANR、进程 D 状态、WMS 异常 | | 频繁自动重启 | 内核 Panic、温控保护、Data 分区损坏 | | 亮黑屏(有状态栏) | 服务异常(如 Findx2 的 `occlude` 问题) |
03-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值