在Android上,如果应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。ANR对于应用的影响并不亚于崩溃,一个流畅的合理的应用程序中不应该出现ANR。因此,在应用程序里对响应性能的设计很重要,一旦发生ANR就应该及时分析原因并修复问题,以免影响用户体验。
目前,透视宝支持对ANR信息的抓取,通过对ANR的深入追踪和分析相关线程、Trace文件和信息,帮助您发现引起ANR的原因,通过优化应用程序的性能,减少并避免ANR,提升用户体验。
概览分析
在概览页,查看一段时间内所选App版本的ANR整体分析,包括概要信息、ANR率、ANR数变化趋势、ANR列表及ANR分布(设备、OS版本、运营商、接入方式、地域)。
在概要信息中查看一段时间内所选App版本发生ANR的比率、发生ANR的用户、发生ANR的总次数及人均次数。
在ANR率中查看所有ANR的App版本及每个版本的ANR率。
在ANR列表中查看ANR摘要、ANR次数、影响设备、APP版本、首次发生时间 及最近发生时间,点击<查看更多>按钮查看全部ANR列表。
详细分析
在ANR列表中,点击ANR摘要信息可以查看单个ANR的详细分析,包括ANR趋势、设备分布、系统版本分布及ANR追踪信息。
在ANR追踪中,查看当前ANR每次的详细信息,包括App基本的软硬件信息、ANR线程、全部线程、ANR Trace文件及ANR Message信息。
通过透视宝提供的信息分析ANR的类型、CPU的使用情况、调用堆栈等信息,从而确认导致ANR的原因并找到解决方法。
例如:
n 如果CPU使用量接近100%,说明当前设备很忙,有可能是CPU饥饿导致了ANR。
n 如果CPU使用量很少,说明主线程被BLOCK了。
n 如果IOwait很高,说明ANR有可能是主线程在进行I/O操作造成的。