Android ANR解决之道

Posted Winston Wood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android ANR解决之道相关的知识,希望对你有一定的参考价值。

话说这日郭靖、黄蓉二人游走在姜庙镇的街上,郭靖深色凝重,愁眉紧锁。

       

黄蓉见状,便关切地问道:靖哥哥这几日可有何心事?
郭靖:蓉儿,这几日项目上遇到了不少ANR的故障,不论我使出何种招式,都没能将他们消灭。
黄蓉:这不难。七公是解决ANR问题的高手,我们可以让他教。
郭靖:这恐怕不易吧,七公可是不轻易传授武艺的。
黄蓉:放心吧。今天中午我做一桌子好菜,保证他教你。
午饭时分,洪七公一手抓着鸡腿狠狠地啃,一边丢给郭靖一本小册子。
洪七公:本来不想教你着笨小子的,我这糟老头子呀,就看在蓉儿聪明伶俐,上得厅堂、下得厨房的份上,且教你一回,你可好好珍惜了。
郭靖接过七公扔过来的小册子,封面上赫然写着“android ANR秘笈”,满是欢喜,便津津有味地读了起来。
秘诀一共分为三个部分:

  • ANR是个啥
  • 为啥会出现ANR
  • ANR解决之道

下面细细来看。
1. ANR是个啥
    Application Not Responding,程序无响应。有三种类型:

  • Key dispatch timeout
  • Broadcast Timeout
  • Service Timeout

2. 为啥会出现ANR

    造成ANR的原因主线程没有及时处理消息。那么主线程为何没有及时处理消息?可能的原因为:

  • 无法获取CPU的运行时间片
  • 等待事件发生
  • 消息处理流程太复杂,耗时太长

 3. ANR解决之道

     这部分就是画了一张图。

所谓大道至简,郭靖深知其中蕴含着深刻的道理,便一刻不敢耽误,马不停蹄地拿去修炼了。
经过几日苦心修炼,终于解决了ANR问题。
从此又可以和黄蓉愉快地玩耍于江湖了。

以上是关于Android ANR解决之道的主要内容,如果未能解决你的问题,请参考以下文章

Android ANR全解析&华为AGC性能管理解决ANR案例集

如何分析解决Android ANR

android ANR产生原因和解决办法

转如何分析解决Android ANR

android ANR产生原因和解决办法

android ANR产生原因和解决办法