1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "JankAnimatorReporter.h"
17 #include "hisysevent.h"
18 #include "hiview_logger.h"
19
20 DEFINE_LOG_LABEL(0xD002D66, "Hiview-XPerformance");
21
22 static constexpr char EXEC_DOMAIN[] = "PERFORMANCE";
23
24 using OHOS::HiviewDFX::HiSysEvent;
25
26
ReportNormal(const JankAnimatorReportData & data)27 void JankAnimatorReporter::ReportNormal(const JankAnimatorReportData& data)
28 {
29 HIVIEW_LOGD("JankAnimatorReporter ReportNormal Start");
30 HiSysEventWrite(EXEC_DOMAIN, "INTERACTION_JANK", HiSysEvent::EventType::BEHAVIOR,
31 "APP_PID", data.appPid,
32 "VERSION_CODE", data.versionCode,
33 "VERSION_NAME", data.versionName,
34 "BUNDLE_NAME", data.bundleName,
35 "PROCESS_NAME", data.processName,
36 "ABILITY_NAME", data.abilityName,
37 "PAGE_URL", data.pageUrl,
38 "SCENE_ID", data.sceneId,
39 "STARTTIME", data.startTime,
40 "DURATION", data.durition,
41 "TOTAL_APP_FRAMES", data.totalAppFrames,
42 "TOTAL_APP_MISSED_FRAMES", data.totalAppMissedFrames,
43 "MAX_APP_FRAMETIME", data.maxAppFrameTime,
44 "MAX_APP_SEQ_MISSED_FRAMES", data.maxAppSeqMissedFrames,
45 "TOTAL_RENDER_FRAMES", data.totalRenderFrames,
46 "TOTAL_RENDER_MISSED_FRAMES", data.totalRenderMissedFrames,
47 "MAX_RENDER_FRAMETIME", data.maxRenderFrameTime,
48 "AVERAGE_RENDER_FRAMETIME", data.averageRenderFrameTime,
49 "MAX_RENDER_SEQ_MISSED_FRAMES", data.maxRenderSeqMissedFrames,
50 "IS_FOLD_DISP", data.isFoldDisp,
51 "BUNDLE_NAME_EX", data.bundleNameEx,
52 "IS_FOCUS", data.isFocus,
53 "DISPLAY_ANIMATOR", data.isDisplayAnimator);
54 }
55
ReportCritical(const JankAnimatorReportData & data)56 void JankAnimatorReporter::ReportCritical(const JankAnimatorReportData& data)
57 {
58 HIVIEW_LOGD("JankAnimatorReporter ReportCritical Start");
59 HiSysEventWrite(EXEC_DOMAIN, "INTERACTION_JANK_FAULT", HiSysEvent::EventType::FAULT,
60 "APP_PID", data.appPid,
61 "VERSION_CODE", data.versionCode,
62 "VERSION_NAME", data.versionName,
63 "BUNDLE_NAME", data.bundleName,
64 "PROCESS_NAME", data.processName,
65 "ABILITY_NAME", data.abilityName,
66 "PAGE_URL", data.pageUrl,
67 "SCENE_ID", data.sceneId,
68 "STARTTIME", data.startTime,
69 "DURATION", data.durition,
70 "TOTAL_APP_FRAMES", data.totalAppFrames,
71 "TOTAL_APP_MISSED_FRAMES", data.totalAppMissedFrames,
72 "MAX_APP_FRAMETIME", data.maxAppFrameTime,
73 "MAX_APP_SEQ_MISSED_FRAMES", data.maxAppSeqMissedFrames,
74 "TOTAL_RENDER_FRAMES", data.totalRenderFrames,
75 "TOTAL_RENDER_MISSED_FRAMES", data.totalRenderMissedFrames,
76 "MAX_RENDER_FRAMETIME", data.maxRenderFrameTime,
77 "AVERAGE_RENDER_FRAMETIME", data.averageRenderFrameTime,
78 "MAX_RENDER_SEQ_MISSED_FRAMES", data.maxRenderSeqMissedFrames,
79 "IS_FOLD_DISP", data.isFoldDisp,
80 "TRACE_NAME", data.traceFileName,
81 "INFO_FILE", data.infoFileName,
82 "BUNDLE_NAME_EX", data.bundleNameEx,
83 "IS_FOCUS", data.isFocus,
84 "DISPLAY_ANIMATOR", data.isDisplayAnimator,
85 "HAPPEN_TIME", data.happenTime);
86 }