设置
  • 日夜间
    随系统
    浅色
    深色
  • 主题色

HarmonyOS 官网上线“稳定性”专栏 助力更稳定流畅的鸿蒙原生应用开发

2025/2/7 17:12:33 来源:之家网站 作者:- 责编:-

鸿蒙应用稳定性是影响用户体验的重要因素之一,常见的稳定性问题包括:崩溃、应用 Freeze、内存泄漏、内存越界等。这类问题的定界与定位往往需要丰富的经验积累和技术沉淀,定位过程通常耗时耗力。

最近,在鸿蒙开发者官网的最佳实践中上线了稳定性专栏,将 DevEco Studio 问题定位工具与稳定性实际场景相结合,帮助开发者用好工具的同时,降低稳定性问题定位的难度。

下面以 CppCrash 的问题为例,介绍一下如何根据新上线的“稳定性”专栏分析和定位稳定性问题。

当我们在开发中遇到了 CppCrash 问题,应用会闪退,FaultLog 会弹出对应的错误日志:红色 Reason 部分为 CppCrash 触发的原因,该 Crash 的原因是系统抛出的 SIGSEGV 信号 Crash 了运行的应用。通常情况下点击蓝色的链接部分,可以跳转到对应出错的代码行。通过 SIGSEGV 信号量判断出代码中存在无效的内存引用,一般为下面三种情况:访问空指针、访问已经释放的内存和内存访问越界。但具体是哪种情况触发的应用闪退,还需要我们根据相应代码片段进行具体分析,较为耗时。我们可以参考稳定性专栏中的相关内容,来降低定位难度并缩减定位时间。

对于由内存错误引起的运行态问题,我们可以选择稳定性专栏目录下的稳定性检测 / 运行态检测 / 内存检测中介绍的工具。

此处我们选择使用 HWAsan 检测内存错误的章节,根据章节的内容描述,我们勾选 DevEco Studio 中的 HWAsan 功能,开启 HWAsan 检测之后,点击 run 重新运行编译推包,编译工具会将 HWAsan 检测开关打开,同时对 Cpp 代码进行插桩,增加调试信息。

重新运行编译推包之前产生 CppCrash 的程序,应用发生闪退,弹出 FaultLog。

通过勾选 HWasan 后产生的 FaultLog 我们可以看到,该日志在提供出错代码片段跳转链接的同时,还通过 Cause 部分进一步确定了该 Crash 是由 heap-buffer-overflow 导致的。根据 Cause 原因,在使用 HWAsan 检测内存错误文章中找到 HWasan 异常检测类型中对应的类型,可明确该错误是由运行程序访问堆内存越界导致的。通过稳定性中该章节的指导,大大降低了我们对 CppCrash 日志的解读难度与相关内存问题定位的门槛,同时也节省了排查可疑问题类型的时间。

此外,专栏还提供了稳定性分析的内容,该部分列举了常见场景中问题的排查方法与案例分析,如果我们开发过程中可以确定稳定性问题的具体场景,就可以参考相应场景的排查方法来对问题进行定位,如上述 CppCrash 的例子就是地址越界的场景,可以看到地址越界问题排查方法部分也可以开启 HWAsan 检测。而关于案例分析部分,则是以实际案例,来帮助我们开发者更好的理解并应用不同场景下的问题排查方法。

除了上述解决应用致命稳定性问题的稳定性检测与分析章节,该专栏还包含了如何持续建设应用稳定性的内容,即稳定性优化与稳定性运维两个部分,稳定性优化主要从规范性的角度出发,介绍了如何通过良好的编码习惯和有效的日志维护方案来提升应用的健壮性和定位效率;稳定性运维则是从应用上线并长期使用 / 运行的角度的出发,概述如何构建管理平台,帮助我们开发者监控应用的运行状态,从而及时发现并解决应用潜在问题。

更多详细内容可在鸿蒙开发者官网-> 开发-> 开发文档-> 最佳实践下进入“稳定性”专栏,希望无论是初学者还是资深开发者,都能在这里有所收获,开发出更稳定流畅的鸿蒙原生应用。

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

相关文章

关键词:业界动态

软媒旗下网站: IT之家 最会买 - 返利返现优惠券 iPhone之家 Win7之家 Win10之家 Win11之家

软媒旗下软件: 软媒手机APP应用 魔方 最会买 要知