Android ANR是什么?
Android ANR
- 前言
- 一、ANR产生的原因
- 二、如何尽量避免ANR?
前言
ANR:Application Not Responding,应用程序无响应
一、ANR产生的原因
Android系统中的AMS(ActivityManagerService) 和 WMS(WindowManagerService)会检测App的响应时间,如果App的主线程(UI线程)没有在规定的时间内处理完相应的工作,就会出现ANR警告。
以下四个条件可以产生ANR:
InputDispatching Timeout: 5s内无法响应屏幕触摸事件或键盘输入事件。
BroadcastQueue Timeout: BroadcastReceiver的事件(onRecieve方法)在规定时间内没处理完成(前台规定时间:10s,后台规定时间:60s)。
Service Timeout: 规定时间未完成启动 Timeout executing service(前台:20s 后台:200s)。
ContentProvider Timeout: ContentProvider的publish在10s内没进行完
二、如何尽量避免ANR?
尽量避免在主线程(UI线程)中做耗时工作,耗时工作尽量放在子线程中
尽量用Handler来处理UI Thread和别的Thread交互
实在绕不开主线程,可以尝试通过Handler延迟加载;
广播中如果有耗时操作,建议放在IntentService中去执行,或者通过goAsync() + HandlerThread分发执行。
Android ANR是什么?相关推荐
- 转 android anr 分析示例,[摘]Android ANR日志分析指南之实例解析
前文<[摘]Android ANR日志分析指南>也摘抄了如何分析,接下来通过实例解析. 一.主线程被其他线程lock,导致死锁 waiting on <0x1cd570> (a ...
- Android ANR
ANRs ("Application Not Responding"),意思是"应用没有响应". 1)什么引发了ANR? 在Android里,应用程序的响应性是 ...
- Android 系统(135)---Android anr 分析步骤总结
Android anr 分析步骤总结 前言:最近经手了比较多的anr问题,声明经手不是解决,只是从log上推断造成anr的原因,以此作为根据转交给对应的人来处理. 1. ANR简介 ANR全名Appl ...
- android anr 产生的类型及原因
android anr 产生的条件 android 系统中anr的本质是主线程无法响应.而导致主线程无法响应的原因大致如下: 主线程请求网络资源,数据库访问或者io访问,这些操作都是耗时操作,主线程处 ...
- Android anr介绍
1)什么引发了ANR? 在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的.当它监测到以下情况中的一个时,Android就会针对特定的应 ...
- Android ANR是什么
很多初入Android 开发的网友可能发现ANR的字样,到底Android ANR是什么呢? 其实ANR就是Application Not Responding的全称,当某个应用处于长期假死状态时An ...
- Android ANR 搜集
Android ANR排查 应用层一般如下情况下需要查看log 1) 程序异常退出 , uncaused exception 2) 程序强制关闭 ,Force Closed (简称FC) 3) 程序无 ...
- Android ANR问题总结(非原创)
<title>Android ANR问题总结(非原创) - Vane的博客 | Vane's Blog</title><!-- Web App Manifest --&g ...
- 看完这篇 Android ANR 分析,就可以和面试官装逼了!
点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 本文转载自公号玉刚说,原创作者htkeepmoving,原文链接:https://www.jianshu ...
最新文章
- Delphi Qjson
- 计算密集型服务 性能优化实战始末
- Where does the setting xx-bindingSuntax - complex take effect
- 通过一段汇编,加深对寄存器ESP和EBP的理解
- 解决虚拟机VMware安装CentOS7.0识别不到网卡
- php 读取 stl 文件,科学网—[转载]【源码】读取ASCII STL文件的STLReader - 刘春静的博文...
- leetcode - 898. 子数组按位或操作(使用了集合)
- centos 7 安装kvm 虚拟机
- matlab使用histogram画直方图划分柱宽度不一致问题
- 存数组元素的个数_HashMap1.8之后为什么要采用数组+链表+红黑树的储存方式?
- java中对数组进行排序_如何在Java中对数组排序
- 大数据开发笔记(九):Flink基础
- 系统集成项目管理工程师 案例题【2021上】 总结
- windows下解决mysql secure_file_priv null的问题
- 网站的海量数据和高并发的解决方案(二)
- 关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训)
- [文献阅读]——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- 视频号新人直播应该准备什么?
- 解决blacklist nouveau问题
- 计算机能进入系统但是桌面不动,电脑开机进入桌面后卡住不动
热门文章
- 烧烤架,烧烤套装,烧烤刷CSA Z630:19标准
- 全国领先——液力悬浮仿生型人工心脏上市后在同济医院成功植入
- android裁剪控件,Android 仿抖音音频裁剪控件
- java retro2me_模拟乐园java版下载-模拟乐园java手机版下载-战地2中文网
- GB2312 中文简体字库表
- 安装算量软件点画立管_给排水、喷淋、消火栓等专业
- OpenCV puttext不调库显示中文
- SourceTree 提交报错 闪退
- A Frustratingly Easy Approach for Entity and Relation Extraction 论文阅读
- 日常用语--生病看医生