1、HarmonyOSHiViewDFX-开发高可靠高性能应用的基石HarmonyOS HiViewDFX框架故障管理故障检测缺陷检测故障恢复观测剖析信息导出HiDumper信息分析HiProfiler&HiPerf联动调试HiDebugIDE调试调优设备质量分析应用质量分析DevEco Insight大数据分析运维运维开发开发z跟踪HiTrace流水日志调用链事件框架系统事件应用事件事件日志OS其它子系统影音娱乐智慧出行移动办公运动健康智能家居其他应用设备1如何开发一个高可靠的应用从错误中学到的东西,比从美德中学到的东西往往还要多VOC 可靠性差评占比 20%偶尔、经常卡死!频繁闪退!麻烦,非常
2、反感应用可靠性问题导致用户体验差开启开启XXXX应用,有应用,有卡顿现象,有时卡顿现象,有时候系统卡顿明候系统卡顿明显,偶尔点击显,偶尔点击应应用无反应用无反应XXXX应用经常应用经常卡死卡死非常反感非常反感XXXX应用应用经常经常闪退闪退XXXX应用会闪退,应用会闪退,经常经常触摸失效触摸失效体验还可以,就体验还可以,就是应用程序经常是应用程序经常闪退闪退XXXX应用都出现过应用都出现过卡壳死机卡壳死机的情况的情况游戏会无缘无故游戏会无缘无故闪退闪退2应用可靠性问题开发定位困难UIUI线程耗时线程耗时消息风暴消息风暴系统服务阻塞系统服务阻塞编码错误编码错误并发错误并发错误异常处理不闭合异常处
3、理不闭合兼容性问题兼容性问题启动失败启动失败卡死卡死资源异常资源异常窗口异常窗口异常控件异常控件异常黑屏、白屏黑屏、白屏闪退闪退对象泄露异常对象泄露异常nativenative堆泄漏堆泄漏线程泄漏线程泄漏类型多,信息不全,难以复现,定位时间长定位时间长功能失效功能失效卡死、无响应卡死、无响应根因复杂3可靠性问题定位常用方法FrameworkLibraries/RTAPPLinux KernelLog CollectorSignal CatcherSignal Queue 信号HackingCrash Dumper通知自行增加捕获异常机制,与系统信息无法关联4如何开发一个高可靠的应用检测检测轻量
4、轻量定位定位精准精准恢复恢复快速快速5HarmonyOS应用异常处理框架ServiceHiViewHiViewDFX API查询订阅恢复Ark RuntimeJS Error DetectorDFX ThreadAppRecoveryFault LoggerLeak DetectorFreeze DetectorAPPArkUIWatchdogJS Error全面检测、精准记录异常传播路径、日志精简6应用异常日志查询接口 FaultLog提供QuerySelfFaultLog接口以查询自身故障:JS_CRASH JSJS程序故障类型程序故障类型 CPP_CRASH C+C+程序故障类型程序故障
5、类型 APP_FREEZE 应用程序卡死故障类型应用程序卡死故障类型querySelfFaultLog(faultType:FaultType,callback:AsyncCallbackArray):void接口适配接口适配7应用异常日志规格 Crash运 行 设 备信息Device info:MatePad ProError message:Cannot read property startAbility of undefinedSourceCode:context.startAbility(want).then()=Stacktrace:at startAbility(defaulta
6、bilitymanagerabilityManager.ts:89:5)at sendRecentKeyEvent(ohosxxxKeyCodeEvent.ts:105:5)at sendKeyEvent(ohosxxxKeyCodeEvent.ts:50:11)at onKeyTouch(etspageskeybutton.ets:86:5)崩 溃 故 障信息软 件 版 本、模块基础信息应 用 基 础信息Pid:11829Uid:10005Lifetime:0.000000sJs-Engine:arkpage:pages/index.js8Build info:OpenHarmony 3.2