首页 > 其他分享 >【鸿蒙学习】HarmonyOS应用开发者高级认证 - 应用DFX能力介绍(含闯关习题)

【鸿蒙学习】HarmonyOS应用开发者高级认证 - 应用DFX能力介绍(含闯关习题)

时间:2024-08-25 16:22:31浏览次数:14  
标签:DFX 故障 HiTraceMeter HarmonyOS 事件 应用 习题 日志 开发者

在这里插入图片描述
学完时间:2024年8月24日
学完排名:第1698名

一、Performance Analysis Kit简介

Performance Analysis Kit(性能分析服务)为开发者提供应用事件、日志、跟踪分析工具,可观测应用运行时状态,用于行为分析、故障分析、安全分析、统计分析,帮助开发者持续改进应用体验。
使用场景

  • 应用调试:
    提供流水日志功能,帮助开发者记录和获取日志,进行问题分析。
  • 问题定位:
    提供各类场景的故障现场,包含可靠性、性能、功耗、分布式故障相关的日志、事件、跟踪。
  • 线上监控:
    提供应用构建线上观测所需的日志、事件、跟踪接口,方便开发者记录、分析应用线上运行情况。
    能力范围
  • HiLog流水日志,提供开发者记录和获取流水日志能力。
  • HiTraceMeter和HiTraceChain跟踪,提供开发者Trace度量和跨线程跨进程分布式跟踪的能力。
  • HiAppEvent应用事件,提供开发者记录故障、行为、安全、统计事件的能力,并订阅系统事件,设置数据处理者完成数据上传。
  • FaultLogger故障日志管理,提供开发者主动查询故障日志的通道。
  • HiDebug资源采集,提供开发者获取应用、系统资源的使用情况。

亮点/特征

便捷的构建APM系统

  • 提供接口(HiDebug、HiAppEvent、HiLog)可自建端侧APM SDK,与厂商自研APM对接。
  • 基于HiAppEvent自定义事件、订阅系统事件功能,快捷记录和收集运营和运维所需事件。

强悍的异常处理机制

  • 提供精简标准完备的异常日志,支持精准记录异常传播路径。
  • 全面的异常检测机制,实时感知异常,通知应用,自动拉起恢复。

全面的基础维测能力

  • 日志提供分级分类功能,支持多语言,隐私处理和流量控制。
  • 提供完备的事件框架和事件打点、记录、上报机制。
  • 支持追踪进程轨迹,进行程序性能分析。

故障分析

基于 Performance Analysis Kit(性能分析服务),为开发者提供了完善的故障检测、异常处理等能力。由于故障种类异常繁多,产品和软件业务不同,故障的原因和表现也千差万别,因此分析定位疑难问题是对工程师经验、能力、智慧的多重考验。稳定性是应用的重要质量属性,很大程度上决定了应用的开发效率和交付成本,严重影响应用质量和体验。通常可以通过开发态和运行态的故障管理设计来提升版本质量,包括故障检测、故障分析、定位、恢复、质量度量等。

为了帮助开发者更好更快的定位和解决各位应用稳定性故障,本章节还会介绍JS Crash、CppCrash、AppFreeze、资源泄露等故障的通用定位方法以及一些通用分析案例。相关内容需要开发者有编程语言、操作系统等基础知识,案例分析过程还会关联 DevEco Studio 相关能力以及 SDK 相关套件的基础运用和实践。

使用HiLog打印日志(ArkTS)

在应用开发过程中,可在关键代码处输出日志信息。在运行应用后,通过查看日志信息来分析应用执行情况(如应用是否正常运行、代码运行时序、运行逻辑分支是否正常等)。

系统提供不同的API供开发者调用并输出日志信息,即HiLog与console。两个API在使用时略有差异,本文重点介绍HiLog的用法。
HiLog中定义了DEBUG、INFO、WARN、ERROR、FATAL五种日志级别,并提供了对应的方法输出不同级别的日志

参数解析

