• ANR无响应介绍


    1.1 概述

    如果应用程序在一段时间内未做出响应或未结束执行,Android 系统会触发一个“应用程序无响应”(ANR) 对话框。一般来说,这种情况会在应用程序的 UI 线程因正在执行某项工作而无法按时处理输入事件时发生。具体来讲,检测到以下其中一种条件时会触发 ANR 对话框:
    ■ 应用程序未对键盘输入或触屏输入做出响应的时间长达 5 秒以上。
    ■ BroadcastReceiver 未在 10 秒内结束执行(后台广播则为 60 秒)。
    ■ Service 或 ContentProvider 的启动操作未在 20 秒内结束执行(后台服务则为 200 秒)。
    有时,ANR 条件触发后并不显示对话框。这种情况通常是由于内部框架问题所致,例如在应用程序中发生 ANR 的同时,活动管理器或窗口管理器中存在死锁。这种情况最终会导致Android 看门狗超时。

    1.1.1 Logcat ANR 消息

    当应用程序中触发 ANR 时,会发出终止信号 (SIGABRT) 以结束无响应的应用程序。与此同时,logcat 的主缓冲区和系统缓冲区中会出现相应的消息。

    在主 logcat 中,ANR 会显示一个针对应用程序的简单致命终止信号,如下所示:
    Fatal signal 6 (SIGABRT) at 0x000002e5 (code=0), thread 29715 (com.android.settings)
    更为详细的 ANR 消息可在系统 logcat 中查看。其中包含无响应应用程序的重要信息,包括应
    用程序名称、ANR 原因、CPU 加载信息以及 IO 等待信息。

    1. 06-13 15:45:38.923 E/ActivityManager( 654):ANR in com.android.settings
    2. (android/com.andro
  • 相关阅读:
    [Linux]----进程间通信之管道通信
    postgresql-备份与恢复
    日期和时间(C#)
    复杂环境下多移动机器人路径规划研究附Matlab代码
    ctfshow vip题目限免
    【jvm】记一次hive堆heap内存溢出的排查
    12 Go的接口
    工单系统选购指南:解锁高效管理之门的秘密
    【UniApp】-uni-app-自定义组件
    第四十基础:强制等待&隐士等待&显示等待&元素定位方法
  • 原文地址:https://blog.csdn.net/weixin_47456647/article/details/125488817