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