当前位置:首页 > 厂商动态 > 华为

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

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

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

图片 1.png

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

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

图片 2.png

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

图片 3.png

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

图片 4.png

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

图片 5.png

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

图片 6.png

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

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


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