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问题。
从此又可以和黄蓉愉快地玩耍于江湖了。

发布了7 篇原创文章 · 获赞 17 · 访问量 8126

猜你喜欢

转载自blog.csdn.net/wudexiaoade2008/article/details/105183574