MessageQueue的nativePollOnce导致ANR

来源:6-4 ANR分析与实战

慕雪4289266

2019-05-15

老师您好,有个关于ANR的问题想请教一下您,我在分析trace文件时,发现有很多ANR的主线程堆栈是卡在MessageQueue的nativePollOnce中的,导致没办法继续优化。按我的理解,nativePollOnce方法是主线程空闲的时候会一直阻塞在这里,那为什么发生ANR时,主线程会是空闲状态呢?还有如果遇到这种问题,我们有什么办法可以找到发生ANR真实的点呢?希望老师提供个思路,不胜感激!

写回答

1回答

随风绽放

2019-05-17

同学你好,这种情况确实不好分析。但是我们的App发生了ANR,其实不一定是我们的App自身的问题,系统紧张的情况下也会导致我们的App偶现ANR

  1. 不能只关注trace信息

  2. 你看下trace中的cpu及io信息,以及其它的辅助信息

0
2
随风绽放
回复
慕雪4289266
需要,并且IPC做缓存,比如getVersionName等
2019-05-20
共2条回复

Top团队大牛带你玩转Android性能分析与优化

由表及里学到国内Top团队对性能问题的体系化解决方案

1696 学习 · 532 问题

查看课程