• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef JANK_ANIMATOR_MONITOR_CONVERTER_H
16 #define JANK_ANIMATOR_MONITOR_CONVERTER_H
17 
18 #include "IJankAnimatorReporter.h"
19 #include "IAnimatorSceneDataProcessor.h"
20 
21 namespace OHOS {
22 namespace HiviewDFX {
23 using AnimatorMetrics = IAnimatorSceneDataProcessor::AnimatorMetrics;
24 
25 class JankAnimatorMonitorConverter {
26 public:
ConverterReportData(AnimatorMetrics metricData)27     static JankAnimatorReportEvent ConverterReportData(AnimatorMetrics metricData)
28     {
29         return ConverterReportData(metricData, "", "");
30     }
31 
ConverterReportData(AnimatorMetrics metrics,std::string traceFileName,std::string infoFileName)32     static JankAnimatorReportEvent ConverterReportData(AnimatorMetrics metrics,
33                                                        std::string traceFileName, std::string infoFileName)
34     {
35         JankAnimatorReportEvent event;
36         event.appPid = metrics.appInfo.appPid;
37         event.versionCode = metrics.basicInfo.versionCode;
38         event.versionName = metrics.basicInfo.versionName;
39         event.bundleName = metrics.basicInfo.moduleName;
40         event.processName = metrics.basicInfo.processName;
41         event.abilityName = metrics.basicInfo.abilityName;
42         event.pageUrl = metrics.basicInfo.pageUrl;
43         event.sceneId = metrics.basicInfo.sceneId;
44         event.bundleNameEx = metrics.basicInfo.bundleNameEx;
45         event.isFocus = metrics.focus;
46         event.startTime = metrics.appInfo.startTime;
47         event.durition = metrics.appInfo.durition;
48         event.totalAppFrames = metrics.appInfo.totalFrames;
49         event.totalAppMissedFrames = metrics.appInfo.totalMissedFrames;
50         event.maxAppFrameTime = metrics.appInfo.maxFrameTime;
51         event.maxAppSeqMissedFrames = metrics.appInfo.maxSeqMissedFrames;
52         event.isDisplayAnimator = metrics.appInfo.isDisplayAnimator;
53         event.totalRenderFrames = metrics.rsInfo.totalFrames;
54         event.totalRenderMissedFrames = metrics.rsInfo.totalMissedFrames;
55         event.maxRenderFrameTime = metrics.rsInfo.maxFrameTime;
56         event.averageRenderFrameTime = metrics.rsInfo.averageFrameTime;
57         event.maxRenderSeqMissedFrames = metrics.rsInfo.maxSeqMissedFrames;
58         event.isFoldDisp = metrics.rsInfo.isFoldDisp;
59         event.happenTime = (metrics.appInfo.startTime == 0) ? metrics.rsInfo.happenTime : metrics.appInfo.startTime;
60         event.traceFileName = traceFileName;
61         event.infoFileName = infoFileName;
62         return event;
63     }
64 };
65 } // HiviewDFX
66 } // OHOS
67 #endif