新闻详情

新闻详情

首页 / 资讯中心 / 详情

Flutter OH 日志抓取与过滤指南

发布时间:2026/9/1 6:08:59来源:尧图网络
Flutter OH 日志抓取与过滤指南
返回 Flutter OH平台 DFX 问题定位导航1. 三套日志体系日志从哪里来Flutter OHOS 平台的日志来自三个不同的源头就像一栋楼有三个楼层每个楼层的人说话你都需要不同的方式去听日志来源Tag标签谁产生的典型内容什么时候看引擎内部映射到 HiLogFlutter 引擎的 C 代码崩溃堆栈、卡死检测、GPU 回收排查崩溃、卡死、黑屏平台 C 层XComFlutterOHOS_NativeOHOS 平台的 C 代码引擎初始化、NAPI 调用排查引擎初始化问题ETS 嵌入层FlutterArkTS 代码MethodChannel、插件异常、生命周期排查插件/通道问题新手提示不确定看哪个用这条命令看全部 Flutter 日志hdc shell hilog|grep-EFlutter|XComFlutter|flutter2. 日志抓取方法2.1 基本流程按这 4 步操作就行# 1. 清空历史日志清掉旧的只留复现后的新日志hdc shell hilog-r# 2. 复现问题操作你的应用触发 bug# 3. 抓取日志按 CtrlC 停止抓取hdc shell hilogflutter_log.txt# 4. 从日志中筛选 Flutter 相关的内容hdc shell hilog|grep-EFlutter|XComFlutter|flutterflutter_filtered.txt新手提示hilog就是 OHOS 的日志系统类似 Android 的logcatgrep是文本搜索工具-E表示用正则表达式匹配表示把输出保存到文件2.2 实时监控日志边操作边看日志# 实时看全部 Flutter 日志hdc shell hilog|grep-EFlutter|XComFlutter|flutter# 实时看崩溃日志hdc shell hilog|grep-ECaught signal|Unhandled exception|FLUTTER_# 实时看卡死日志hdc shell hilog|grep-EFlutterWatchdog|not alive|HiCollie# 实时看 GPU 回收日志hdc shell hilog|grep-EGpuReclaim|Surface# 实时看外接纹理日志hdc shell hilog|grep-Eexternal_texture|NativeImage|texture_id2.3 抓取到设备文件再拉到电脑# 把日志保存到设备文件hdc shellhilog /data/local/tmp/flutter_log.txt# 拉取到电脑hdcfilerecv /data/local/tmp/flutter_log.txt ./flutter_log.txt2.4 抓取崩溃日志tombstoneNative 崩溃时系统会生成 tombstone 文件比 hilog 更详细# 查看崩溃日志文件hdc shellls/data/log/faultlog/# 拉取到电脑hdcfilerecv /data/log/faultlog/faultlog-xxx ./faultlog.txt2.5 抓取卡死日志APP_FREEZEUI 线程卡死 6 秒时系统生成 APP_FREEZE 事件hdc shellls/data/log/faultlog/ hdcfilerecv /data/log/faultlog/appfreeze-xxx ./appfreeze.txt3. 日志过滤方法3.1 按问题类型过滤最常用不知道用哪条对照你的现象选问题类型过滤命令崩溃应用闪退hdc shell hilog | grep -E Caught signal|Unhandled exception|FLUTTER_DART_EXCEPTION|FLUTTER_ETS_EXCEPTION卡死无响应hdc shell hilog | grep -E FlutterWatchdog|not alive|HiCollie|THREAD_STUCK|APP_FREEZE卡顿/丢帧hdc shell hilog | grep -E JANK|jank|missed|frame内存OOMhdc shell hilog | grep -E heap memory|memory|OOM|thresholdGPU黑屏hdc shell hilog | grep -E GpuReclaim|SurfaceVsynchdc shell hilog | grep -E vsync|Vsync|Poll error外接纹理hdc shell hilog | grep -E external_texture|NativeImage|texture_id|frame gate引擎生命周期hdc shell hilog | grep -E FLUTTER_ENGINE_CREATE|FLUTTER_ENGINE_DESTROY平台通道hdc shell hilog | grep -E handlePlatformMessage|MethodChannel|Failed to handle3.2 按 Tag 过滤# 只看引擎 C 日志hdc shell hilog-TXComFlutterOHOS_Native# 只看 ArkTS 日志hdc shell hilog-TFlutter3.3 按级别过滤hdc shell hilog-bD# 全部日志Debug 及以上hdc shell hilog-bI# 只看 Info 及以上hdc shell hilog-bW# 只看 Warn 及以上hdc shell hilog-bE# 只看 Error 及以上3.4 组合过滤技巧# 搜索多个关键词OR 关系hdc shell hilog|grep-EGpuReclaim|frame gate|Surface REBUILT# 排除噪音NOT 关系hdc shell hilog|grep-EFlutter|grep-vflutter::# 只看某个时间段hdc shell hilog|grep08-03 10:3[0-5]# 10:30-10:35 的日志# 统计关键词出现次数hdc shell hilog|grep-cis not alive# 卡死了几次4. 日志级别说明4.1 不同级别的含义级别数值通俗理解什么时候看DEBUG3最详细的调试信息开发调试时INFO4关键流程节点确认流程是否正常WARN5警告可恢复的问题检查潜在问题ERROR6错误功能失败排查问题FATAL7致命不可恢复必须修复新手提示排查问题时建议开启 DEBUG 级别hdc shell hilog -b D4.2 Release 模式下 ETS 日志看不到Release/Profile 模式默认只输出 WARN 及以上。如果需要看更详细的日志importLogfromohos.flutter.ohos/src/main/ets/util/Log;Log.setLogLevel(HiLog.LogLevel.DEBUG);5. HiTrace 抓取分析卡顿专用5.1 什么是 HiTraceHiTrace 是性能追踪工具记录每一帧的耗时。类似 Chrome DevTools 的 Performance 录制。5.2 抓取方法# 抓取 10 秒的 Trace在这 10 秒内复现问题hdc shell hitrace--trace_clockboottime-t10flutter-o/data/local/tmp/trace.ftrace# 拉取到电脑hdcfilerecv /data/local/tmp/trace.ftrace ./trace.ftrace# 用 Chrome 打开访问 chrome://tracing → 点 Load → 选文件5.3 同时抓取多个类别# Flutter 调度信息分析线程阻塞hdc shell hitrace--trace_clockboottime-t30flutter sched-o/data/local/tmp/trace.ftrace5.4 Trace 里搜索什么搜索关键词看什么正常表现flutter::Frame每一帧的耗时16msFlutter Lost Frames丢帧计数值为 0Flutter Hitch Time丢帧详情不出现feedFlutterWatchdogUI 线程心跳每 3 秒一次feedFlutterRasterWatchdogRaster 线程心跳每 3 秒一次快捷键w放大、s缩小、a左移、d右移6. DFX 关键日志一览6.1 崩溃相关搜索这个关键字含义严重程度Caught signal SIGSEGV引擎访问了非法内存致命Caught signal SIGABRT引擎断言失败/堆破坏致命Unhandled exceptionDart 代码有未捕获异常致命Failed to handle method callETS 插件异常中6.2 卡死相关搜索这个关键字含义严重程度is not alive某个线程卡死了致命m_is_six_second_event false卡死 3 秒第一阶段严重m_is_six_second_event true卡死 6 秒第二阶段可能弹窗致命thread may be blocked, do not report防误报跳过正常—6.3 内存/GPU 相关搜索这个关键字含义严重程度Dart heap memory usage exceeds thresholdDart 内存超 1.5GB高GpuReclaimkAggressiveGPU 资源被回收正常退后台时GpuReclaimkRestoreGPU 资源恢复正常回前台时Surface REBUILTSurface 重建成功正常SetDisplayWindow failedSurface 重建失败异常6.4 外接纹理相关搜索这个关键字含义严重程度No DlImage available无可绘制画面黑屏中frame gate enabled后台帧闸门开启正常skip one frame(slow consumer)消费过慢跳帧中PlatformViewVisibleAreaEventCallback可见区域变化—6.5 Vsync 相关搜索这个关键字含义严重程度vsync_handle_ is nullptrVsync 句柄无效致命AwaitVSync...failedVsync 请求失败致命Failed to dlopen libnative_vsync.soVsync 库加载失败致命7. 常见问题Q1: 抓不到 Flutter 日志原因解决方法日志级别没开hdc shell hilog -b Dhilog 服务没运行hdc shell hilog -v查状态hdc shell hilog -r清空重试设备没连接hdc list targets确认设备Q2: Release 模式看不到详细日志// 在应用入口设置日志级别Log.setLogLevel(HiLog.LogLevel.DEBUG);Q3: HiAppEvent 事件在哪里看# 方法 1搜索上报日志hdc shell hilog|grepOH_HiAppEvent_Write# 方法 2搜索特定事件hdc shell hilog|grep-EFLUTTER_DART_EXCEPTION|OTHER_JANK|FLUTTER_STABILITY_EVENT# 方法 3查看 faultlog 目录hdc shellls/data/log/faultlog/Q4: Trace 文件怎么分析Chrome 浏览器访问chrome://tracing点Load加载.ftrace文件搜索flutter::看帧耗时搜索Flutter Lost Frames看丢帧快捷键w放大、s缩小Q5: 日志太多看不过来# 按问题类型过滤见 §3.1hdc shell hilog|grep-ECaught signal|Unhandled exception# 排除噪音hdc shell hilog|grep-EFlutter|grep-vflutter::# 按时间段过滤hdc shell hilog|grep08-03 10:3[0-5]# 保存到文件后离线分析hdc shell hilogflutter_log.txtQ6: HiAppEvent 事件上报失败错误日志含义解决方法API version too low系统 API 太低需 API 18reportFrameworkMemAnomaly_ is nullptr内存上报 API 不足需 API 26flush isValid_ falseHiAppEvent 没初始化检查 SO 库加载Q7: 怎么确认日志属于哪个线程搜索关键词对应线程FlutterUiThread/feedFlutterWatchdogUI 线程FlutterRasterThread/feedFlutterRasterWatchdogRaster 线程FlutterPlatformThread/feedFlutterPlatformWatchdogPlatform 线程
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

