这是一个点击之后反应超时的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. Selenium自动化测试插件—Katalon的自述

    Katalon-一款好用的selenium自动化测试插件 Selenium 框架是目前使用较广泛的开源自动化框架,一款好的.基于界面的录制工具对于初学者来说可以快速入门:对于老手来说可以提高开发自动化 ...

  2. 分享13道上海尚学堂拿回来的Java面试真题,这些都是Java核心常见问题,想拿OFFER必看!

    上海尚学堂Java培训学员参加面试带回来的真题,分享出来与大家,希望大家能认真地看看做一遍.后面有详细题解答案,对照下,看看自己做得怎么样,把这些面试遇到的真题全部掌握,做好面试笔试前的准备. 一.1 ...

  3. #Java学习之路——基础阶段(第五篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  4. Python内置函数(42)——memoryview

    英文文档: class memoryview(obj) memoryview objects allow Python code to access the internal data of an o ...

  5. System.Data.Entity.Infrastructure.DbUpdateException

    异常描述:   捕捉到 System.Data.Entity.Infrastructure.DbUpdateException  HResult=-2146233087  Message=无法更新 E ...

  6. ActiveMQ的断线重连机制

    断线重连机制是ActiveMQ的高可用性具体体现之一.ActiveMQ提供failover机制去实现断线重连的高可用性,可以使得连接断开之后,不断的重试连接到一个或多个brokerURL. 默认情况下 ...

  7. Jvm垃圾回收器(基础篇)

    一:概述 在这篇文章中<Jvm运行时数据区>介绍了Java内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈,3个区域随着线程的生存而生存的.内存分配和回收都是确定的.随着线程 ...

  8. 环境与工具3:从打字开始 | vim | sublime

    作为程序员,最不爽的一件事是被亲戚叫去修电脑. "喂,怎么跟你们讲,我是写代码的,不是修电脑的!什么?代码是什么?!" 小白:为什么程序员就不能修电脑了? 小程:会不会修都有可能, ...

  9. Eclipse工具常用快捷键

    Eclipse工具常用快捷键 一丶文件菜单常用快捷键 新建  Alt + shift + N 关闭当前编辑器 Ctrl +W 全部关闭 Ctrl + shift + w 保存  Ctrl + s 刷新 ...

  10. [二十]JavaIO之StringReader 与 StringWriter

    功能简介 还记得前面说过的CharArrayReader 和 CharArrayWriter吗? CharArray 是数据源 CharArrayReader 是读,  从一个CharArray 中读 ...