展开

关键词

Android ANR与OOM

Android 应用程序启动过程Activity启动过程可以分为两种:一种是根activity的启动过程,另一种是普通activity启动过程。 "android".equals(r.info.packageName)) {                    app.addPackage(r.info.packageName

19610

Android ANR(Application Not Responding)的分析

Android ANR(Application Not Responding)的分析ANR (Application Not Responding)   ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏 默认情况下,在android中Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间则是10秒。 第一:什么会引发ANR? 在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的 。 当它监测到以下情况中的一个时,Android就会针对特定的应用程序显示ANR: 1.在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2.BroadcastReceiver在10秒内没有执行完毕 以上就是Android ANR的详解及解决办法,如有疑问请留言或者在本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

13431
  • 广告
    关闭

    云加社区有奖调研

    参与社区用户调研,赢腾讯定制礼

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android ANR问题解析(一)

    本篇先对ANR做一个简单认识和理解,关于如何分析ANR问题下一篇再讲。ANR简介:ANR,是“Application Not Responding”的缩写,即“应用程序无响应”。 为了便于开发者Debug自己程序中响应迟缓的部分,Android提供了ANR机制。 可惜在实际操作中,某些情况下发生ANR时,被报出ANR的应用并不是真正发生ANR的应用。 =com.android.settings.widget.SettingsAppWidgetProvider (has extras) } 在小内存Android设备上,Kernel中的LowMemoryKiller SERVICE_TIMEOUT : SERVICE_BACKGROUND_TIMEOUT); }ContentProvider执行超时在Android平台上,为方便ContentProvider进行Debug

    54610

    Android ANR 分析学习总结

    什么情况下会发生anr(1). KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应 (2). Service 其他原因造成的anr: (1). 线程死锁 (2). cpu 饥饿3. android.server.search.SearchManagerService$BootCompletedReceiver$1.run(SearchManagerService.java:82)(2) 通过Android trace文件分析死锁ANR ps 另外的例子http:www.eoeandroid.comthread-94087-1-1.html? (3) cpu 饥饿 (Android ANR 分析解决方法) 先看log4-01 13:12:11.572 IInputDispatcher( 220): Application is not responding

    1.1K30

    Android ANR在线监控原理

    Android中的Watchdog在Android中,Watchdog是用来监测关键服务是否发生了死锁,如果发生了死锁就kill进程,重启SystemServerAndroid的Watchdog是在SystemServer

    1.4K20

    AndroidANR报错

    image.pngANRANR(Application Not Responding )应用无响应的简称,是为了在 APP卡死时,用户 可以强制退出APP的选择,从而避免卡机无响应问题,这是Android image.png在Android中,应用程序响应由Activity Manager和Window Manager系统服务进行监视。 ANR(Application Not Responding ),则是Android的一种自我保护措施,当主线程出现卡顿时候,Android 系统会给用户一个弹出提示,让用户手动选择继续等待还是强制关闭此 当Android检测到以下情况之一时,Android将显示特定应用程序的ANR对话框,比如以下三种情况下ANR将经常发生:UI Thread超过 5 s没有响应Broadcast广播超过10 s没响应Service 服务超过 20s 没响应因此,为避免ANR发生,请不要在主线程中进行耗时操作,耗时操作请尽量在子线程中运行。

    10110

    浅谈Android ANR在线监控原理

    Android中的Watchdog在Android中,Watchdog是用来监测关键服务是否发生了死锁,如果发生了死锁就kill进程,重启SystemServerAndroid的Watchdog是在SystemServer

    19630

    Android应用ANR分析

    概述当Android应用的UI线程被阻塞太久时,就会触发一个”Application Not Responding“(ANR)错误。 ANR的原因ANR是因为负责更新UI的主线程无法处理用户输入事件或绘制操作,而导致的糟糕体验。 在Android中,程序的响应性是由Activity Manager与Window Manager系统服务来负责监控的,当系统检测到下面的条件之一时会显示ANR的对话框:对输入事件(例如硬件点击或者屏幕触摸事件 弹窗默认情况下,Android只显示前台ANR弹窗,如果需要允许显示后台ANR弹窗,就要到开发者选项,开启”Show all ANRs“。 分析traces日志文件当发生ANRAndroid系统会存储日志文件。

    36140

    Android应用ANR分析

    概述当Android应用的UI线程被阻塞太久时,就会触发一个”Application Not Responding“(ANR)错误。 ANR的原因ANR是因为负责更新UI的主线程无法处理用户输入事件或绘制操作,而导致的糟糕体验。 在Android中,程序的响应性是由Activity Manager与Window Manager系统服务来负责监控的,当系统检测到下面的条件之一时会显示ANR的对话框:对输入事件(例如硬件点击或者屏幕触摸事件 弹窗默认情况下,Android只显示前台ANR弹窗,如果需要允许显示后台ANR弹窗,就要到开发者选项,开启”Show all ANRs“。 分析traces日志文件当发生ANRAndroid系统会存储日志文件。

    57620

    Android 抓取 ANR 日志终极办法

    Android 开发中,有时会遇到 ANR,一旦出现 ANR 我们就需要拿到对应的trace 文件来分析并解决。本文将介绍两种获取 ANR 的方法。 bugreport-sailfish-QP1A.191005.007.A3-2021-01-12-15-32-54.txt inflating: main_entry.txt inflating: dumpstate_log.txt 查看 ANR

    57820

    Android App 优化之ANR详解

    1.2 为什么会产生ANRAndroid里, App的响应能力是由Activity Manager和Window Manager系统服务来监控的. 1.3 如何避免ANR知道了ANR产生的原因, 那么想要避免ANR, 也就很简单了, 就一条规则:不要在主线程(UI线程)里面做繁重的操作。这里面实际上涉及到两个问题:1.哪些地方是运行在主线程的? 2, ANR分析2.1 获取ANR产生的trace文件ANR产生时, 系统会生成一个traces.txt的文件放在dataanr下. 3.2 使用子线程的方式有哪些上面我们几乎一直在说, 避免ANR的方法就是在子线程中执行耗时阻塞操作. 那么在Android中有哪些方式可以让我们实现这一点呢。 larger than minPrime . . . }} PrimeRun p = new PrimeRun(143);new Thread(p).start();3.2.2 使用AsyncTask这个是Android

    29210

    微信Android客户端的ANR监控方案

    ANR监控是一个非常有年代感的话题了,但是市面上的ANR监控工具,或者并非真正意义上的ANR的监控(而是5秒卡顿监控);或者并不完善,监控不到到所有的ANR。 而想要得到一个完善的ANR监控工具,必须要先了解系统整个ANR的流程。本文分析了ANR的主要流程,给出了一个完善的ANR监控方案。 该方案已经在Android微信客户端上经过全量验证,稳定地运行了一年多的时间。 ? 另外很重要的一个逻辑就是判断当前ANR是否是一个SilentAnr,所谓“沉默的ANR”,其实就是后台ANR,后台ANR跟前台ANR会有不同的表现:前台ANR会弹无响应的Dialog,后台ANR会直接杀死进程 前后台ANR的判断的原则是:如果发生ANR的进程对用户来说是有感知的,就会被认为是前台ANR,否则是后台ANR

    42441

    笔记37 | Android App优化之ANR详解

    当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.在Android里, App的响应能力是由Activity Manager和Window Manager系统服务来监控的. 产生的原因, 那么想要避免ANR, 也就很简单了, 就一条规则:不要在主线程(UI线程)里面做繁重的操作. 如上trace信息中的添加的中文注释已基本说明了trace文件该怎么分析:文件最上的即为最新产生的ANR的trace信息.前面两行表明ANR发生的进程pid, 时间, 以及进程名字(包名).寻找我们的代码点 , 然后往前推, 看方法调用栈, 追溯到问题产生的根源.以上的ANR trace是属于相对简单, 还有可能你并没有在主线程中做过于耗时的操作, 然而还是ANR了. 其实内存原因有可能会导致ANR, 例如如果由于内存泄露, App可使用内存所剩无几, 我们点击按钮启动一个大图片作为背景的activity, 就可能会产生ANR, 这时trace信息可能是这样的: 以下

    56660

    Android卡顿优化 | ANR分析与实战(附ANR-WatchDog源码分析及实战、与AndroidPerformanceMonitor的区别)

    本文要点 ANR概述发生ANRAndroid系统的执行流程ANR-WatchDog原理与实战ANR的传统解决套路ANR模拟实战线上ANR监控方案【ANR-WatchDog原理分析】ANR-WatchDog 实战ANR-WatchDog总结ANR-WatchDog与AndroidPerformanceMonitor的区别 项目GitHub ANR概述KeyDispatchTimeout,5s 即按键或者触摸事件 后Android系统的执行流程APP发生ANR进程接收异常终止信号,开始写入进程ANR信息(当时场景,包含当前线程所有堆栈信息、CPUIO的使用情况等);弹出ANR提示框,提示用户关闭APP或者继续等待 ANR现场信息文件; 导出来后,便可对文件内容进行详细分析:从CPU、IO、锁冲突等原因思考;ANR模拟实战 模拟ANR原因:锁冲突; 更改代码: ? ANR-WatchDog实战引入依赖 初始化ANR-WatchDog: ?

    2.1K31

    最新Android手机导出ANR、tombstones文件 - 无惧Permission denied

    along staff 11543365 Nov 26 18:05 bugreport-raphael-QKQ1.190716.003-2019-11-26-18-03-25.zip在FSdata下分别有anr

    3.9K10

    干货:ANR日志分析全面解析

    一、概述解决ANR一直是Android 开发者需要掌握的重要技巧,一般从三个方面着手。开发阶段:通过工具检查各个方法的耗时,卡顿情况,发现一处修改一处。 线上阶段:这个阶段主要依靠监控工具发现ANR并上报,比如matrix。分析阶段:如果线上用户发生ANR,并且你获取了一份日志,这就涉及了本文要分享的内容——ANR日志分析技巧。 一般来说,发生内存紧张,会导致多个应用发生ANR,所以在日志中如果发现有多个应用一起ANR了,可以初步判定,此ANR与你的应用无关。 (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+72) native: #06 pc 00000000001281c8 systemlib64libandroid_runtime.so

    26130

    Bugly全新功能:卡顿ANR监控

    亲爱的Bugly用户:您好~腾讯Bugly于7月13日正式发布了 iOS卡顿、Android ANR(应用无响应)监控上报功能,业内只此一家,别无分店。 通过卡顿ANR的异常监控,您可以实时了解用户在使用App过程中发生的卡顿ANR问题,有效提升App的流畅度,欢迎大家接入使用。Android ANR:Bugly捕获的ANR,精神哥告诉你是个什么鬼? iOS 卡顿:小萝莉和你聊聊iOS应用卡顿那些事儿 Bugly近期功能更新动态:一SDK功能更新Android SDK V1.2.31) 新增ANR监控和上报功能2) 优化与第三方SDK的兼容性iOS SDK V1.2.71) 新增iOS卡顿监控和上报功能2) 新增会话内关键事件上报功能3) 修复错误信号崩溃时线程堆栈读取出现偏差问题二页面功能更新1、 新增iOS卡顿、Android ANR异常信息展示和统计

    89140

    ANR 原理与实战技巧

    因为你用的android手机。 android手机,为了让手机卡的不成样子,还想让用户知道,就发明了ANR弹框。弹框就弹框,一般的继续等待都是无果,只有结束之才能解决。 android设计了一种机制,认为一些阻挡它生命周期的返回,不能无限制下去。 比如一个点击触屏动作,android系统就计个时,希望你5s内完成动作,如果你5s还没返回,android系统就会认为你傻了,处理这么久还不返回,android系统就干脆弹个框个,给用户说下,这个过程太长了 android默认写入的按键超时配置为:static final int KEY_DISPATCHING_TIMEOUT = 5*1000系统都设计了哪些ANR:1:KeyDispatchTimeout 06总结:android设计了一种机制,保证主要的事务线不让无限的不返回,设计了anr

    1.1K70

    Bugly即将支持的ANR,精神哥告诉你是个什么鬼?

    上帝说要有ANR,于是Bugly就有了ANR上报,那么ANR到底是什么? 最近很多童鞋问起精神哥ANR的问题,那么这次就来聊一下,鸡爪怎么泡才好吃,噢不,是如何快速定位ANR。 当卡住超过一定时间,Android系统认为这就是一次“ANR(Application Not Responding)”。 相信几乎所有Android手机用户都见过这个然并卵的ANR对话框,但大部分普通用户根本不知道这个对话框在讲什么,并且往往也只有关闭App。漫长的等待就给我看这个? Android官方文档建议:1)使用AsyncTask类,可以很方便地实现子线程耗时操作与UI更新;2)对于BroadcastReceiver的耗时操作,建议放到Service中执行;3)对于自建的Thread 为了帮助广大开发者解决这一难题,腾讯Bugly针对iOS的卡顿及AndroidANR提供监测服务即将上线,协助开发者轻松定位问题。

    1.2K40

    如何用 Android vitals 解决应用程序的质量问题

    Android vitals 可以提醒你的问题包括崩溃、应用程序无响应(ANR)和渲染时间。这些问题都直接影响你的用户对应用的体验和看法。 Android vitals 如何显示过度唤醒?了解你的应用是否在驱动过多的唤醒是 Android vitals 的重要任务。 Android vitals 如何显示 ANR?使用收集到的有关你应用 ANR 事件的匿名数据,Android vitals 提供了有关 ANR 的多个级别的详细信息。 详细信息视图的 ANR 比例页面显示了 ANR 比例随时间变化的详细信息,以及按应用版本、Activity 名称、ANR 类型和 Android 版本显示的 ANR 信息。 消除过度唤醒和 ANR 将提高应用程序的质量和可用性,提高评分和评论,进而实现更多安装。通过查看 Android vitals,你可以快速轻松地发现是否存在需要解决的问题。

    28110

    扫码关注云+社区

    领取腾讯云代金券