Android开发中碰到的一个ANR问题。
这是一个点击之后反应超时的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走了之后才会走得。
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问题。的更多相关文章
- 在android开发中使用multdex的方法-IT蓝豹为你整理
Android系统在安装应用时,往往需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问 ...
- 如何在Android开发中让你的代码更有效率
最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...
- Android 开发中常见的注意点
这里总结了Android开发中常用的注意点.只有总结,没有展开举例讲解,展开的话,一个点都可以写一篇文章了..... 这类问题都一定不要犯. 重要的事情说三遍!!! 说三遍!!! 遍!!! 资源 不允 ...
- Android开发中StackOverflowError
Android开发中StackOverflowError错误实例分析 一.概述 我在一个复杂的layout嵌套较多的android界面,碰到了java.lang.StackOverflowError这 ...
- Android学习探索之Java 8 在Android 开发中的应用
前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...
- java中的反射机制在Android开发中的用处
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反 ...
- Android开发中的输入合法性检验
Why ? 合法性检查对于程序的健壮性具有重要作用.在Android开发中,良好的合法性检查设计机制可以使程序更加清晰,产生bug更少,交互更加友好. What ? 合法性检查的目的在于确定边界.对于 ...
- Android开发中的问题及相应解决(持续更新)
最近博客写的少了,以后还得经常更新才行. ------------------------------------------------------------ 1.特定业务需求下try cath ...
- 关于Android开发中的证书和密钥等问题
关于Android开发中的证书和密钥等问题 引言 除了Android发布应用签名时需要用到证书外,在进行google Map Api开发和Facebook SDK API开发等时都需要申请API Ke ...
随机推荐
- 【RL-TCPnet网络教程】第16章 UDP用户数据报协议基础知识
第16章 UDP用户数据报协议基础知识 本章节为大家讲解UDP(User Datagram Protocol,用户数据报协议),需要大家对UDP有个基础的认识,方便后面章节UDP实战操作. ...
- [Swift]LeetCode105. 从前序与中序遍历序列构造二叉树 | Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- [Java]LeetCode237. 删除链表中的节点 | Delete Node in a Linked List
Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...
- [Swift]LeetCode809. 情感丰富的文字 | Expressive Words
Sometimes people repeat letters to represent extra feeling, such as "hello" -> "he ...
- Jquery的详细解析和用法
一.Jquery简介 Jquery是一个优秀的Javascrīpt框架.它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari ...
- Entity Framework Core 2.0 入门
该文章比较基础, 不多说废话了, 直接切入正题. 该文分以下几点: 创建Model和数据库 使用Model与数据库交互 查询和保存关联数据 EF Core支持情况 EF Core的数据库Provide ...
- 初探React与D3的结合-或许是visualization的新突破?
自诞生之初截止目前(2016年初),React可以说是前端界最流行的话题,如果你还不知道React是何物,你就该需要充充电了. d3是由纽约时报工程师开源的一个绘制基于svg的数据可视化工具,是近几年 ...
- ios 自动化构建 code-select: error: tool 'xcodebuild' requires Xcode, but active developer directory.....
问题描述: Pod installation complete! There are 2 dependencies from the Podfile and 3 total pods installe ...
- asp.net core 系列 3 依赖注入服务
一. 依赖注入概述 在软件设计的通用原则中,SOLID是非常流行的缩略语,它由5个设计原则的首字母构成:单一原则(S).开放封闭原则(O).里氏替换原则(L).接口分离原则(I).依赖反转原则(D). ...
- Spring IOC核心源码学习
1. 初始化 大致单步跟了下Spring IOC的初始化过程,整个脉络很庞大,初始化的过程主要就是读取XML资源,并解析,最终注册到Bean Factory中: 在完成初始化的过程后,Bean们就在B ...