当前位置: 首页 > news >正文

android 窗口焦点介绍

背景

我们经常会遇到一种Application does not hava focused windowANR异常,这种异常一般是没有焦点窗口FocusedWindow导致,且这类异常只会发生在key事件的派发,因为key事件是需要找到一个焦点窗口然后再派发,而触摸事件只需要找到当前显示的窗口即可

关键日志

window

在dumpsys window中查看mCurrentFocus和mFocusedApp

  mCurrentFocus=Window{f96644 u0 NotificationShade}mFocusedApp=ActivityRecord{e9566ee u0 com.android.launcher3/.uioverrides.QuickstepLauncher} t12}

mCurrentFocus指的是当前的焦点窗口
mFocusedApp指的是当前的焦点Activity

查看有没有LAST ANR

WINDOW MANAGER LAST ANR (dumpsys window lastanr)<no ANR has occurred since boot>

这里没有LAST ANR,如果有,mCurrentFocus会显示null

input

在dumpsys input中查看FocusedApplications和FocusedWindows

  FocusedApplications:displayId=0, name='ActivityRecord{e9566ee u0 com.android.launcher3/.uioverrides.QuickstepLauncher} t12}', dispatchingTimeout=5000msFocusedWindows:displayId=0, name='f96644 NotificationShade'

如果发生ANR,焦点窗口以dumpsys input为主

event log

05-18 19:22:55.806   580   607 I input_focus: [Focus request f96644 NotificationShade,reason=UpdateInputWindows]
05-18 19:22:55.837   580   675 I input_focus: [Focus leaving e225d94 com.android.launcher3/com.android.launcher3.uioverrides.QuickstepLauncher (server),reason=Waiting for window because NO_WINDOW]
05-18 19:22:55.855   580   675 I input_focus: [Focus entering f96644 NotificationShade (server),reason=Window became focusable. Previous reason: NOT_VISIBLE]

requestentering正常情况下是一一对应,打印了entering则表示真正的焦点已经进入到对应的窗口
发生Application does not hava focused window时,一般request 有打印,我们可以通过是否有entering的打印来分析
1.entering部分有打印,代表焦点已经在input里面,但是仍然有ANR,就需要从input角度分析
2.entering部分未打印,代表input没有被触发焦点窗口设置到input,需排查SurfaceFlinger或WMS

相关文章:

android 窗口焦点介绍

背景 我们经常会遇到一种Application does not hava focused window的ANR异常&#xff0c;这种异常一般是没有焦点窗口FocusedWindow导致,且这类异常只会发生在key事件的派发&#xff0c;因为key事件是需要找到一个焦点窗口然后再派发&#xff0c;而触摸事件只需要找到当前显示…...

研发工程师玩转Kubernetes——构建、推送自定义镜像

这几节我们都是使用microk8s学习kubernetes&#xff0c;于是镜像库我们也是使用它的插件——registry。 开启镜像库插件 microk8s enable registry模拟开发环境 我们使用Python作为开发语言来进行本系列的演练。 安装Python sudo apt install python3.11安装Pip3 pip3用于…...