运放电路最大功率传输:戴维南等效一步求解 2026/9/1 6:42:04

运放电路最大功率传输:戴维南等效一步求解

运放电路最大功率传输定理是模拟电子技术考研和电路课程里经常同时出现的考点。题目通常会给一个由运算放大器构成的放大电路,输出端带一个可变负载电阻,然后问:负载电阻取多大时能获得最大功率,极限输出功率是多少。表面上是两个…

阅读更多 →
音游难度匹配:用Python评估低rks与双指打17的可行性 2026/9/1 6:42:04

音游难度匹配:用Python评估低rks与双指打17的可行性

如果你在音游群里待过一段时间,大概率看过这样一句调侃:检测到低rks玩家试图双指打17,已自动降低准度和分数。第一次看到会心一笑,第二次再看到,其实它背后藏着一个很具体的音游技术问题——玩家综合实力、谱面难度和手…

阅读更多 →
Android 15 16KB页面适配实战:xlog日志库的裁剪与对齐方案 2026/9/1 6:42:04

Android 15 16KB页面适配实战:xlog日志库的裁剪与对齐方案

简介:腾讯Mars中的xlog 16KB对齐版本,主要面向Android 15系统下的开发者,且仅支持arm64-v8这一64位架构。该版本基于Mars xlog主分支最新代码构建,版本号为db98964cbc992c1191e4d993619adad72452fcdc,采用NDK 28.1.133…

