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