[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集

[网络安全]DVWA之XSS&#xff08;Stored&#xff09;攻击姿势及解题详析合集 XSS(Stored)-low level源代码姿势基于Message板块基于Name板块 XSS(Stored)-medium level源代码姿势双写绕过大小写绕过Xss标签绕过 XSS(Stored)-high level源代码姿势&#xff1a;Xss标签绕过 XSS(S…...

VP记录:Codeforces Round 873 (Div. 2) A~D1

传送门:CF 前题提要:因为本场比赛的D题让我十分难受.刚开始以为 r − l 1 r-l1 r−l1与 r − l r-l r−l应该没什么不同.但是做的时候发现假设是 r − l 1 r-l1 r−l1的话我们可以使用线段树来维护,但是 r − l r-l r−l就让线段树维护的难度大大增加,这导致我十分烦躁,所以…...

【C++】函数提高

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01;时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、函数默认参数 3、函数占位参数 4、总结 1、缘起 以前学习过了函数的基本用法和功能&#xff0c;现在是时候学习函数…...

【可持续能源:让我们迈向绿色、可持续未来的道路】

作为未来的主要能源来源&#xff0c;可持续能源技术确实有潜力改变我们的世界。随着全球对传统化石燃料的依赖程度逐渐降低&#xff0c;可再生能源已成为许多国家推进能源转型的首选。 从太阳能和风能到地热能和潮汐能&#xff0c;可持续能源技术已经在许多方面取得了重大突破…...

ES6中数组新增了哪些扩展?

一、扩展运算符的应用 ES6通过扩展元素符...&#xff0c;好比 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[...document.querySelectorAll(div)] // [<div>, …...

【算法】动态规划

一、基础知识 动态规划的基本思想&#xff1a;将待求解问题分解成若干个子问题&#xff0c;如果各个子问题不是独立的&#xff0c;不同的子问题的个数只是多项式量级&#xff0c;为避免大量的重复计算&#xff0c;用一个表记录所有已解决的子问题的答案&#xff0c;而在需要的…...

HNOI2014 世界树

洛谷P3233 [HNOI2014]世界树 题目大意 有一棵 n n n个点的树&#xff0c;每个点有一个编号&#xff0c;有 q q q次操作。对于每次操作&#xff0c;给出 m m m个点并称为议事点&#xff0c;树上各个点由离这个点最近的议事点管理&#xff08;如果有多个议事点离这个点最近&…...

在MyBatis XML文件中处理特殊符号的方法,如“>”、“<”、“>=”、“<=”这些符号XML会报错如何处理

前言 在MyBatis的XML映射文件中&#xff0c;我们经常需要使用特殊符号&#xff0c;比如"大于"、"小于"、"大于等于"、"小于等于"等比较操作符。然而&#xff0c;这些符号在XML中具有特殊的含义&#xff0c;因此需要进行特殊处理&…...

第三章--第一篇:什么是对话系统?

对话系统是一种人机交互的技术,旨在使计算机能够与人类进行自然而流畅的对话。它是人工智能领域的重要研究方向,具有重要的实际应用价值和广泛的普适性。 首先,对话系统的重要性在于它可以提供高效便捷的人机交互方式。传统的人机界面,如图形用户界面(GUI)和命令行界面(…...

项目基础搭建

一、项目创建 1.下载并安装nodejs 下载完成后&#xff0c;查看node版本 winR 快捷键&#xff0c;cmd确定&#xff0c;进入后台黑框 node -v查看npm安装路径 npm root -g安装cnpm镜像 npm install -g cnpm --registryhttps://registry.npm.taobao.org&#xff1a;查看npm版…...

PFCdocumentation_FISH Rules and Usage

目录 FISH Scripting FISH Rules and Usage Lines Data Types Reserved Names for Functions and Variables Scope of Variables Functions: Structure, Evaluation, and Calling Scheme Arithmetic: Expressions and Type Conversions Redefining FISH Functions Ex…...

如何完美卸载VS2015(2023年5月份实测有效)

使用控制面板卸载VS2015&#xff0c;出现正在配置您的系统&#xff0c;这可能需要一些时间&#xff0c;然后就出现卡住半个小时第二行的条都没有动的问题&#xff0c;这里提供vs2015以及以前版本的卸载方式 问题产生原因:他需要下载一些东西&#xff0c;然后由于你懂的网络原因…...

JavaScript如何声明和定义函数

JavaScript是一门非常有趣的编程语言&#xff0c;它可以让我们创建各种各样的函数来解决各种各样的问题。在JavaScript中&#xff0c;函数的声明和定义非常重要&#xff0c;因为它们决定了函数的行为和执行过程。 首先&#xff0c;让我们来看看JavaScript中函数的声明。在Java…...

微信小程序 WebSocket 通信 —— 在线聊天

在Node栏目就讲到了Socket通信的内容&#xff0c;使用Node实现Socke通信&#xff0c;还使用两个流行的WebSocket 库&#xff0c;ws 和 socket.io&#xff0c;在小程序中的WebSocket接口和HTML5的WebSocket基本相同&#xff0c;可以实现浏览器与服务器之间的全双工通信。那么本篇…...

VMware快照:简化虚拟化环境管理与数据保护

引言&#xff1a; 在虚拟化环境中&#xff0c;数据保护和灵活性是至关重要的。VMware快照作为一项强大的功能&#xff0c;为虚拟机管理者提供了便利和安全性。本文将介绍VMware快照的使用&#xff0c;以及它为用户带来的几个关键优势。 VMware快照是一项重要的功能&#xff0c…...

图的最短路径

最短路径算法对图结构没有特殊要求&#xff0c;不要求连通图&#xff0c;且有向图无向图均可。 最短路径算法目标是求得从某顶点出发&#xff0c;沿图的边到达另一顶点所经过的路径中&#xff0c;各边上权值之和最小的一条路径。解决最短路的问题有以下算法&#xff1a;Dijkst…...

RHCE----Shell变量和引用

1.变量的类型及含义 变量类型: 1、自定义变量: 在当前的shell命令行界面设置的变量是局部变量 例子&#xff1a; num1 namezhangsan 2、环境变量全局变量,通过export 导出后的局部变量是全局变量 、bash的初始化文件&#xff1a;/etc/profile&#xff1a;存放一些全局变量…...

【Redis】聊一下缓存雪崩、击穿、穿透、预热

缓存的引入带来了数据读取性能的提升&#xff0c;但是因此也引入新的问题&#xff0c;一个是数据双写一致性&#xff0c;另一个就是雪崩、击穿、穿透&#xff0c;那么如何解决这些问题&#xff0c;我们来说下对应的问题和解决方案 雪崩 缓存雪崩&#xff1a;同一时间内大量请…...

为什么你的PHP网关在OT环境持续丢包?深度解析ModSecurity规则冲突、SELinux上下文与内核TCP缓冲区三重隐性故障

第一章&#xff1a;工业PHP网关的典型部署架构与OT环境约束在工业自动化&#xff08;OT&#xff09;场景中&#xff0c;PHP网关并非传统Web应用的简单延伸&#xff0c;而是承担协议转换、边缘数据聚合与安全隔离的关键中间件。其部署必须严格适配现场设备的物理连接方式、实时性…...

ESP32驱动MPU-9250 DMP实现硬件级运动处理

1. SparkFun MPU-9250 DMP Arduino库深度解析&#xff1a;面向ESP32平台的嵌入式运动处理实践指南1.1 库定位与工程价值重定义尽管原始README明确声明该库“currently only supports and is tested on SAMD processors”&#xff0c;但其核心设计——基于Invensense官方DMP固件…...

加入csdn 5周年

不知不觉&#xff0c;已经是5年过去了&#xff0c;今天在b站刷了个视频大有感触&#xff0c;决定也用csdn记录一点东西&#xff0c;而不是一直把东西放在github上面或者是本地...

超级个体时代:一人公司+AI Agent军团

超级个体时代:一人公司+AI Agent军团 1. 引入与连接:当一个人成为一支军队 1.1 开场故事:未来已来,只是分布不均 2023年的一个平凡早晨,32岁的独立开发者李明醒来,像往常一样打开了他的"指挥中心"——一个由多个显示屏组成的工作台。但与大多数上班族不同,李…...

易基因|PBJ/IF10.5:西南大学吕典秋课题组揭示m6A甲基化修饰调控马铃薯耐盐性的新机制

​​大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 近日&#xff0c;Plant Biotechnology Journal杂志在线发表了由西南大学吕典秋课题组撰写的“StALKBH10B-mediated RNA m6A modification inhibits potato salt tolerance by target…...

如何划分接口文档?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快1、首先最主要的就是要分析接口测试文档&#xff0c;每一个公司的测试文档都是不一样的。具体的就要根据自己公司的接口而定&#xff0c;里面缺少的内容自己需要与开…...

Flutter 框架跨平台鸿蒙开发 - 亲子故事共创

亲子故事共创应用欢迎加入开源鸿蒙跨平台社区&#xff1a; https://openharmonycrossplatform.csdn.net 一、项目概述 运行效果图1.1 应用简介 亲子故事共创是一款亲子教育类应用&#xff0c;核心理念是"父母孩子一起创作专属故事书"。通过角色设定、剧情分支、插图生…...

火电审计Agent,大模型+RAG降维打击专治台账乱象

假设有两家电厂合谋&#xff0c;通过虚增煤炭采购量、虚构发电量来套取国家补贴。这一案例揭示了一个深层次问题&#xff1a;造假已从简单的财务做账&#xff0c;升级为对底层DCS运行日志、皮带秤称重记录、化验室热量报告等全链条数据的系统性篡改。 传统的事后审计在这类系统…...

Java 25虚拟线程压测翻车实录(从OOM到99.99%可用性跃迁)

第一章&#xff1a;Java 25虚拟线程压测翻车实录&#xff08;从OOM到99.99%可用性跃迁&#xff09;凌晨三点&#xff0c;生产环境告警刺耳响起&#xff1a;JVM堆内存持续飙升至98%&#xff0c;Full GC每分钟触发3次&#xff0c;API成功率断崖式跌至42%。这不是传统线程池过载&a…...

LiquidPrompt性能优化终极指南:让你的Shell提示符运行如飞

LiquidPrompt性能优化终极指南&#xff1a;让你的Shell提示符运行如飞 【免费下载链接】liquidprompt A full-featured & carefully designed adaptive prompt for Bash & Zsh 项目地址: https://gitcode.com/gh_mirrors/li/liquidprompt LiquidPrompt是一个功能…...