ANR原因分析方法.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ANR原因分析方法

ANR原因分析及解决方法 (技术文档) 内容目录 TOC \f \o 1-9 \o 1-9 \h HYPERLINK \l __RefHeading__20ANR是如何产生的 5 HYPERLINK \l __RefHeading__221 ANR产生条件 5 HYPERLINK \l __RefHeading__242 引起ANR的根本原因 5 HYPERLINK \l __RefHeading__26ANR原因分析方法 5 HYPERLINK \l __RefHeading__281 通过logcat日志分析原因 5 HYPERLINK \l __RefHeading__302 通过trace文件分析原因 9 HYPERLINK \l __RefHeading__32ANR解决方法 12 HYPERLINK \l __RefHeading__36参考资料 12 ANR是如何产生的 ANR产生条件 ANR的产生需要同时满足三个条件: 主线程:只有应用程序进程的主线程响应超时才会产生ANR; 超时时间:产生ANR的上下文不同,超时时间也不同,但只要超过这个时间上限没有响应就会产生ANR; 输入事件/特定操作:输入事件是指按键、触屏等设备输入事件,特定操作是指BroadcastReceiver和Service的生命周期中的各个函数调用。 产生ANR的上下文不同,导致ANR原因也不同,主要有以下三种情况: 应用进程的主线程对输入事件在5s内没有处理完毕; 应用进程的主线程在执行BroadcastRecevier的onReceive函数时10s内没有处理完毕; 应用进程的主线程在执行Service的各个生命周期函数时20s内没有处理完毕; 引起ANR的根本原因 引起ANR的根本原因,总的来说可以归纳为两类: 应用进程自身引起的,比如:主线程阻塞、挂起、死循环,执行耗时操作等; 其他进程引起的,比如:其他进程CPU占用率过高,导致当前应用进程无法抢占到CPU时间片。常见的问题如文件读写频繁,io进程CPU占用率过高,导致当前应用出现ANR; ANR原因分析方法 通过logcat日志分析原因 举一个开发过程中的ANR实例,《从云盘上下载视频到本地,进入下载中心删除任务和文件,进入文件管理提示‘文件管理无响应’》,在logcat日志中输出了以下ANR信息: 01-21 23:58:40.265 975 991 E ActivityManager: ANR in com.letv.filemanager 01-21 23:58:40.265 975 991 E ActivityManager: Reason: Executing service com.letv.filemanager/.netstorage.service.DlnaService 01-21 23:58:40.265 975 991 E ActivityManager: Load: 5.62 / 4.3 / 3.55 01-21 23:58:40.265 975 991 E ActivityManager: CPU usage from 30331ms to 0ms ago: 01-21 23:58:40.265 975 991 E ActivityManager: 26% 1760/com.letv.airplay: 24% user + 1.6% kernel / faults: 1094 minor 01-21 23:58:40.265 975 991 E ActivityManager: 15% 787/cdnclient: 0% user + 15% kernel 01-21 23:58:40.265 975 991 E ActivityManager: 13% 298/kswapd0: 0% user + 13% kernel 01-21 23:58:40.265 975 991 E ActivityManager: 9.5% 1437/com.letv.dmr: 9% user + 0.5% kernel / faults: 572 minor 01-21 23:58:40.265 975 991 E ActivityManager: 9.1% 953/flush-179:0: 0% user + 9.1% kernel 01-2

文档评论(0)

书房 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档