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 }