说明
isLoggable()和具体日志打印接口使用的domain和tag应保持一致。
isLoggable()使用的level,应和具体日志打印接口级别保持一致。

  • domain
    用于指定输出日志所对应的业务领域,取值范围为0x0000~0xFFFF,开发者可以根据需要进行自定义。

  • tag
    用于指定日志标识,可以为任意字符串,建议标识调用所在的类或者业务行为。

  • level
    用于指定日志级别。取值见LogLevel。

  • format
    格式字符串,用于日志的格式化输出。日志打印的格式化参数需按照“%{private flag}specifier”的格式打印。

约束与限制

日志打印最多打印4096字节,超出限制文本将被截断。

HiAppEvent是在系统层面为应用开发者提供的一种事件打点机制,帮助应用记录在运行过程中发生的故障信息、统计信息、安全信息、用户行为信息,支撑开发者分析应用的运行情况。以便进一步统计分析访问数、日常用户活跃数量、用户操作习惯以及其他影响用户使用产品的关键因素。

三、HiAppEvent介绍

基本概念

打点: 记录由用户操作引起的变化,提供业务数据信息,供开发、产品、运维分析。

事件设计规范

  • 事件领域:
    标识事件的领域,建议设置为业务模块名称,以便于区分不同的业务模块。

  • 事件名称:
    指定事件的名称,建议设置为具体的业务名称,以便于描述实际的业务意义。

  • 事件类型:
    指定事件的类型,支持以下四种类型事件:

    • 行为事件:记录用户日常操作行为的事件,例如按钮点击、界面跳转等行为。
    • 故障事件:定位和分析应用故障的事件,例如界面卡顿、掉网掉话等异常。
    • 统计事件:统计和度量应用关键行为的事件,例如对使用时长、访问数等的统计。
    • 安全事件:记录涉及应用安全行为的事件,例如密码修改、用户授权等行为。
    • 事件参数:指定事件的参数,每个事件可以包含一组参数,建议设置为事件属性或事件发生上下文信息,以便于描述事件的详细信息。

四、使用HiTraceMeter跟踪性能(ArkTS)

简介

HiTraceMeter提供系统性能打点接口。开发者通过在关键代码位置调用HiTraceMeter接口提供的API接口,能够有效跟踪进程轨迹、查看系统性能。

基本概念

HiTraceMeter Tag:跟踪数据使用类别分类,称作HiTraceMeter Tag或HiTraceMeter Category。一般每个软件子系统对应一个Tag,该Tag在打点API中以类别Tag参数传入。HiTraceMeter命令行工具采集跟踪数据时,只采集给定的Tag类别选项指定的跟踪数据。

实现原理

  1. 应用程序通过HiTraceMeter函数接口进行打点,HiTraceMeter函数将跟踪数据通过内核sysfs文件接口输出到内核的ftrace数据缓冲区。

  2. HiTraceMeter命令行工具读取内核ftrace缓冲区中的跟踪数据,将文本格式的跟踪数据保存到设备侧的文件中。

五、闯关习题

判断题

1.HiAppEvent提供事件监听功能,开发者不能监听到系统事件:

答案:错误(False)

2.HiTraceMeter用于追踪进程轨迹,进行程序性能分析,支持内核ftrace预置埋点和用户态打点:

答案:正确(True)

单选题

1.关于HiLog日志打印规则,下列说法错误的是:

答案:B. 日志中可以打印用户个人隐私信息。

2.下列哪一项不是HiLog定义的日志级别:

答案:E. FAIL

多选题

1.DFX设计范围主要包含以下哪些:

答案: 全选

A. HiLog日志,基础流水日志打印。

B. HiAppEvent应用事件,事件埋点接口,提供事件的埋点写入。

C. HiTrace Meter跟踪,提供追踪进程轨迹,进行程序性能分析。

D. HiTrace Chain调用链,提供业务流程调用链跟踪的维测接口。

