发布时间:2026/8/25 7:59:55
Android框架杂谈 1.调用栈打印StackTraceElement st[] Thread.currentThread().getStackTrace();for (int i 0; i st.length; i) {System.out.println(showInput-Stack[i] st[i].toString());}2.setpowermode 中powermode对应关系surfaceflinger层面Off 0Doze 1On 2DozeSuspend 33.开发者选项触摸小圆点在InputReader阶段进行绘制具体绘制是在frameworks/base/libs/input/TouchSpotController.cpp中updateSprite函数中。void TouchSpotController::Spot::updateSprite(const SpriteIcon* icon, float x, float y,int32_t displayId) {sprite-setLayer(Sprite::BASE_LAYER_SPOT id);sprite-setAlpha(alpha);sprite-setTransformationMatrix(SpriteTransformationMatrix(scale, 0.0f, 0.0f, scale));sprite-setPosition(x, y);sprite-setDisplayId(displayId);...}4.Power键亮灭屏log关键字【1】kernel 上报power key[kernel log][53:pmic_thread]kpd: Power Key generate, pressed0【2】上层收到按键事件[eng版本上才有此logmain_log]WindowManager: interceptKeyTq keycode26 ...【3】PMS的wakeUp被调用[sys_log]PowerManagerService: Waking up from Dozing【4】准备绘制界面[sys_log]DisplayPowerController: Blocking screen on until initial contents have been drawn.【5】第一个wiating for drawn表示keyguard画完开始画window[sys_log]WindowManager: Waiting for drawn Window{6732b98 u0 com.android.settings/com.android.settings.SubSettings}:【6】底层resume时间L版本 setAutoSuspend/M版本 setPowerMode【main_log】注意这个log出现的时间点不是固定的要看底层resume的时间SurfaceControl: Excessive delay in setPowerMode(): 403ms【M 版本】PowerManagerService-JNI: Excessive delay in autosuspend_disable() while turning screen on: 424ms【L版本】【7】绘制界面完成及花费的时间[sys_log]DisplayPowerController: Unblocked screen on after 409 ms【8】上层设置背光[sys_log]DisplayPowerState: Requesting new screen state: stateON, backlight211【9】底层设置背光[sys_log,亮屏时间power key到此处的时间不一定每个版本都有此logkernel log]提示如果出现此log表示屏幕已经点亮PhotonicModulat][name:leds][LED]Set Backlight directly 211 at time 4294992661, mapping level is 211【10】亮屏操作完成[sys_log]DisplayPowerController: Finished business5.影响亮屏快慢的因素大致有三种1设置背光流程出问题了导致屏幕黑屏2window绘制时间过长导致屏幕block时间过长3底层surfacecontroller准备时间过长而根据遇到的亮屏慢的问题基本上都是由于window绘制时间过长导致屏幕亮屏慢最近处理的几个亮屏慢的问题其中关键log信息基本都是13-11 11:17:49.002 1313 1092 I DisplayPowerController: Blocking screen on until initial contents have been drawn.12-18 11:18:55.020 1313 1092 I DisplayPowerController: Unblocked screen on after 6018 ms6.关于触发拯救模式导致机器进入recovery。拯救模式又称救援模式是Android 8.0新增的一个功能。问题场景如下进入隐私空间长按控制中心的移动数据按钮此时com.android.phone进程报停还有一定的几率进入recovery。由于com.android.phone或者com.android.systemui是个常驻进程不断的重启又不断的died所以触发救援模式。救援模式在com.android.phone进程的不断started与died的过程中level等级被不断的提升一旦到达FACTORY_RESET等级系统就会自主进入recovery注最后一句log是自行添加的用来判断是哪个进程导致触发救援模式。W RescueParty: Attempting rescue level RESET_SETTINGS_UNTRUSTED_DEFAULTSW RescueParty: Attempting rescue level RESET_SETTINGS_UNTRUSTED_CHANGESW RescueParty: Attempting rescue level RESET_SETTINGS_TRUSTED_DEFAULTSW RescueParty: Attempting rescue level WARM_REBOOTW RescueParty: Attempting rescue level FACTORY_RESET所以处理进入recovery的问题首先就要判断是不是救援模式被触发了。7.冻屏问题总结首先按menu看是否有反应有反应说明不是死机冻屏冻屏出现过如下三种现象定屏1按虚拟键有背景色无法响应任何触摸事件音量键无作用power键有作用ADB能连定屏2按虚拟键无背景色power键有作用ADB能连定屏3power键都无作用ADB能连根据描述可见如上三个现象严重程度递增8.Input debug开关先执行enable_input_prop.bat脚本然后adb shell getprop persist.log.tag.InputTransportPublisher看下属性是否设置成功。成功了再抓下logenable_input_prop.batecho off:: 设置Android系统属性以启用InputTransportPublisher的调试日志adb shell setprop persist.log.tag.InputTransportPublisher DEBUGadb shell setprop persist.log.tag.InputDispatcherTouchMode DEBUGadb shell setprop persist.log.tag.InputDispatcherTouchOcclusion DEBUGadb shell setprop persist.log.tag.InputDispatcherInboundEvent DEBUGadb shell setprop persist.log.tag.InputDispatcherOutboundEvent DEBUGadb shell setprop persist.log.tag.InputDispatcherDispatchCycle DEBUGadb shell setprop persist.log.tag.InputDispatcherChannelCreation DEBUGadb shell setprop persist.log.tag.InputDispatcherFocus DEBUGadb shell setprop persist.log.tag.InputDispatcherAppSwitch DEBUGecho [SUCCESS] set property : persist.log.tag.InputTransportPublisherDEBUGpause

相关新闻

2026/8/25 7:54:55

BARF: Bundle-Adjusting Neural Radiance Fields 论文阅读

摘要 神经辐射场 (NeRF) 可以合成真实世界场景的全新视角的照片,其性能优异,因此在计算机视觉领域引起较大的兴趣。NeRF的一个限制条件是需要准确相机位姿。本文提出了集束调整神经辐射场 (BARF),可以用不完美的(甚至不知道&…

2026/8/25 7:54:55

实用小工具

目录1、win置顶窗口小工具2、查看串口实时数据Device Monitoring Studio3、通过使用Dependency工具检测是否缺少动态库。4、CopyTranslator 实时翻译5、VOFA 可扩展多功能串口助手6、fairygui 游戏GUI解决方案7、winmerge 和 cc-compare 文件比对工具(1)…

2026/8/25 10:30:45

OpenClaw智能体上下文感知:reaction-message-id模块如何解决消息关联难题

1. 项目概述:从一次“答非所问”的故障说起最近在调试一个基于OpenClaw的智能对话应用时,遇到了一个让人有点头疼的问题。我让助手帮我总结一下刚才讨论的文档要点,它却突然开始回答一个我五分钟前提到的、毫不相关的问题。这感觉就像你跟朋友…

2026/8/25 10:30:45

C#文件操作实战:从基础读写到高并发大文件处理

1. 项目概述:为什么C#操作TXT文件是基本功中的基本功?如果你刚开始接触C#,或者从其他语言转过来,可能会觉得操作TXT文件是个“小儿科”的任务。不就是读点字、写点字吗?但在我十多年的开发生涯里,恰恰是这些…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…