记录一次ANR的分析过程

2016-05-23  本文已影响0人  qi丶

Android开发中难免碰到ANR问题,但是网上关于ANR的文章并不多,那我就写一篇最近工作中碰到ANR的分析过程。

分析过程

adb shell cat /data/anr/traces.txt > e:\anr.txt

 | group="main" sCount=1 dsCount=0 obj=0x12dbdac0 self=0xb4256800

  | sysTid=4302 nice=0 cgrp=default sched=0/0 handle=0x9d207000

  | state=S schedstat=( 11836166912 2318327808 16610 ) utm=552 stm=631 core=1 HZ=100

  | stack=0x9c7f2000-0x9c7f4000 stackSize=1036KB

  | held mutexes=

  at libcore.io.Posix.fsync(Native method)

  at libcore.io.BlockGuardOs.fsync(BlockGuardOs.java:143)

  at java.io.FileDescriptor.sync(FileDescriptor.java:74)

  at android.os.FileUtils.sync(FileUtils.java:152)

  at android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:598)

  at android.app.SharedPreferencesImpl.access$800(SharedPreferencesImpl.java:51)

  at android.app.SharedPreferencesImpl$2.run(SharedPreferencesImpl.java:512)

  - locked <@addr=0x131d6bf0> (a java.lang.Object)

  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)

  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)

  at java.lang.Thread.run(Thread.java:818)
  

TIP

在分析traces.txt首先搜索自己项目包名的堆栈,这样能很快定位问题,如果没有那就要一步一步的看,在关联自己的代码进行联想。应该能解决ANR问题。

上一篇 下一篇

猜你喜欢

热点阅读