`
isiqi
  • 浏览: 16483051 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android ANR介绍与避免

阅读更多

很多初入Android开发的网友可能发现ANR的字样,到底Android ANR是什么呢? 其实ANR就是Application Not Responding的全称,当某个应用处于长期假死状态时Android系统会弹出一个窗口上面写道,XXX is not responding给出两个按钮一个为force close一个为wait。

可能触发ANR的情况

1. 长时间的I/O处理,比如读写大文件,网络访问时造成的阻塞。

2. 执行耗时的运算,Android默认为超过5000ms即5秒开始弹出ANR窗口,某些应用可能首次执行时没有缓存十分耗时,可以通过Splash播放闪屏Logo等方式来延缓加载

3. Service和appWidget中也要注意多线程的使用,除非它和Activity工作在不同的进程。

避免ANR的方法

1. 单独开工作者线程,通过独立的Thread或使用类似AsyncTask的方式来处理耗时的内容。

2. 耗时的操作尽量分段处理,使用类似状态机的方法,类似Symbian的活动对象将一个复杂的事情,分段执行。

3. UI线程中不要处理过多的内容,比如将一个5MB的文本,让TextView去setText,要知道这种UI操作,没有什么好方法去解决的,所以Android123提示,遇到UI中需要执行复杂的操作,可以参考上面2提到的分段处理方式。

分享到:
评论

相关推荐

    Android-ANR-WatchDog一个用于检测AndroidANR(应用不响应)的watchdog

    在Android应用开发中,ANR(Application Not Responding)是一个常见的问题,表示用户界面无响应,这通常是由于主线程被长时间阻塞导致的。`Android-ANR-WatchDog`是一个专门为解决这个问题而设计的开源工具,它能够...

    android anr

    Android ANR,全称为"Application Not Responding",是Android操作系统中的一种错误状态,提示用户应用程序无响应。当一个应用程序在主线程上执行的操作超过了5秒钟而没有完成时,系统会认为该应用出现ANR问题,并弹...

    通过Android trace文件分析死锁ANR实例过程

    在Android开发过程中,Application Not Responding(ANR)是一个开发者经常遇到的问题,它表示应用程序对用户操作或系统服务请求反应过慢,导致用户体验下降。ANR的产生原因多种多样,其中包括CPU负载过高、输入事件...

    如何分析及避免Android ANR问题.pdf

    ANR(Application Not Responding)问题是Android应用开发者经常会遇到的问题,尤其对于初学者来说,解决这类问题往往比较棘手。ANR问题通常发生在Android应用无法在规定时间内响应输入事件或广播消息时,导致系统弹...

    android anr分析方法

    ANR,全称为Application Not Responding,是Android系统中一种重要的异常情况,表明用户界面无法正常响应用户的操作。当应用程序在指定时间内无法处理按键、触摸事件、BroadcastReceiver或Service时,系统会检测到...

    android anr分析.docx

    Android ANR 分析 ANR(Application Not Responding)是 Android 中的一个错误状态,...本文总结了 ANR 的定义、引发原因、避免方法、检测和分析、解决方法等方面的知识点,为 Android 开发者提供了有价值的参考信息。

    我的总结--Android之ANR的原理(Input, Service, Broadcast)

    ### Android之ANR的原理(Input, Service, Broadcast) #### ANR概述 ANR(Application Not Responding...这对于开发者来说至关重要,因为合理的处理可以避免不必要的ANR情况,从而提升应用程序的整体性能和用户体验。

    Android异常捕获demo(可以捕获ANR+UncaughtExceptionHandler)

    - **避免ANR**:确保主线程不执行耗时操作,使用AsyncTask或其他异步方法处理后台任务。 - **日志记录**:使用Android的Log类记录异常信息,便于调试。 - **崩溃报告**:使用如Crashlytics等第三方服务收集崩溃...

    ANR代码流程分析.doc.tar.gz_ANR分析_android_anr代码_shp

    在Android系统中,ANR(Application Not Responding)是指应用程序无响应的错误,通常发生在用户界面线程上,导致用户无法进行任何操作。本文档"ANR代码流程分析.doc"将深入探讨ANR的产生原因及其相关的代码流程,这...

    Android图片压缩解决方案,解决图片加载过程中ANR现象

    本解决方案旨在探讨如何有效压缩Android中的图片,避免ANR现象,提高用户体验。 首先,理解ANR全称为Application Not Responding,当Android系统检测到主线程被阻塞超过5秒钟时,就会向用户显示ANR对话框。图片加载...

    ANR的监测与定位Demo

    ANR,全称为"Application Not Responding",是Android系统中用于表示应用程序无响应的错误提示。当一个Android应用的主线程在5秒内没有处理完事件(如UI更新、用户输入等)或者BroadcastReceiver在10秒内没有完成...

    android ANR

    该文档主要介绍什么是anr, anr的三种类型,三种类型的具体分析,如何避免anr等等。。

    Android性能优化 ANR 分析指导文档

    Android性能优化 ANR 分析指导文档 一、什么是 ANR? 在 Android 系统中,应用程序的响应性是由 Activity Manager 和 WindowManager 系统服务监视的。当应用程序出现以下情况时,Android 就会针对特定的应用程序...

    安卓日志分析崩溃拦截相关-防止应用程序奔溃抛出错误异常防止应用程序anr.rar

    "安卓日志分析崩溃拦截相关-防止应用程序奔溃抛出错误异常防止应用程序anr.rar"这个资源包聚焦于一个核心问题:如何避免应用程序出现异常崩溃和ANR(Application Not Responding)错误。下面将详细解释相关知识点。 ...

    ANR-WatchDog,安卓系统.zip

    1. **实时监控**:ANR-WatchDog通过监听系统的InputEventReceiver,能够在ANR发生时立即捕获到这一异常情况,避免了用户直接看到系统默认的ANR对话框。 2. **自定义处理**:开发者可以设置ANR发生时的处理策略,...

    ANR软件.rarANR软件.rar

    ANR.exe可能是一个与ANR相关的执行文件,它可能包含了用于分析和调试Android应用程序性能的工具。在Windows环境下,.exe文件通常是可执行程序的后缀。用户或开发者可以运行这个程序来检查和处理Android设备上的ANR...

    ANR各种日志.rar

    通过`logcat`命令获取系统日志,可以找到与ANR相关的条目,这些条目通常包含堆栈跟踪信息,帮助定位问题的具体位置。同时,使用Android Studio的Profiler工具进行性能监控,可以查看CPU使用率、内存占用和线程状态,...

    Android ANR(Application Not Responding)的分析

    Android ANR(Application Not Responding)的分析 Android ANR(Application Not Responding)是指Android系统中应用程序出现响应不够灵敏的情况,系统会向用户显示一个对话框,用户可以选择“等待”或“强制关闭...

    防止ANR错误HandlerThread多线程解决耗时操作MyProject.zip

    在Android应用开发中,"ANR"(Application Not Responding)是开发者经常遇到的问题,它意味着用户界面在一段时间内没有响应用户的操作,通常超过5秒钟。这种情况下,系统会弹出对话框询问用户是否要强制关闭应用。...

Global site tag (gtag.js) - Google Analytics