Google短信应用com.google.android.apps.messaging出现ANR问题及测试方法咨询
问题分析与测试方案
一、该错误是什么?
这是**ANR(应用无响应)**错误,当系统发送android.accounts.LOGIN_ACCOUNTS_CHANGED广播时,你的应用内的DeviceAccountsChangedReceiver_Receiver组件处理广播的时间超过了系统阈值(通常为10秒),导致系统判定应用无响应。
具体细节:
- 触发事件:设备登录账户发生变更(新增、删除或账户信息更新)时,系统会发送
android.accounts.LOGIN_ACCOUNTS_CHANGED广播 - 故障组件:
com.google.android.apps.messaging/com.google.apps.tiktok.account.data.device.DeviceAccountsChangedReceiver_Receiver,即应用中负责处理账户变更事件的广播接收器 - PID:15781是触发ANR时的应用进程ID
二、如何测试该问题?
- 手动模拟账户变更:进入设备「设置-账户」页面,添加/删除账户或修改账户信息,观察应用是否出现卡顿或ANR提示。
- ADB命令触发广播:通过ADB直接发送目标广播,精准复现场景:
执行后可通过以下命令查看ANR日志:adb shell am broadcast -a android.accounts.LOGIN_ACCOUNTS_CHANGED -n com.google.android.apps.messaging/com.google.apps.tiktok.account.data.device.DeviceAccountsChangedReceiver_Receiveradb logcat -b events | grep ANR - 低性能环境测试:让设备后台运行大量应用或开启省电模式,再触发账户变更操作,更容易复现耗时导致的ANR。同时可检查广播接收器代码,确认是否存在同步网络请求、大量数据库读写、复杂计算等耗时逻辑。
内容的提问来源于stack exchange,提问作者Alexey Starinsky
相关产品推荐
相关产品推荐