标签:DFX,故障,HiTraceMeter,HarmonyOS,事件,应用,习题,日志,开发者
From: https://blog.csdn.net/qq_15062089/article/details/141506752

相关文章

  • 软考-软件设计师(数据结构习题一)
       ......
  • 【全面指导】线性代数如何高效备考?选择哪本习题集?
    作为一个过来人,在备考过程中,我发现线性代数这是个不容小觑的科目,在考研数学一二三中都占比20%,其复习策略和方法对最终成绩起到了决定性作用。那么,如何选择适合的习题集?怎样制定有效的复习计划?这些问题都是我们必须认真思考和了解的。今天,我将分享我的备考经验,从复习书籍选择到......
  • C程序设计语言(第2版·新版)练习题1-4
    练习1-4编写一个程序打印摄氏温度转换为响应华氏温度的转换表。#include <stdio.h>int main(int argc, char *argv[]) {    (void) argc;    (void) argv;        float fahr, celsius;    int lower, upper, step;        ......
  • 【HarmonyOS NEXT应用开发】案例69:基于原生能力的压缩与解压缩能力
    一、场景描述概览、常用图片编码格式比对及系统支持情况压缩格式简介系统支持/使用方式zip普及率高,适用范围也最广,压缩速度相比rar快一些ArkTs支持,可通过zlib实现,jsziprarrar格式比zip更能够提供较好的压缩率,但压缩速度也相对慢一些三方库支持,通过Unrar实现......
  • 栅格布局在 HarmonyOS 中的应用及扩展
    栅格布局作为一种经典的布局方式,广泛应用于不同类型的用户界面设计,尤其是在移动设备和响应式设计中,它表现出了强大的适应性。本文将深入探讨如何在HarmonyOS中使用栅格布局组件GridRow和GridCol,并通过多种示例来展示栅格布局的灵活性及扩展性。栅格布局的核心优势1.......
  • 深入解析HarmonyOS中的媒体查询及其高级用法
    在移动应用开发中,响应式设计是一个关键要素。HarmonyOS提供了一整套媒体查询功能,可以让开发者根据设备类型、屏幕尺寸、方向等条件动态调整应用的布局和样式。本文将深入探讨HarmonyOS中的媒体查询功能,展示其高级用法,帮助你构建更灵活的用户界面。媒体查询在HarmonyOS中的......
  • 谭浩强c程序设计例题+习题 第六章 利用数组处理批量数据
    第六章利用数组处理批量数据文章目录第六章利用数组处理批量数据例6.1对10个数组元素依次赋值为0,1,2,3...,9并逆序输出例6.2用数组处理Fibonacci数列问题例6.3有10个地区的面积,要求对它们按照从小到大顺序排序例6.4将一个二维数组行和列互换存到零一个二维数组中......
  • 【C++ Primer Plus习题】3.6
    问题:解答:#include<iostream>usingnamespacestd;intmain(){ floatmiles=0; floatgallons=0; floatgallon=0; cout<<"请输入驱车里程(单位为英里):"; cin>>miles; cout<<"请输入使用的汽油量(单位为加仑):"; cin>>g......
  • 【HarmonyOS NEXT星河版开发实战】天气查询APP
    目录前言界面效果展示首页添加和删除 界面构建讲解1.获取所需数据 2.在编译器中准备数据 3.index页面代码讲解 3.1导入模块: 3.2 定义组件:3.3 定义状态变量:3.4  定义Tabs控制器:3.5 定义按钮样式: 3.6 页面显示时触发的方法: 3.7 获取数据的方......
  • 【鸿蒙学习】HarmonyOS应用开发者高级认证 - 应用性能优化一(界面层面)
    学完时间:2024年8月22日学完排名:第1801名一、介绍在开发HarmonyOS应用时,优化应用性能是至关重要的。通过/ArkTS高性能编程、减少丢帧卡顿、提升应用启动和响应速度可以有效提升用户体验。本文将介绍一些优化HarmonyOS应用性能的方法。一、ArkUI框架执行流程在使用A......