阅读更多 →
易语言WebBrowser2支持库二次修改:IE内核兼容与内存泄漏修复实战 2026/9/1 6:42:04

易语言WebBrowser2支持库二次修改:IE内核兼容与内存泄漏修复实战

简介:WebBrowser2.fne 是易语言环境下的 Web 浏览器支持库,基于云外归鸟开源工程调整而来,面向需要在易语言程序中嵌入网页浏览、网页交互功能的开发者。解决的核心问题是让易语言应用直接调用 WebBrowser 控件,完成 HTML 加载、J…

阅读更多 →
Android 15 16KB 适配实战:腾讯 mars xlog 独立编译与避坑指南 2026/9/1 6:42:04

Android 15 16KB 适配实战:腾讯 mars xlog 独立编译与避坑指南

简介:腾讯Mars中的xlog 16KB对齐版本面向Android 15与arm64-v8架构,基于xlog master分支最新提交db98964cbc992c1191e4d993619adad72452fcdc编译而成,专供需要在新系统上使用64位日志组件的开发者使用。包内除xlog核心so库外,还附…

阅读更多 →
STM32H5+FreeRTOS+lwIP实战:从CubeMX配置到网络透传与调试 2026/9/1 6:39:04

STM32H5+FreeRTOS+lwIP实战:从CubeMX配置到网络透传与调试

简介:面向STM32H5系列微控制器的FreeRTOS与LWIP集成工程,适用于需要轻量级网络通信的嵌入式开发者,尤其适合从ThreadX等商业RTOS向开源方案迁移的团队参考。项目基于STM32H563芯片,展示了如何用FreeRTOS管理并发任务,并…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