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 namespace OHOS {
21 namespace HiviewDFX {
22 DEFINE_LOG_LABEL(0xD002D66, "Hiview-XPerformance");
23
24 static constexpr char EXEC_DOMAIN[] = "PERFORMANCE";
25
26 using OHOS::HiviewDFX::HiSysEvent;
27
28
ReportNormal(const JankAnimatorReportData& data)29 void JankAnimatorReporter::ReportNormal(const JankAnimatorReportData& data)
30 {
31 HIVIEW_LOGD("JankAnimatorReporter ReportNormal Start");
32 HiSysEventWrite(EXEC_DOMAIN, "INTERACTION_JANK", HiSysEvent::EventType::BEHAVIOR,
33 "APP_PID", data.appPid,
34 "VERSION_CODE", data.versionCode,
35 "VERSION_NAME", data.versionName,
36 "BUNDLE_NAME", data.bundleName,
37 "PROCESS_NAME", data.processName,
38 "ABILITY_NAME", data.abilityName,
39 "PAGE_URL", data.pageUrl,
40 "SCENE_ID", data.sceneId,
41 "STARTTIME", data.startTime,
42 "DURATION", data.durition,
43 "TOTAL_APP_FRAMES", data.totalAppFrames,
44 "TOTAL_APP_MISSED_FRAMES", data.totalAppMissedFrames,
45 "MAX_APP_FRAMETIME", data.maxAppFrameTime,
46 "MAX_APP_SEQ_MISSED_FRAMES", data.maxAppSeqMissedFrames,
47 "TOTAL_RENDER_FRAMES", data.totalRenderFrames,
48 "TOTAL_RENDER_MISSED_FRAMES", data.totalRenderMissedFrames,
49 "MAX_RENDER_FRAMETIME", data.maxRenderFrameTime,
50 "AVERAGE_RENDER_FRAMETIME", data.averageRenderFrameTime,
51 "MAX_RENDER_SEQ_MISSED_FRAMES", data.maxRenderSeqMissedFrames,
52 "IS_FOLD_DISP", data.isFoldDisp,
53 "BUNDLE_NAME_EX", data.bundleNameEx,
54 "IS_FOCUS", data.isFocus,
55 "DISPLAY_ANIMATOR", data.isDisplayAnimator);
56 }
57
ReportCritical(const JankAnimatorReportData& data)58 void JankAnimatorReporter::ReportCritical(const JankAnimatorReportData& data)
59 {
60 HIVIEW_LOGD("JankAnimatorReporter ReportCritical Start");
61 HiSysEventWrite(EXEC_DOMAIN, "INTERACTION_JANK_FAULT", HiSysEvent::EventType::FAULT,
62 "APP_PID", data.appPid,
63 "VERSION_CODE", data.versionCode,
64 "VERSION_NAME", data.versionName,
65 "BUNDLE_NAME", data.bundleName,
66 "PROCESS_NAME", data.processName,
67 "ABILITY_NAME", data.abilityName,
68 "PAGE_URL", data.pageUrl,
69 "SCENE_ID", data.sceneId,
70 "STARTTIME", data.startTime,
71 "DURATION", data.durition,
72 "TOTAL_APP_FRAMES", data.totalAppFrames,
73 "TOTAL_APP_MISSED_FRAMES", data.totalAppMissedFrames,
74 "MAX_APP_FRAMETIME", data.maxAppFrameTime,
75 "MAX_APP_SEQ_MISSED_FRAMES", data.maxAppSeqMissedFrames,
76 "TOTAL_RENDER_FRAMES", data.totalRenderFrames,
77 "TOTAL_RENDER_MISSED_FRAMES", data.totalRenderMissedFrames,
78 "MAX_RENDER_FRAMETIME", data.maxRenderFrameTime,
79 "AVERAGE_RENDER_FRAMETIME", data.averageRenderFrameTime,
80 "MAX_RENDER_SEQ_MISSED_FRAMES", data.maxRenderSeqMissedFrames,
81 "IS_FOLD_DISP", data.isFoldDisp,
82 "TRACE_NAME", data.traceFileName,
83 "INFO_FILE", data.infoFileName,
84 "BUNDLE_NAME_EX", data.bundleNameEx,
85 "IS_FOCUS", data.isFocus,
86 "DISPLAY_ANIMATOR", data.isDisplayAnimator,
87 "HAPPEN_TIME", data.happenTime);
88 }
89 } // HiviewDFX
90 } // OHOS