From e190f0ae5ba53abdfb16f98d560a63c8a1e6f79a Mon Sep 17 00:00:00 2001 From: Riddle Hsu Date: Thu, 8 Oct 2020 20:09:45 +0800 Subject: [PATCH] Add ART optimization dimension to reportFullyDrawn Bug: 170310046 Test: adb shell cmd stats print-logs adb logcat | grep statsd | grep "(50)" Change-Id: I1d33ff4639c85d2b1f57f2fef72d883c3eed7f00 Merged-In: I1d33ff4639c85d2b1f57f2fef72d883c3eed7f00 (cherry picked from commit ec2e3ee7040b29e63999d510e9d550d426a07ee3) --- .../server/wm/ActivityMetricsLogger.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java index 189b21fb81a67..7e6abf8b5029f 100644 --- a/services/core/java/com/android/server/wm/ActivityMetricsLogger.java +++ b/services/core/java/com/android/server/wm/ActivityMetricsLogger.java @@ -376,6 +376,13 @@ class ActivityMetricsLogger { return -1; } } + + PackageOptimizationInfo getPackageOptimizationInfo(ArtManagerInternal artManagerInternal) { + return artManagerInternal == null || launchedActivityAppRecordRequiredAbi == null + ? PackageOptimizationInfo.createWithNoInfo() + : artManagerInternal.getPackageOptimizationInfo(applicationInfo, + launchedActivityAppRecordRequiredAbi, launchedActivityName); + } } ActivityMetricsLogger(ActivityStackSupervisor supervisor, Looper looper) { @@ -836,14 +843,8 @@ class ActivityMetricsLogger { info.bindApplicationDelayMs); } builder.addTaggedData(APP_TRANSITION_WINDOWS_DRAWN_DELAY_MS, info.windowsDrawnDelayMs); - final ArtManagerInternal artManagerInternal = getArtManagerInternal(); final PackageOptimizationInfo packageOptimizationInfo = - (artManagerInternal == null) || (info.launchedActivityAppRecordRequiredAbi == null) - ? PackageOptimizationInfo.createWithNoInfo() - : artManagerInternal.getPackageOptimizationInfo( - info.applicationInfo, - info.launchedActivityAppRecordRequiredAbi, - info.launchedActivityName); + info.getPackageOptimizationInfo(getArtManagerInternal()); builder.addTaggedData(PACKAGE_OPTIMIZATION_COMPILATION_REASON, packageOptimizationInfo.getCompilationReason()); builder.addTaggedData(PACKAGE_OPTIMIZATION_COMPILATION_FILTER, @@ -962,6 +963,8 @@ class ActivityMetricsLogger { builder.addTaggedData(APP_TRANSITION_PROCESS_RUNNING, info.mProcessRunning ? 1 : 0); mMetricsLogger.write(builder); + final PackageOptimizationInfo packageOptimizationInfo = + infoSnapshot.getPackageOptimizationInfo(getArtManagerInternal()); FrameworkStatsLog.write( FrameworkStatsLog.APP_START_FULLY_DRAWN, info.mLastLaunchedActivity.info.applicationInfo.uid, @@ -971,7 +974,9 @@ class ActivityMetricsLogger { : FrameworkStatsLog.APP_START_FULLY_DRAWN__TYPE__WITHOUT_BUNDLE, info.mLastLaunchedActivity.info.name, info.mProcessRunning, - startupTimeMs); + startupTimeMs, + packageOptimizationInfo.getCompilationReason(), + packageOptimizationInfo.getCompilationFilter()); // Ends the trace started at the beginning of this function. This is located here to allow // the trace slice to have a noticable duration.