电子手册:com.mengbo.electronicmanual
ANR 类型: Input Dispatching Timed Out (Focus Time-out / 无焦点窗口)
12-01 18:53:28.440421 956 25449 I am_anr : [0,4174,com.mengbo.electronicmanual,684244549,Input dispatching timed out (ActivityRecord{1c12745 u0 com.mengbo.electronicmanual/.view.MainActivity t441} does not have a focused window)]
主线程状态:主线程(TID 4174)处于 Sleeping (S) 状态,正在 MessageQueue 空闲等待,排除主线程死锁或主线程执行耗时操作导致的anr
2025-12-01 18:53:28
"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 flags=1 obj=0x7238a330 self=0xb400007ca15db380
| sysTid=4174 nice=0 cgrp=default sched=0/0 handle=0x7e27f3d4f8
| state=S schedstat=( 25077469363 3079876333 51374 ) utm=1831 stm=676 core=3 HZ=100
| stack=0x7fce68d000-0x7fce68f000 stackSize=8192KB
| held mutexes=
native: #00 pc 000000000009c0b8 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8)
native: #01 pc 0000000000019ad0 /system/lib64/libutils.so (android::Looper::pollInner(int)+184)
native: #02 pc 00000000000199b0 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112)
native: #03 pc 00000000001110b4 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
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.app.ActivityThread.main(ActivityThread.java:7715)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:998)
系统资源状况正常:
CPU 负载:12-01 18:53:28.778255 956 25449 E ActivityManager: Load: 0.0 / 0.0 / 0.0
进程 CPU 占用:12-01 18:53:28.778255 956 25449 E ActivityManager: 4.1% 4174/com.mengbo.electronicmanual: 2.3% user + 1.7% kernel / faults: 5924 minor
I/O 等待: (0.1% iowait)
内存压力:
12-01 18:53:28.778255 956 25449 E ActivityManager: some avg10=0.00 avg60=0.00 avg300=0.00 total=24204431
12-01 18:53:28.778255 956 25449 E ActivityManager: full avg10=0.00 avg60=0.00 avg300=0.00 total=13263273
分析原因:
18:53:23.007923:Monkey 发送 Intent 启动com.mengbo.electronicmanual/.view.MainActivity
12-01 18:53:23.007923 26799 26799 I Monkey : :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.mengbo.electronicmanual/.view.MainActivity;end
18:53:23.011539:ActivityTaskManager 开始处理启动请求
12-01 18:53:23.011539 956 14457 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.mengbo.electronicmanual/.view.MainActivity} from uid 0 ; pid 26799 ; callingPkg null
18:53:23.026924:系统开始 resume MainActivity
12-01 18:53:23.026924 956 14457 I wm_set_resumed_activity: [0,com.mengbo.electronicmanual/.view.MainActivity,bringingFoundTaskToFront]
18:53:23.339161:Monkey 发送了一个KEYCODE_DPAD_CENTER(ACTION_DOWN)事件,由于MainActivity 正在启动没有窗口有焦点,启动 5000 毫秒输入分发等待计时器,等待 MainActivity 的窗口获得焦点
12-01 18:53:23.339161 26799 26799 I Monkey : :Sending Key (ACTION_DOWN): 23 // KEYCODE_DPAD_CENTER
12-01 18:53:23.340600 956 1038 I System.out: MBL_PhoneWindowManagerPlugs_the keyevent is KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_CENTER, scanCode=0, metaState=0, flags=0x8, repeatCount=0, eventTime=18468467, downTime=18468467, deviceId=-1, source=0x101, displayId=-1 }
12-01 18:53:23.340888 956 1038 W InputDispatcher: Waiting because no window has focus but ActivityRecord{1c12745 u0 com.mengbo.electronicmanual/.view.MainActivity t441} may eventually add a window when it finishes starting up. Will wait for 5000ms
12-01 18:53:23.340984 956 1038 W InputDispatcher: Still no focused window. Will drop the event in 4999ms
12-01 18:53:28.061811:还是没获取到焦点
12-01 18:53:28.061811 956 1038 W InputDispatcher: Still no focused window. Will drop the event in 279ms
18:53:28.346266:5 秒内该窗口没有成功获得焦点,输入事件无法分发,计时器超时
18:53:28.346266 956 1038 I WindowManager: Input event dispatching timed out sending to application ActivityRecord{1c12745 u0 com.mengbo.electronicmanual/.view.MainActivity. Reason: ActivityRecord{1c12745 u0 com.mengbo.electronicmanual/.view.MainActivity t441} does not have a focused window
Launcher:com.mengbo.launcher3
ANR 类型: Input Dispatching Timed Out (Focus Time-out / 无焦点窗口)
12-01 18:55:42.681181 956 26485 I am_anr : [0,1564,com.mengbo.launcher3,685293133,Input dispatching timed out (ActivityRecord{da9b3fd u0 com.mengbo.launcher3/.ui.NewMainActivity t2} does not have a focused window)]
主线程状态:主线程(TID 1564)处于 Sleeping (S) 状态,正在 MessageQueue 空闲等待,排除主线程死锁或主线程执行耗时操作导致的anr
"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 flags=1 obj=0x7238a330 self=0xb400007ca15db380
| sysTid=1564 nice=0 cgrp=default sched=0/0 handle=0x7e27f3d4f8
| state=S schedstat=( 146811537044 27714449125 268413 ) utm=10395 stm=4285 core=5 HZ=100
| stack=0x7fce68d000-0x7fce68f000 stackSize=8192KB
| held mutexes=
native: #00 pc 000000000009c0b8 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8)
native: #01 pc 0000000000019ad0 /system/lib64/libutils.so (android::Looper::pollInner(int)+184)
native: #02 pc 00000000000199b0 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112)
native: #03 pc 00000000001110b4 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
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.app.ActivityThread.main(ActivityThread.java:7715)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:998)
系统资源状况正常:
CPU 负载:12-01 18:55:42.920038 956 26485 E ActivityManager: Load: 0.0 / 0.0 / 0.0
进程 CPU 占用:12-01 18:55:42.920038 956 26485 E ActivityManager: 3.3% 1564/com.mengbo.launcher3: 2% user + 1.3% kernel / faults: 3267 minor
I/O 等待: (0.1% iowait)
内存压力:
12-01 18:55:42.920038 956 26485 E ActivityManager: some avg10=0.00 avg60=0.00 avg300=0.00 total=24215725
12-01 18:55:42.920038 956 26485 E ActivityManager: full avg10=0.00 avg60=0.00 avg300=0.00 total=13267033
分析原因:
18:55:37.242554:ActivityTaskManager 开始处理启动请求
12-01 18:55:37.242554 956 974 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.mengbo.launcher3/.ui.NewMainActivity (has extras)} from uid 0 ; pid 0 ; callingPkg null
18:55:37.250413:系统开始 resume MainActivity
12-01 18:55:37.250413 956 974 I wm_set_resumed_activity: [0,com.mengbo.launcher3/.ui.NewMainActivity,bringingFoundTaskToFront]
12-01 18:55:37.540966 26799 26799 I Monkey : :Sending Key (ACTION_DOWN): 20 // KEYCODE_DPAD_DOWN
12-01 18:55:37.541172 4757 4757 D showSpeedView: currentSpeed:0,currentLimitSpeed:0
12-01 18:55:37.541648 4757 5636 D StandardBroadcastSend: notifyTurnNavi: Bundle[{CAMERA_SPEED=0, ROUTE_REMAIN_TIME=1967, NEXT_ROAD_NAME=内部道路, CUR_ROAD_NAME=内部道路, on_current_navi_zoom_change=false, ROUTE_ALL_TIME=2100, ROUTE_ALL_DIS=9975, NEXT_ICON=3, ROUTE_REMAIN_DIS=9860, ICON=2, TYPE=0, TRAFFIC_LIGHT_NUM=17, SEG_REMAIN_DIS=7, TRAFFIC_LIGHT_COUNT_DOWN=0}]
12-01 18:55:37.542099 956 1038 I System.out: MBL_PhoneWindowManagerPlugs_the keyevent is KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_DPAD_DOWN, scanCode=0, metaState=0, flags=0x8, repeatCount=0, eventTime=18602668, downTime=18602668, deviceId=-1, source=0x101, displayId=-1 }
12-01 18:55:37.542396 956 1038 W InputDispatcher: Waiting because no window has focus but ActivityRecord{da9b3fd u0 com.mengbo.launcher3/.ui.NewMainActivity t2} may eventually add a window when it finishes starting up. Will wait for 5000ms
12-01 18:55:37.542538 956 1038 W InputDispatcher: Still no focused window. Will drop the event in 4999ms
12-01 18:55:42.277513 956 1038 W InputDispatcher: Still no focused window. Will drop the event in 264ms
12-01 18:55:42.920038 956 26485 E ActivityManager: Reason: Input dispatching timed out (ActivityRecord{da9b3fd u0 com.mengbo.launcher3/.ui.NewMainActivity t2} does not have a focused window)
com.mengbo.electronicmanual 雷石KTV三方app 一样原因
com.tencent.wecarnavi 一样原因
com.tencent.wecarflow 一样原因
com.mengbo.usercenter 一样原因
app没有没有卡死,但它在启动过程中的 窗口焦点切换需要时间。Monkey 在这个极短的窗口期内
(如从 18:53:23.026 开始 resume 到 18:53:23.340 收到事件之间),过快地发送了输入事件。
系统尝试将事件分发给该 Activity,但由于窗口尚未正式“就位”并获得焦点,导致分发失败,并触发了 5 秒的 ANR 计时器,最终超时。
这不是应用本身的严重缺陷,而是自动化压力测试(Monkey)在系统调度边界条件下的偶发现象
ANR 是由 Monkey 快速发送输入事件与应用启动(获取焦点)耗时较长两者叠加导致的。
在正常的用户操作流程中,用户会给应用足够的启动时间,不会在启动 Activity 尚未获得焦点时的极短时间内触发输入事件。