Android9.0 framework层InputDispatching造成的的ANR原理分析

news/2024/11/18 0:36:48/

1.前言


  Android系统中,在app中进行一些操作时,系统中的ActivityManagerService(简称AMS)和WindowManagerService(简称WMS)会在app进行操作app时,
检测App的响应时间,如果App在特定时间无法响应屏幕触摸或键盘输入时间,或者特定事件没有处理完毕,就会出现ANR。
以下四个情况都可以造成ANR发生:

    1.InputDispatching Timeout:在app进行操作时,在主线程中5秒内无法响应屏幕触摸事件或键盘输入事件

    2.BroadcastQueue Timeout :在app内执行前台广播(BroadcastReceiver)的onReceive()函数时在主线程中10秒没有处理完成,后台为60秒。

    3.Service Timeout :在系统Service的生命周期的函数中在特定时间内(前台服务20s,后台服务200s)在主线程中无法完成响应。

    4.ContentProvider Timeout :ContentProvider的publish在主线程中在10s内没进行完。
    (进程启动过程中,如果发生会直接杀进程以及清理相应信息,而不会弹出ANR的对话框)
接下来就来分析在主线程中InputDispatching造成阻塞输入无响应的分析

2.framework层app中InputDispatching造成的ANR原理分析的核心类

frameworks/native/services/inputflinger/InputDispatcher.cpp
frameworks/base/services/core/java/com/android/server/wm/WindowMana

http://www.ppmy.cn/news/560818.html

相关文章

简单题:货物摆放

题目大意 给定一个 n n n, n 2021041820210418 n2021041820210418 n2021041820210418,问满足 a b c n a \times b\times cn abcn 的 ( a , b , c ) (a,b,c) (a,b,c) ​ 组合有多少种。 解题思路 ( a , b , c ) (a,b,c) (a,b,c) ​ 肯定是 n n n…

K8S调度器之污点和容忍

1. Taint和Toleration 节点亲和性,是pod的一种属性(偏好或硬性要求),它使pod被吸引到一类特定的节点。Taint则相反,它使节点能够排斥一类特定的pod。Taint和Toleration相互配合,可以用来避免pod被分配到不合适的节点上。每个节点上都可以应用…

Spring(五)基于注解的自动装配

注解:和XML配置文件一样,注解本身并不能执行,注解本身仅仅只是做一个标记,具体的功能是框架检测到注解标记的位置,然后针对这个位置按照注解标记的功能来执行具体操作。 本质上:所以一切的操作都是java代码…

OpenCV从入门到进阶(一)

文章目录 opencv入门到进阶一、图像与视频的加载与展示:1、创建和显示窗口 import cv22、 加载图片3、 保存图片4、 视频采集5、 读取视频文件6、 视频录制7、 鼠标控制8、 TrackBar控件 opencv入门到进阶 一、图像与视频的加载与展示: 1、创建和显示窗…

相同的网下,mac网速很慢怎么解决

试了下只有这个链接可以解决我的问题 https://blog.csdn.net/PRliu/article/details/53945462?depth_1-utm_sourcedistribute.pc_relevant.none-task&utm_sourcedistribute.pc_relevant.none-task

Centos虚拟机网速太慢,下载太慢

调一下就好了 配置之后网速就会快很多了

JDBC 和数据库连接池

JDBC 和数据库连接池 1. JDBC 概述 1.1 基本介绍 JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题Java程序员使用JDBC,可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作。JDBC的基本原理图[重要!]…

电脑网速很快但网页打开很慢

解决办法1:使用360安全卫士DNS优选