Step 1: According the log:
android.display- waiting to lock tid=13
"android.fg" prio=5 tid=13 Blocked
| group="main" sCount=1 dsCount=0 obj=0x12cce900 self=0x6d2b8c00
| sysTid=651 nice=0 cgrp=default sched=0/0 handle=0x60151930
| state=S schedstat=( 2783064748 1301129593 5898 ) utm=128 stm=150 core=1 HZ=100
| stack=0x6004f000-0x60051000 stackSize=1038KB
| held mutexes=
at com.android.server.am.ActivityManagerService.monitor(ActivityManagerService.java:19743)
- waiting to lock <0x0a24b828> (a com.android.server.am.ActivityManagerService) held by thread 26
at com.android.server.Watchdog$HandlerChecker.run(Watchdog.java:178)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.android.server.ServiceThread.run(ServiceThread.java:46)
Step 2:
I found waiting to lock <0x0a24b828> (a com.android.server.am.ActivityManagerService) held by thread 26
"InputDispatcher" prio=10 tid=26 Native
| group="main" sCount=1 dsCount=0 obj=0x1300c0a0 self=0x5e44e400
| sysTid=693 nice=-8 cgrp=default sched=0/0 handle=0x5b086930
| state=S schedstat=( 93760988115 21401929076 301072 ) utm=4700 stm=4676 core=2 HZ=100
| stack=0x5af8a000-0x5af8c000 stackSize=1014KB
| held mutexes=
kernel: binder_thread_read+0x38e/0xb97
kernel: binder_ioctl+0x36c/0x770
kernel: do_vfs_ioctl+0x2e2/0x4d0
kernel: SyS_ioctl+0x60/0x90
kernel: sysenter_after_call+0x0/0x15
native: #00 pc 00000ade [vdso] (__kernel_vsyscall+14)
native: #01 pc 000991f8 /system/lib/libc.so (__ioctl+24)
native: #02 pc 000ab82b /system/lib/libc.so (ioctl+43)
native: #03 pc 00027c23 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+195)
native: #04 pc 00028814 /system/lib/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+132)
native: #05 pc 00028abb /system/lib/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+171)
native: #06 pc 0001d8ee /system/lib/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+78)
native: #07 pc 000d8f9d /system/lib/libandroid_runtime.so (???)
native: #08 pc 010bc629 /system/framework/x86/boot.oat (Java_android_os_BinderProxy_transactNative__ILandroid_os_Parcel_2Landroid_os_Parcel_2I+221)
native: #09 pc 8bfc81d1 ???
native: #10 pc 9a9ee1b5 ???
at android.os.BinderProxy.transactNative(Native method)
at android.os.BinderProxy.transact(Binder.java:503)
at android.app.IActivityController$Stub$Proxy.activityStarting(IActivityController.java:172)
at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1618)
at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:1045)
- locked <0x0a24b828> (a com.android.server.am.ActivityManagerService)
at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:3863)
at android.app.ContextImpl.startActivityAsUser(ContextImpl.java:686)
at android.app.ContextImpl.startActivityAsUser(ContextImpl.java:665)
at com.android.server.policy.PhoneWindowManager.startActivityAsUser(PhoneWindowManager.java:3222)
at com.android.server.policy.PhoneWindowManager.interceptKeyBeforeDispatching(PhoneWindowManager.java:3028)
at com.android.server.wm.InputMonitor.interceptKeyBeforeDispatching(InputMonitor.java:375)
at com.android.server.input.InputManagerService.interceptKeyBeforeDispatching(InputManagerService.java:1466)
Step 3:
As above tracebrack shows, AMS blocked at a binder transaction from 635:693.
proc 635
thread 693: l 10
outgoing transaction 4249848: 84e19380 from 635:693 to 23473:23494 code 1 flags 10 pri -8 r1 node 1986461 size 444:0 data c5b80058
Step 4:
The process ID:23473 belonged to com.android.commands.monkey which encountered an ANR.
12-15 00:06:11.956 23473 17200 W art : Long monitor contention event with owner method=int com.android.commands.monkey.Monkey.runMonkeyCycles() from Monkey.java:1040 waiters=0 for 6.646s
12-15 00:06:11.960 23473 17200 I dvm_lock_sample: [com.android.commands.monkey,1,Binder_19,6646,Monkey.java,330,-,1040,100]
12-15 00:06:49.367 635 1423 W InputManager: Input event injection from pid 23473 failed.
12-15 00:08:10.758 23473 23489 I art : Thread[2,tid=23489,WaitingInMainSignalCatcherLoop,Thread*=0x6f642000,peer=0x12c370a0,"Signal Catcher"]: reacting to signal 3