这是一个点击之后反应超时的ANR

[// ::] - ::57.343      D ActivityManager: Delay resumeKeyDispatchingLocked() to avoid deadlock.
[// ::] - ::57.343 E ANRManager: ANR in com.android.settings (com.android.settings/.LanguageSettings), time=
[// ::] ng up.) // Reason漏了
[// ::] - ::57.343 E ANRManager: Load: 21.75 / 22.85 / 18.3
[// ::] - ::57.343 E ANRManager: Android time :[-- ::57.27] [1490.278]
[// ::] - ::57.343 E ANRManager: CPU usage from 13170ms to 0ms ago:
[// ::] - ::57.343 E ANRManager: % /com.**********.services: % user + % kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: % /system_server: % user + % kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: % /android.process.media: % user + 1.8% kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: % /surfaceflinger: 6.8% user + 6.1% kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /com.android.settings: 9.3% user + 2.4% kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: 8.9% /com.**********.voiceassistant: 7.4% user + 1.5% kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: % /ksdioirqd/mmc1: % user + % kernel
[// ::] - ::57.343 E ANRManager: 3.4% /logd: 1.8% user + 1.5% kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 2.7% /kswapd0: % user + 2.7% kernel
[// ::] - ::57.343 E ANRManager: 2.1% /com.*********.settings<> ()[:RadioServiceThr]i2c ioctl, cmd=0x707, arg=0xa2e1d490
[// ::] : 1.4% user + 0.7% kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: 1.9% /mmcqd/: % user + 1.9% kernel
[// ::] - ::57.343 E ANRManager: 1.6% /com.android.phone: 0.9% user + 0.6% kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: 1.5% /com.android.systemui: 1.2% user + 0.3% kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: 1.4% /com.*********.carplay: 0.8% user + 0.6% kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 1.2% /outhw_thread: % user + 1.2% kernel
[// ::] - ::57.343 E ANRManager: 1.2% /com.**********.radio_v2: 0.9% user + 0.3% kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /mediaserver: 0.6% user + 0.3% kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.9% /mnld: 0.8% user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.5% /stp_sdio_tx_rx: % user + 0.5% kernel
[// ::] - ::57.343 E ANRManager: 0.4% /rcu_preempt: % user + 0.4% kernel
[// ::] - ::57.343 E ANRManager: 0.3% /pb_stream_threa: % user + 0.3% kernel
[// ::] - ::57.343 E ANRManager: 0.3% /zygote: % user + 0.2% kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.3% /servicemanager: % user + 0.2% kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.2% /com.**********.avm.t3plus: 0.1% user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.2% /kworker/:: % user + 0.2% kernel
[// ::] - ::57.343 E ANRManager: 0.2% /kworker/u8:: % user + 0.2% kernel
[// ::] - ::57.343 E ANRManager: 0.2% /wpa_supplicant: 0.1% user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.2% /kworker/u8:: % user + 0.2% kernel
[// ::] - ::57.343 E ANRManager: 0.1% /Audin1AU: % user + 0.1% kernel
[// ::] - ::57.343 E ANRManager: 0.1% /HDMIRxTask Thre: % user + 0.1% kernel
[// ::] - ::57.343 E ANRManager: % /com.gislocation.android.service: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.1% /app_process: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.1% /com.**********.carassistant: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.1% /com.************.btservice: % user + % kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: 0.1% /kworker/u8:: % user + 0.1% kernel
[// ::] - ::57.343 E ANRManager: 0.1% /hif_thread: % user + 0.1% kernel
[// ::] - ::57.343 E ANRManager: 0.1% /com.**********.music: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: 0.1% /kworker/:: % user + 0.1% kernel
[// ::] - ::57.343 E ANRManager: 0.1% /kworker/:: % user + 0.1% kernel
[// ::] - ::57.343 E ANRManager: 0.1% /kworker/:: % user + 0.1% kernel
[// ::] - ::57.343 E ANRManager: % //init: 0% user + 0% kernel
[// ::] - ::57.343 E ANRManager: % /migration/: % user + % kernel
[// ::] - ::57.343 E ANRManager: % /jbd2/mmcblk0p27: % user + % kernel
[// ::] - ::57.343 E ANRManager: % /AudEsm: % user + % kernel
[// ::] - ::57.343 E ANRManager: % /Audin2AU: % user + % kernel
[// ::] - ::57.343 E ANRManager % /HDMIRxCbusLink : % user + % kernel
[// ::] - ::57.343 E ANRManager: % /HDMIRxCbusCmd T: % user + % kerne<> ()[:RadioServiceThr]i2c ioctl, cmd=0x707, arg=0xa2e1d470
[// ::] l
[// ::] - ::57.343 E ANRManager: % /mtk_stp_psm: % user + % kernel
[// ::] - ::57.343 E ANRManager: % /com.android.inputmethod.latin: % user + % kernel / faults: minor major
[// ::] - ::57.343 E ANRManager: % /com.*********.carcameras: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /com.********.bluetooth: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /com.android.defcontainer: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /com.**********.quickbootmanager: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /com.**********.gallery: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /tx_thread: % user + % kernel
[// ::] - ::57.343 E ANRManager: % /com.********.filemanager: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /com.android.externalstorage: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: % /android.process.media: % user + % kernel / faults: minor
[// ::] - ::57.343 E ANRManager: +% /android.process.acore: % user + % kernel
[// ::] - ::57.343 E ANRManager: % T // Total漏了

初步判断是系统和服务占用资源太多,引起原生设置的ANR
在原生设置“语言和输入法”界面点击返回键是在10:24:52.563,原生设置是在10:24:52.723结束,公司设置是在10:24:57.238才收到onConfigurationChanged回调,快5秒了

                                     - ::52.563        4057             ue to no window focus: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_BACK, scanCode=, metaState=, flags=0x68, repeatCount=, eventTime=, downTime=, deviceId=-, source=0x101 }
- ::52.723 D ActivityThread: ACT-DESTROY_ACTIVITY handled : / android.os.BinderProxy@5af997d
Line : [// ::] - ::57.238 D RRIVI : HomeActivity--TAGonConfigurationChanged onConfigurationChanged com.roadrover.settings.ui.activity.HomeActivity@7c8a4d8
[// ::] - ::57.332 V ActivityThread: Performing resume of ActivityRecord{8570c4a token=android.os.BinderProxy@e0af7bb {com.roadrover.settings/com.roadrover.settings.ui.activity.HomeActivity}}
Line : [// ::] - ::57.343 E ANRManager: ANR in com.android.settings (com.android.settings/.LanguageSettings), time=
Line : [// ::] - ::57.671 D RRIVI : HomeActivity--TAGonCreate onCreate com.roadrover.settings.ui.activity.HomeActivity@428a691
Line : [// ::] - ::58.309 D RRIVI : HomeActivity--TAGonResume onResume com.roadrover.settings.ui.activity.HomeActivity@428a691

PS:ACT-DESTROY_ACTIVITY这个操作是在当前activity的onDestroy走了之后才会走得。

[一个ANR问题]

Application is not responding: AppWindowToken{2c381cd0 token=Token{2c38feb8 ActivityRecord{2c2ddce0 u0 com.*********.settings/.common.OptionTabHostActivity}}}.  It has been .8ms since event, .7ms since wait
started. Reason: Waiting because no window has focus but there is a focused application that may eventually add a window when it finishes starting up.
[-  ]I/Process (  ): Sending signal. PID:  SIG:
[- ]I/dalvikvm( ): threadid=: reacting to signal
[- ]I/dalvikvm( ): Wrote stack traces to '/data/anr/traces.txt'
[- ]E/ActivityManager( ): ANR in com.roadrover.settings (com.roadrover.settings/.common.OptionTabHostActivity)
[- ]E/ActivityManager( ): Reason: keyDispatchingTimedOut
[- ]E/ActivityManager( ): Load: 23.33 / 22.43 / 19.7
[- ]E/ActivityManager( ): CPU usage from 33210ms to 0ms ago:

经过分析,发现是可以明显看到,在开始创建窗口,到大约*秒后,系统已经开始分发事件了,此时已经发现没有目标窗口,系统此时已经提醒我们一次了,当然后边呢,目标窗口还是没有创建好,最终就导致ANR了。

可以知道是由于Activity没有顺利执行,刚开始是认为在Activity的onCreate执行失败,但是看了几遍发现onCreate里面没有耗时操作,后来过了几遍log,发现原来是Service里面得一个方法卡住了,导致阻塞了主线程,导致

Activity的onCreate无法顺利执行,而ANR了。

Android开发中碰到的一个ANR问题。的更多相关文章

  1. 在android开发中使用multdex的方法-IT蓝豹为你整理

    Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问 ...

  2. 如何在Android开发中让你的代码更有效率

    最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...

  3. Android 开发中常见的注意点

    这里总结了Android开发中常用的注意点.只有总结,没有展开举例讲解,展开的话,一个点都可以写一篇文章了..... 这类问题都一定不要犯. 重要的事情说三遍!!! 说三遍!!! 遍!!! 资源 不允 ...

  4. Android开发中StackOverflowError

    Android开发中StackOverflowError错误实例分析 一.概述 我在一个复杂的layout嵌套较多的android界面,碰到了java.lang.StackOverflowError这 ...

  5. Android学习探索之Java 8 在Android 开发中的应用

    前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...

  6. java中的反射机制在Android开发中的用处

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反 ...

  7. Android开发中的输入合法性检验

    Why ? 合法性检查对于程序的健壮性具有重要作用.在Android开发中,良好的合法性检查设计机制可以使程序更加清晰,产生bug更少,交互更加友好. What ? 合法性检查的目的在于确定边界.对于 ...

  8. Android开发中的问题及相应解决(持续更新)

    最近博客写的少了,以后还得经常更新才行. ------------------------------------------------------------ 1.特定业务需求下try cath ...

  9. 关于Android开发中的证书和密钥等问题

    关于Android开发中的证书和密钥等问题 引言 除了Android发布应用签名时需要用到证书外,在进行google Map Api开发和Facebook SDK API开发等时都需要申请API Ke ...

随机推荐

  1. [Swift]LeetCode389. 找不同 | Find the Difference

    Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...

  2. 让一个数组中存在N多个函数。让每个函数执行的 时候自动加1

    function test(){ var arr = [ ]; for (var i = 0; i < 10; i++) { (function(i){ arr[i] = function(){ ...

  3. Spring Boot 面试题

    1.列举一些SpringBoot特性 1.创建独立的Spring项目 2.内置Tomcat和Jetty容器 3.提供一个starter POMs来简化Maven配置 4.提供了一系列大型项目中常见的非 ...

  4. 你还在 Select * 吗?

    应用程序慢如牛,原因多多,可能是网络的原因.可能是系统架构的原因,还有可能是数据库的原因. 那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们 ...

  5. 【Redis篇】初始Redis与Redis安装

    一.前述 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括st ...

  6. TLS 1.3 VS TLS 1.2,让你明白 TLS 1.3 的强大

    HTTPS 加密时代已经来临,近两年,Google.Baidu.Facebook 等互联网巨头,不谋而合地开始大力推行 HTTPS, 2018 年 7 月 25 日,Chrome 68 上线,所有 H ...

  7. Linq使用Group By

    1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:Linq使用Group By按C ...

  8. VueJs 监听 window.resize 方法

    Vuejs 本身就是一个 MVVM 的框架. 但是在监听 window 上的 事件 时,往往会显得 力不从心. 比如 这次是 window.resize 恩,我做之前也是百度了一下.看到大家伙都为这个 ...

  9. git - 管理项目(SourceTree的使用)

    Git 相关命令操作全 1.SourceTree 是什么? SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是M ...

  10. 前端笔记之JavaScript(二)关于运算符&初识条件判断语句

    运算符 数学运算符的正统,number和number的数学运算,结果是number.出于面试的考虑,有一些奇奇怪怪的数学运算: 数学运算中:只有纯字符串.布尔值.null能够进行隐式转换. //隐式转 ...