ANR触发原理(what triggers ANR?)】的更多相关文章

Ref: http://developer.android.com/training/articles/perf-anr.html http://stackoverflow.com/questions/3467205/android-key-dispatching-timed-out http://blog.csdn.net/wuhengde/article/details/8007448 谷歌develop官网上对ANR触发机制是这样描述的:…
一.概述 作为 Android 开发者,相信大家都遇到过 ANR.那么为什么会出现 ANR 呢,ANR 之后系统都做了啥.文章将对这个问题详细解说. ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR.一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close. 那么哪些场景会造成ANR呢? S…
ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR. 造成ANR的场景: Service Timeout:比如前台服务在20s内未执行完成: BroadcastQueue Timeout:比如前台广播在10s内未执行完成 ContentProvider Timeout:内容提供者,在publish过超时10s; InputDispatchi…
一.概述 ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR.一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close. 那么哪些场景会造成ANR呢? Service Timeout:比如前台服务在20s内未执行完成: BroadcastQueue Timeout:比如前台广播在10s内未执行…
站在巨人的肩膀上可以看的更远 做一个优秀的搬运工 Android 彻底理解安卓应用无响应机制 Android ANR日志分析全面解析 优秀的文章不可独享,要扩散,要做好笔记,哈 <沁园春长沙> 一九二五年 独立寒秋,湘江北去,橘子洲头. 看万山红遍,层林尽染; 漫江碧透,百舸争流. 鹰击长空,鱼翔浅底, 万类霜天竞自由. 怅寥廓, 问苍茫大地, 谁主沉浮? 携来百侣曾游,忆往昔峥嵘岁月稠. 恰同学少年,风华正茂; 书生意气,挥斥方遒. 指点江山,激扬文字, 粪土当年万户侯. 曾记否, 到中流击…
参考文章: https://www.jb51.net/article/133579.htm https://blog.csdn.net/flaoter/article/details/77509553 https://www.cnblogs.com/arnoldlu/p/7078204.html 中时间子系统相关系列blog,讲的比较详细. 主要文件所在目录: kernel/msm-4.9/kernel/time/tick-common.c.tick-dchrf.c.timer.c.hrtime…
一. 概述 当input事件处理得慢就会触发ANR,那ANR内部原理是什么,哪些场景会产生ANR呢. “工欲善其事必先利其器”,为了理解input ANR原理,前面几篇文章疏通了整个input框架的处理流程,都是为了这篇文章而做铺垫.在正式开始分析ANR触发原理以及触发场景之前,先来回顾一下input流程. 1.1 InputReader 点击查看大图: InputReader的主要工作分两部分: 调用EventHub的getEvents()读取节点/dev/input的input_event结…
一.概述 ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR.一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close. 那么哪些场景会造成ANR呢? Service Timeout:服务在20s内未执行完成: BroadcastQueue Timeout:比如前台广播在10s内执行完成 Co…
1. ANR 产生原理 关于 ANR 的触发原因,Android 官方开发者文档中 "What Triggers ANR?" 有介绍,如下: Generally, the system displays an ANR if an application cannot respond to user input. For example, if an application blocks on some I/O operation (frequently a network access…
1. 核心源码 关键类 路径(/frameworks/base/) ActiveServices.java services/core/java/com/android/server/am/ActiveServices.java ActivityManagerService.java services/core/java/com/android/server/am/ActivityManagerService.java AppErrors.java services/core/java/com/…