ANR
文章平均质量分 92
风再起时与不羁的风
没有人天生优秀,但我们有一颗执着向上的心!
展开
-
ANR源码分析之InputDispatcher Timeout
在上篇文章中,介绍ANR产生的原因、ANR的分类以及ANR问题的分析。本篇文章接下来将从源码的角度来分析ANR产生的过程,首先介绍InputDispatcher Timeout产生的过程。在ANR产生时,最终都会调用到appNotResponding()方法,该方法在Android 7.0以前定义在ActivityManagerService.java类中,在Android 7.0中定义在AppE原创 2017-05-24 00:03:54 · 2768 阅读 · 0 评论 -
ANR源码分析之Broadcast Timeout
在上篇文章中,介绍了InputDispatcher Timeout的流程。本篇文章将介绍Broadcast Timeout的流程。 我们知道广播根据注册的方式的可以分为静态注册广播和动态注册广播,根据发送方式可以分为普通广播、有序广播、Sticky广播以及APP内广播。广播执行的方式有两种,一种是串行执行,另外一种是并发执行。并发执行的广播是不存在超时的情况,例如动态注册的非有序的广播。而串行执行原创 2017-05-24 00:23:43 · 2481 阅读 · 0 评论 -
ANR源码分析之ContentProviderClient Timeout
在上篇文章中,分析了Service Timeout的过程。这篇文章将继续分析ContentProviderClient Timeout的流程。当使用ContentProviderClient执行Provider相关操作时,会设定一个超时时间,如果在指定的超时时间内,没有完成操作,则会产生一个ANR。ContentProviderClient Timeout整体的流程如下:1.acqui原创 2017-05-24 00:51:34 · 2044 阅读 · 0 评论 -
ANR源码分析之Service Timeout
在前面的一篇文章中,分析了Broadcast Timeout的流程,接下来继续分析Service Timeout的流程。Service默认不会运行在子线程中,它也不会运行在一个独立的进程中,它同样执行在UI线程中,因此也不能在Service中执行耗时操作,否则也会产生的ANR。Service Timeout整体流程如下图所示:1.startService(ContextIm原创 2017-05-24 00:42:48 · 5862 阅读 · 0 评论 -
ANR问题浅析
我们在Android应用开发中,会经常遇到ANR问题。本文将从ANR产生的原因、ANR的分类、ANR问题的分析、ANR问题的常见解决办法这几个方面来介绍ANR。最后会通过分析ANR源码,了解ANR产生的过程。一、ANR简介ANR是Application Not Responding的简称,即应用无响应。ANR产生的原因是由于应用在主线程阻塞了,导致界面无响应。超时的原因一般为两种:原创 2017-05-23 22:34:50 · 10345 阅读 · 0 评论 -
输入事件ANR原理分析
输入事件ANR原理分析输入事件ANR原理分析简介源码分析总结1.简介当输入事件长时间未响应,则会发生ANR。输入事件ANR超时时间一般为5s。在InputDispatcher分发输入事件的过程中,会监控是否发生了ANR。具体是在执行findFocusedWindowTargetsLocked()方法时,如果当前窗口还未准备好处理输入事件,则会调用handleTargetsNotReadyL原创 2017-09-30 19:45:55 · 1674 阅读 · 0 评论