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問題。
從此又可以和黃蓉愉快地玩耍於江湖了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章