title: ANR after long app uptime
body: <p>Our app sometimes locks up with ANR after it has been in device foreground for a long time, say over night. The app starts, but only shows black screen. Back and home buttons don't respond until about 10 seconds after they were pressed.</p>
  
  <p>Running the app in strict mode, doesn't highlight any problems.  All network activity, and long running tasks are done on background threads.</p>
  
  <p>Looking at the traces file for our app, I can't identify the "main" thread, so I can't diagnose what is locking up the UI.</p>
  
  <p><a href="https://stackoverflow.com/questions/5491328/application-going-into-anr-mode">This question</a> sounds like the same symptoms, but our app doesn't use the offending library: JmDNS.</p>
  
  <pre><code>----- pid 21220 at 2013-11-26 08:32:09 -----
  Cmd line: com.mygreatapp.reptile
  
  DALVIK THREADS:
  (mutexes: tll=0 tsl=0 tscl=0 ghl=0)
  
  "java.lang.ProcessManager" daemon prio=5 tid=11 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x4242b590 self=0x60d506f0
    | sysTid=21305 nice=0 sched=0/0 cgrp=apps handle=1626388752
    | schedstat=( 1686960 1679167 34 ) utm=0 stm=0 core=0
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x42413810&gt; (a java.util.HashMap)
    at java.lang.Object.wait(Object.java:364)
    at java.lang.ProcessManager.waitForMoreChildren(ProcessManager.java:140)
    at java.lang.ProcessManager.watchChildren(ProcessManager.java:105)
    at java.lang.ProcessManager.access$000(ProcessManager.java:40)
    at java.lang.ProcessManager$1.run(ProcessManager.java:58)
  
  "Thread-30992" prio=5 tid=1 VMWAIT
    | group="main" sCount=1 dsCount=0 obj=0x4528c3f8 self=0x60f0e488
    | sysTid=21220 nice=0 sched=0/0 cgrp=apps handle=1074544432
    | schedstat=( 500594685618 30706953168 460765 ) utm=44353 stm=5705 core=3
    #00  pc 0000dca0  /system/lib/libc.so (__futex_syscall3+8)
    #01  pc 00012e44  /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
    #02  pc 00012ea0  /system/lib/libc.so (__pthread_cond_timedwait+60)
    #03  pc 0004a1af  /system/lib/libdvm.so
    #04  pc 0003a4a1  /system/lib/libdvm.so
    #05  pc 0004d585  /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+452)
    #06  pc 00000dcf  /system/bin/app_process
    #07  pc 00017123  /system/lib/libc.so (__libc_init+38)
    #08  pc 00000b34  /system/bin/app_process
    at dalvik.system.NativeStart.run(Native Method)
  
  "pool-4-thread-1" prio=5 tid=15 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41e20c58 self=0x410e1520
    | sysTid=21281 nice=0 sched=0/0 cgrp=apps handle=1089112720
    | schedstat=( 102424840 33825634 517 ) utm=6 stm=3 core=3
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41cc4b30&gt; (a java.lang.VMThread) held by tid=15 (pool-4-thread-1)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "Thread-30976" prio=5 tid=29 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41e407c8 self=0x60b1cdf0
    | sysTid=21279 nice=0 sched=0/0 cgrp=apps handle=1466754424
    | schedstat=( 22878231471 2961981162 8385 ) utm=2103 stm=184 core=0
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41d189a8&gt; (a java.lang.VMThread) held by tid=29 (Thread-30976)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at crittercism.android.cq.a((null):-1)
    at crittercism.android.cv.run((null):-1)
    at java.lang.Thread.run(Thread.java:856)
  
  "android.hardware.SystemSensorManager$SensorThread" prio=5 tid=28 NATIVE
    | group="main" sCount=1 dsCount=0 obj=0x41f7d9c8 self=0x60b5f5d0
    | sysTid=21277 nice=-8 sched=0/0 cgrp=apps handle=1466031464
    | schedstat=( 629417858 226101457 2481 ) utm=62 stm=0 core=0
    #00  pc 0000da70  /system/lib/libc.so (epoll_wait+12)
    #01  pc 00014899  /system/lib/libutils.so (android::Looper::pollInner(int)+96)
    #02  pc 00014b01  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104)
    #03  pc 00023f5d  /system/lib/libgui.so (android::SensorEventQueue::waitForEvent() const+36)
    #04  pc 0007e085  /system/lib/libandroid_runtime.so
    #05  pc 0001def0  /system/lib/libdvm.so (dvmPlatformInvoke+112)
    #06  pc 0004d14b  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)
    #07  pc 00000214  /dev/ashmem/dalvik-jit-code-cache (deleted)
    at android.hardware.SystemSensorManager.sensors_data_poll(Native Method)
    at android.hardware.SystemSensorManager$SensorThread$SensorThreadRunnable.run(SystemSensorManager.java:133)
    at java.lang.Thread.run(Thread.java:856)
  
  "Binder_4" prio=5 tid=26 NATIVE
    | group="main" sCount=1 dsCount=0 obj=0x41cedae0 self=0x58c98ec0
    | sysTid=21272 nice=0 sched=0/0 cgrp=apps handle=1488945728
    | schedstat=( 701164079 37010713 402 ) utm=66 stm=4 core=0
    #00  pc 0000cb90  /system/lib/libc.so (__ioctl+8)
    #01  pc 00027fcd  /system/lib/libc.so (ioctl+16)
    #02  pc 00016bfd  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
    #03  pc 000173af  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
    #04  pc 0001b171  /system/lib/libbinder.so
    #05  pc 0001104f  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
    #06  pc 0004ba7b  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
    #07  pc 00010bb5  /system/lib/libutils.so
    #08  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
    #09  pc 00012558  /system/lib/libc.so (pthread_create+172)
    at dalvik.system.NativeStart.run(Native Method)
  
  "Binder_3" prio=5 tid=25 NATIVE
    | group="main" sCount=1 dsCount=0 obj=0x41cfbe58 self=0x58ca4e68
    | sysTid=21271 nice=0 sched=0/0 cgrp=apps handle=1485257944
    | schedstat=( 29564295 25159912 195 ) utm=1 stm=1 core=0
    #00  pc 0000cb90  /system/lib/libc.so (__ioctl+8)
    #01  pc 00027fcd  /system/lib/libc.so (ioctl+16)
    #02  pc 00016bfd  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
    #03  pc 000173af  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
    #04  pc 0001b171  /system/lib/libbinder.so
    #05  pc 0001104f  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
    #06  pc 0004ba7b  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
    #07  pc 00010bb5  /system/lib/libutils.so
    #08  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
    #09  pc 00012558  /system/lib/libc.so (pthread_create+172)
    at dalvik.system.NativeStart.run(Native Method)
  
  "AsyncTask #5" prio=5 tid=24 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41cf26f0 self=0x57682458
    | sysTid=21266 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1464170168
    | schedstat=( 135820845754 105683034246 2907951 ) utm=10204 stm=3378 core=2
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41d1d280&gt; (a java.lang.VMThread) held by tid=24 (AsyncTask #5)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "AsyncTask #4" prio=5 tid=23 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41edc388 self=0x57682008
    | sysTid=21265 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1465817672
    | schedstat=( 132577127701 105107036747 2873808 ) utm=9956 stm=3301 core=2
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41c8dbe0&gt; (a java.lang.VMThread) held by tid=23 (AsyncTask #4)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@41eff7c8" daemon prio=5 tid=22 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41e2ac40 self=0x576129a8
    | sysTid=21262 nice=0 sched=0/0 cgrp=apps handle=1465983376
    | schedstat=( 211376 507582 7 ) utm=0 stm=0 core=2
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41f00830&gt; (a java.lang.ref.ReferenceQueue)
    at java.lang.Object.wait(Object.java:401)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
    at org.apache.http.impl.conn.tsccm.RefQueueWorker.run(RefQueueWorker.java:102)
    at java.lang.Thread.run(Thread.java:856)
  
  "AsyncTask #3" prio=5 tid=21 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41ea3cd8 self=0x40e8a150
    | sysTid=21261 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1088988576
    | schedstat=( 147758360521 113209347880 3132414 ) utm=11120 stm=3655 core=0
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41eb3510&gt; (a java.lang.VMThread) held by tid=21 (AsyncTask #3)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:813)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:973)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1282)
    at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
    at roboguice.util.SafeAsyncTask$Task.postToUiThreadAndWait(SafeAsyncTask.java:285)
    at roboguice.util.SafeAsyncTask$Task.doFinally(SafeAsyncTask.java:248)
    at roboguice.util.SafeAsyncTask$Task.call(SafeAsyncTask.java:188)
    at roboguice.util.SafeAsyncTask$Task.call(SafeAsyncTask.java:158)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "AsyncTask #2" prio=5 tid=20 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41f6d6c0 self=0x57600af0
    | sysTid=21260 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1465924288
    | schedstat=( 137061046899 106138943361 2940968 ) utm=10317 stm=3388 core=0
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41f6d990&gt; (a java.lang.VMThread) held by tid=20 (AsyncTask #2)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "pool-3-thread-1" prio=5 tid=19 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41ec84e8 self=0x57600688
    | sysTid=21259 nice=0 sched=0/0 cgrp=apps handle=1089548880
    | schedstat=( 333892046105 50531397520 395232 ) utm=24001 stm=9387 core=3
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41cd3cb0&gt; (a java.lang.VMThread) held by tid=19 (pool-3-thread-1)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "AsyncTask #1" prio=5 tid=18 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41e43190 self=0x57600238
    | sysTid=21258 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1093436480
    | schedstat=( 122133361244 94201913504 2662437 ) utm=9133 stm=3079 core=3
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41e93b30&gt; (a java.lang.VMThread) held by tid=18 (AsyncTask #1)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "pool-1-thread-1" prio=5 tid=17 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41d8d558 self=0x40018928
    | sysTid=21257 nice=0 sched=0/0 cgrp=apps handle=1073843576
    | schedstat=( 538748652 44112875 1633 ) utm=30 stm=23 core=2
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41d958b8&gt; (a java.lang.VMThread) held by tid=17 (pool-1-thread-1)
    at java.lang.Thread.parkFor(Thread.java:1231)
    at sun.misc.Unsafe.park(Unsafe.java:323)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
  
  "com.google.inject.internal.util.$Finalizer" daemon prio=5 tid=14 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41d82388 self=0x40ea8430
    | sysTid=21248 nice=0 sched=0/0 cgrp=apps handle=1089147888
    | schedstat=( 135958 26125 2 ) utm=0 stm=0 core=2
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41d824a8&gt; (a java.lang.ref.ReferenceQueue)
    at java.lang.Object.wait(Object.java:401)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
    at com.google.inject.internal.util.$Finalizer.run(Finalizer.java:114)
  
  "OPTMZ" prio=5 tid=12 WAIT
    | group="main" sCount=1 dsCount=0 obj=0x41ce5b60 self=0x40f1c8c8
    | sysTid=21243 nice=0 sched=0/0 cgrp=apps handle=1089677856
    | schedstat=( 241167 3985041 22 ) utm=0 stm=0 core=1
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41ce5530&gt; (a android.os.ConditionVariable)
    at java.lang.Object.wait(Object.java:364)
    at android.os.ConditionVariable.block(ConditionVariable.java:97)
    at crittercism.android.f.run((null):-1)
    at crittercism.android.cq.a((null):-1)
    at crittercism.android.cv.run((null):-1)
    at java.lang.Thread.run(Thread.java:856)
  
  "Binder_2" prio=5 tid=10 NATIVE
    | group="main" sCount=1 dsCount=0 obj=0x41c97448 self=0x40f17500
    | sysTid=21232 nice=0 sched=0/0 cgrp=apps handle=1089092880
    | schedstat=( 35924382 39652369 228 ) utm=1 stm=2 core=0
    #00  pc 0000cb90  /system/lib/libc.so (__ioctl+8)
    #01  pc 00027fcd  /system/lib/libc.so (ioctl+16)
    #02  pc 00016bfd  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
    #03  pc 000173af  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
    #04  pc 0001b171  /system/lib/libbinder.so
    #05  pc 0001104f  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
    #06  pc 0004ba7b  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
    #07  pc 00010bb5  /system/lib/libutils.so
    #08  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
    #09  pc 00012558  /system/lib/libc.so (pthread_create+172)
    at dalvik.system.NativeStart.run(Native Method)
  
  "Binder_1" prio=5 tid=9 NATIVE
    | group="main" sCount=1 dsCount=0 obj=0x41c971b8 self=0x40eb0008
    | sysTid=21231 nice=0 sched=0/0 cgrp=apps handle=1088983768
    | schedstat=( 41858044 25543380 342 ) utm=2 stm=2 core=0
    #00  pc 0000cb90  /system/lib/libc.so (__ioctl+8)
    #01  pc 00027fcd  /system/lib/libc.so (ioctl+16)
    #02  pc 00016bfd  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
    #03  pc 000173af  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
    #04  pc 0001b171  /system/lib/libbinder.so
    #05  pc 0001104f  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
    #06  pc 0004ba7b  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
    #07  pc 00010bb5  /system/lib/libutils.so
    #08  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
    #09  pc 00012558  /system/lib/libc.so (pthread_create+172)
    at dalvik.system.NativeStart.run(Native Method)
  
  "FinalizerWatchdogDaemon" daemon prio=5 tid=8 WAIT
    | group="system" sCount=1 dsCount=0 obj=0x41c94180 self=0x40e096f0
    | sysTid=21230 nice=0 sched=0/0 cgrp=apps handle=1089149536
    | schedstat=( 193951857 409607638 3031 ) utm=8 stm=10 core=0
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x41311cf8&gt; (a java.lang.Daemons$FinalizerWatchdogDaemon)
    at java.lang.Object.wait(Object.java:364)
    at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:214)
    at java.lang.Thread.run(Thread.java:856)
  
  "FinalizerDaemon" daemon prio=5 tid=7 WAIT
    | group="system" sCount=1 dsCount=0 obj=0x41c93fd0 self=0x40ea38c0
    | sysTid=21229 nice=0 sched=0/0 cgrp=apps handle=1074231352
    | schedstat=( 2874811820 653275129 6681 ) utm=224 stm=62 core=3
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x413005d0&gt; (a java.lang.ref.ReferenceQueue)
    at java.lang.Object.wait(Object.java:401)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:169)
    at java.lang.Thread.run(Thread.java:856)
  
  "ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT
    | group="system" sCount=1 dsCount=0 obj=0x41c93e68 self=0x40ea78a8
    | sysTid=21228 nice=0 sched=0/0 cgrp=apps handle=1089109240
    | schedstat=( 579457779 268872517 10279 ) utm=44 stm=13 core=0
    at java.lang.Object.wait(Native Method)
    - waiting on &lt;0x413004f8&gt; 
    at java.lang.Object.wait(Object.java:364)
    at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:129)
    at java.lang.Thread.run(Thread.java:856)
  
  "Compiler" daemon prio=5 tid=5 VMWAIT
    | group="system" sCount=1 dsCount=0 obj=0x41c93d78 self=0x40ed3568
    | sysTid=21227 nice=0 sched=0/0 cgrp=apps handle=1089689680
    | schedstat=( 13840664945 2175691525 62372 ) utm=829 stm=555 core=3
    #00  pc 0000dca0  /system/lib/libc.so (__futex_syscall3+8)
    #01  pc 00012e44  /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
    #02  pc 00012ea0  /system/lib/libc.so (__pthread_cond_timedwait+60)
    #03  pc 0006f955  /system/lib/libdvm.so
    #04  pc 00053b8f  /system/lib/libdvm.so
    #05  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
    #06  pc 00012558  /system/lib/libc.so (pthread_create+172)
    at dalvik.system.NativeStart.run(Native Method)
  
  "JDWP" daemon prio=5 tid=4 VMWAIT
    | group="system" sCount=1 dsCount=0 obj=0x41c93c90 self=0x40dcf718
    | sysTid=21226 nice=0 sched=0/0 cgrp=apps handle=1087520184
    | schedstat=( 164604246 215945407 747 ) utm=14 stm=1 core=1
    #00  pc 0000d758  /system/lib/libc.so (recvmsg+8)
    #01  pc 00060383  /system/lib/libdvm.so
    #02  pc 00060581  /system/lib/libdvm.so
    #03  pc 0006327b  /system/lib/libdvm.so
    #04  pc 00053b8f  /system/lib/libdvm.so
    #05  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
    #06  pc 00012558  /system/lib/libc.so (pthread_create+172)
    at dalvik.system.NativeStart.run(Native Method)
  
  "Signal Catcher" daemon prio=5 tid=3 RUNNABLE
    | group="system" sCount=0 dsCount=0 obj=0x41c93b98 self=0x40f01ca8
    | sysTid=21224 nice=0 sched=0/0 cgrp=apps handle=1089261720
    | schedstat=( 89234254 24155125 31 ) utm=4 stm=4 core=0
    at dalvik.system.NativeStart.run(Native Method)
  
  "GC" daemon prio=5 tid=2 VMWAIT
    | group="system" sCount=1 dsCount=0 obj=0x41c93ab8 self=0x410cfde0
    | sysTid=21222 nice=0 sched=0/0 cgrp=apps handle=1464184336
    | schedstat=( 75670018971 4421244466 25704 ) utm=7432 stm=135 core=3
    #00  pc 0000dca0  /system/lib/libc.so (__futex_syscall3+8)
    #01  pc 00012e44  /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
    #02  pc 00012ea0  /system/lib/libc.so (__pthread_cond_timedwait+60)
    #03  pc 0006e65b  /system/lib/libdvm.so
    #04  pc 00053b8f  /system/lib/libdvm.so
    #05  pc 00012e00  /system/lib/libc.so (__thread_entry+48)
    #06  pc 00012558  /system/lib/libc.so (pthread_create+172)
    at dalvik.system.NativeStart.run(Native Method)
  
  NATIVE THREADS:
  "ekeeper.reptile" sysTid=21267 nice=0 sched=0/0 cgrp=apps
    | schedstat=( 18500 0 1 ) utm=0 stm=0 core=0
  
  "ekeeper.reptile" sysTid=21268 nice=0 sched=0/0 cgrp=apps
    | schedstat=( 572297498 198605347 10711 ) utm=25 stm=32 core=1
  
  "ekeeper.reptile" sysTid=21269 nice=0 sched=0/0 cgrp=apps
    | schedstat=( 1489497433 692708683 24726 ) utm=39 stm=109 core=2
  
  ----- end 21220 -----
  </code></pre>
  
  <p>Some more info in <a href="http://dl.dropboxusercontent.com/u/22456079/post%20files/SO/20210470/dumpstate_app_anr.txt.gz" rel="nofollow noreferrer">dumpstate</a> file. (Retrieved from device after ANR at /data/log/dumpstate_app_anr.txt.gz) Process ID of app is 16042 with Unix user app_112.  Looking at the more detailed logcat (search for MAIN LOG in the file), it looks like OutOfMemoryException.  But I would expect the JVM to crash and restart, not lockup in this zombie state.  What is keeping the app from crashing successfully?</p>
  
  <p>More info of /proc/PID/ folder in <a href="http://dl.dropboxusercontent.com/u/22456079/post%20files/SO/20210470/11.zip" rel="nofollow noreferrer">zip file</a> of frozen Android app.</p>