You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:25:38