这是一个点击之后反应超时的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. FFmpeg 学习(四):FFmpeg API 介绍与通用 API 分析

    一.FFmpeg 相关术语 1. 容器/文件(Container/File):即特定格式的多媒体文件,比如MP4,flv,mov等. 2. 媒体流(Stream):表示在时间轴上的一段连续的数据,比如 ...

  2. Java开发快速上手

    Java开发快速上手 前言 1.我的大学 2.对初学者的建议 3.大牛的三大特点 4.与他人的差距 第一章 了解Java开发语言 前言 基础常识 1.1 什么是Java 1.1.1 跨平台性 1.2 ...

  3. [Swift]LeetCode68. 文本左右对齐 | Text Justification

    Given an array of words and a width maxWidth, format the text such that each line has exactly maxWid ...

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

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

  5. [Swift]LeetCode406. 根据身高重建队列 | Queue Reconstruction by Height

    Suppose you have a random list of people standing in a queue. Each person is described by a pair of ...

  6. [Swift]LeetCode572. 另一个树的子树 | Subtree of Another Tree

    Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and no ...

  7. 【Redis篇】Redis持久化方式AOF和RDB

    一.前述 持久化概念:将数据从掉电易失的内存存放到能够永久存储的设备上. Redis持久化方式RDB(Redis DB)   hdfs:    fsimageAOF(AppendOnlyFile)   ...

  8. InstallShield Limited Edition使用说明

    从Visual Studio 2012开始,微软就把自家原来的安装与部署工具彻底废掉了,转而让大家去安装使用第三方的打包工具“InstallShield Limited Edition for Vis ...

  9. Python和C++的混合编程(使用Boost编写Python的扩展包)

    想要享受更轻松愉悦的编程,脚本语言是首选.想要更敏捷高效,c++则高山仰止.所以我一直试图在各种通用或者专用的脚本语言中将c++的优势融入其中.原来贡献过一篇<c++和js的混合编程>也是 ...

  10. 带着萌新看springboot源码

    springboot的功能确实强悍,只需要很少的配置,就能够做出来一个简单的web应用,下面我就简要的分析一下为什么springboot能够起作用. 不觉得很奇怪吗?只需要一个主配置类(就是启动那个m ...