.NET MAUI Blazor安卓应用连接条码阅读器时卡顿求助
基于.NET MAUI和Blazor的Android应用连接条码阅读器时卡顿问题排查
我开发的基于.NET MAUI和Blazor的Android应用,在连接蓝牙或有线条码阅读器时出现卡顿情况,排查后获取到以下日志:
[GED] ged_boost_gpu_freq, level 100, eOrigin 2, final_idx 29, oppidx_max 29, oppidx_min 0 [GED] ged_boost_gpu_freq, level 100, eOrigin 2, final_idx 29, oppidx_max 29, oppidx_min 0 [BLASTBufferQueue] [VRI[MainActivity]#0](f:0,a:1) destructor() [BufferQueueConsumer] [VRI[MainActivity]#0(BLAST Consumer)0](id:43ca00000000,api:0,p:-1,c:17354) disconnect [View] assignParent to null: this = DecorView@2a57615[MainActivity], callstack = [View] java.lang.Throwable [View] at com.mediatek.view.impl.ViewDebugManagerImpl.warningParentToNull(ViewDebugManagerImpl.java:179) [View] at android.view.View.assignParent(View.java:20814) [View] at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:5455) [View] at android.view.ViewRootImpl.doDie(ViewRootImpl.java:8884) [View] at android.view.ViewRootImpl.die(ViewRootImpl.java:8856) [View] at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:500) [View] at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:441) [View] at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:206) [View] at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5691) [View] at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5976) [View] at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5891) [View] at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:71) [View] at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) [View] at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) [View] at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) [View] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2405) [View] at android.os.Handler.dispatchMessage(Handler.java:106) [View] at android.os.Looper.loopOnce(Looper.java:201) [View] at android.os.Looper.loop(Looper.java:288) [View] at android.app.ActivityThread.main(ActivityThread.java:8144) [View] at java.lang.reflect.Method.invoke(Native Method) [View] at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:573) [View] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1023) [View] [Warning] assignParent to null: this = DecorView@2a57615[MainActivity] [InputTransport] Destroy ARC handle: 0xb400007be1d34eb0 [libMEOW] meow new tls: 0xb400007dc18b14d0 [libMEOW] applied 0 plugin for [com.bluelotusx.blxpos]. [libMEOW] rebuild call chain: 0xb400007dc18a14c0 [libMEOW] meow delete tls: 0xb400007dc18b14d0 [DecorView] isCts, pkg: com.bluelotusx.blxpos
日志关键线索分析
- 重复触发
ged_boost_gpu_freq,说明GPU被强制拉满频率,大概率是界面渲染压力过载或出现异常渲染循环 - 日志中出现
ActivityThread.handleRelaunchActivity调用链,MainActivity正在被重启重建,这是卡顿的直接诱因,会导致界面短暂无响应 View.assignParent to null是Activity重启时View树销毁的正常日志,但结合条码阅读器连接场景,说明连接操作触发了Activity重启的触发条件
排查方向建议
- 检查条码阅读器的连接回调逻辑:确认是否在主线程执行了大量耗时操作,或意外触发了Configuration变更(如屏幕旋转、权限变动)导致Activity重启
- 排查Blazor组件渲染逻辑:每次接收条码数据时,是否触发了大量组件重渲染,导致GPU负载飙升
- 检查MAUI生命周期处理:条码连接相关的事件订阅是否在Activity销毁时正确取消,避免内存泄漏或异常回调触发Activity重启
- 优化线程调度:将条码数据接收逻辑放在后台线程处理,仅将最终结果通过Dispatcher调度到UI线程更新,避免阻塞主线程
内容的提问来源于stack exchange,提问作者Lasitha Lankajeewa
相关产品推荐
相关产品推荐

