"Binder:1120_2" prio=5 tid=11 Blocked
| group="main" sCount=1 dsCount=0 flags=1 obj=0x12e803c8 self=0xb4000074c87b2140
| sysTid=1135 nice=-2 cgrp=default sched=0/0 handle=0x7344c15cc0
| state=S schedstat=( 3915851212 2094093366 9320 ) utm=287 stm=103 core=0 HZ=100
| stack=0x7344b1e000-0x7344b20000 stackSize=995KB
| held mutexes=
at com.android.server.wm.ActivityTaskManagerService$LocalService.getTopApp(ActivityTaskManagerService.java:7232)
- waiting to lock <0x0567c607> (a com.android.server.wm.WindowManagerGlobalLock) held by thread 13
at com.android.server.am.ActivityManagerService.getTopAppLocked(ActivityManagerService.java:18132)
at com.android.server.am.OomAdjuster.updateOomAdjLocked(OomAdjuster.java:381)
at com.android.server.am.ActivityManagerService.updateOomAdjLocked(ActivityManagerService.java:18386)
at com.android.server.am.ActivityManagerService.updateProcessForegroundLocked(ActivityManagerService.java:18125)
at com.android.server.am.ActiveServices.updateServiceForegroundLocked(ActiveServices.java:1844)
at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:1556)
at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:1024)
at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:15275)
- locked <0x0576ae66> (a com.android.server.am.ActivityManagerService)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3152)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2940)
at android.os.Binder.execTransactInternal(Binder.java:1154)
at android.os.Binder.execTransact(Binder.java:1123)
"android.fg" prio=5 tid=12 Blocked
| group="main" sCount=1 dsCount=0 flags=1 obj=0x12e80440 self=0xb4000074c87b58e0
| sysTid=1138 nice=0 cgrp=default sched=0/0 handle=0x72f0d51cc0
| state=S schedstat=( 2746916600 933229324 4359 ) utm=234 stm=40 core=5 HZ=100
| stack=0x72f0c4e000-0x72f0c50000 stackSize=1043KB
| held mutexes=
at com.android.server.am.ActivityManagerService.getUidProcessState(ActivityManagerService.java:8931)
- waiting to lock <0x0576ae66> (a com.android.server.am.ActivityManagerService) held by thread 11
at android.app.ActivityManager.getUidImportance(ActivityManager.java:3784)
at com.android.server.location.AppForegroundHelper.getImportance(AppForegroundHelper.java:126)
at com.android.server.location.LocationManagerService.requestLocationUpdates(LocationManagerService.java:1966)
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:1179)
- locked <0x091e9773> (a android.util.ArrayMap)
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:1140)
at com.android.server.location.gnss.GnssLocationProvider.handleRequestLocation(GnssLocationProvider.java:856)
at com.android.server.location.gnss.GnssLocationProvider.access$2700(GnssLocationProvider.java:106)
at com.android.server.location.gnss.GnssLocationProvider$ProviderHandler.handleMessage(GnssLocationProvider.java:2117)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
at com.android.server.ServiceThread.run(ServiceThread.java:44)
"android.ui" prio=5 tid=13 Blocked
| group="main" sCount=1 dsCount=0 flags=1 obj=0x12e80528 self=0xb4000074c87b9080
| sysTid=1139 nice=-2 cgrp=default sched=0/0 handle=0x72efc47cc0
| state=S schedstat=( 4170421097 900289916 12921 ) utm=298 stm=118 core=2 HZ=100
| stack=0x72efb44000-0x72efb46000 stackSize=1043KB
| held mutexes=
at com.android.server.am.ActivityManagerService.broadcastIntentWithFeature(ActivityManagerService.java:16929)
- waiting to lock <0x0576ae66> (a com.android.server.am.ActivityManagerService) held by thread 11
at android.app.ContextImpl.sendBroadcast(ContextImpl.java:1115)
at com.android.server.wm.DisplayPolicy$2.onSwipeFromBottom(DisplayPolicy.java:522)
- locked <0x0567c607> (a com.android.server.wm.WindowManagerGlobalLock)
at com.android.server.wm.SystemGesturesPointerEventListener.onPointerEvent(SystemGesturesPointerEventListener.java:170)
at com.android.server.wm.PointerEventDispatcher.onInputEvent(PointerEventDispatcher.java:53)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:220)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:200)
at android.view.InputEventReceiver.onBatchedInputEventPending(InputEventReceiver.java:153)
at android.os.MessageQueue.nativePollOnce(Native method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loop(Looper.java:183)
at android.os.HandlerThread.run(HandlerThread.java:67)
at com.android.server.ServiceThread.run(ServiceThread.java:44)
at com.android.server.UiThread.run(UiThread.java:45)
注意关键字 "Binder:1120_2" prio=5 tid=11 Blocked
waiting to lock <0x0576ae66> (a com.android.server.am.ActivityManagerService) held by thread 11
线程11和13互相锁住了,对应代码把上锁的地方去掉就解决问题了。