1// Signature format: 4.0 2package androidx.benchmark.macro { 3 4 @RequiresApi(24) public final class ArtMetric extends androidx.benchmark.macro.Metric { 5 ctor public ArtMetric(); 6 } 7 8 public enum BaselineProfileMode { 9 enum_constant public static final androidx.benchmark.macro.BaselineProfileMode Disable; 10 enum_constant public static final androidx.benchmark.macro.BaselineProfileMode Require; 11 enum_constant public static final androidx.benchmark.macro.BaselineProfileMode UseIfAvailable; 12 } 13 14 public final class BaselineProfileResult { 15 ctor public BaselineProfileResult(); 16 ctor public BaselineProfileResult(optional java.util.List<java.lang.String> baselineProfiles, optional java.util.List<java.lang.String> startupProfiles); 17 method public java.util.List<java.lang.String> getBaselineProfiles(); 18 method public java.util.List<java.lang.String> getStartupProfiles(); 19 property public java.util.List<java.lang.String> baselineProfiles; 20 property public java.util.List<java.lang.String> startupProfiles; 21 } 22 23 public abstract sealed class CompilationMode { 24 field public static final androidx.benchmark.macro.CompilationMode.Companion Companion; 25 field public static final androidx.benchmark.macro.CompilationMode DEFAULT; 26 } 27 28 public static final class CompilationMode.Companion { 29 property public androidx.benchmark.macro.CompilationMode DEFAULT; 30 } 31 32 public static final class CompilationMode.Full extends androidx.benchmark.macro.CompilationMode { 33 ctor public CompilationMode.Full(); 34 } 35 36 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMacrobenchmarkApi public static final class CompilationMode.Ignore extends androidx.benchmark.macro.CompilationMode { 37 ctor public CompilationMode.Ignore(); 38 } 39 40 @RequiresApi(24) public static final class CompilationMode.None extends androidx.benchmark.macro.CompilationMode { 41 ctor public CompilationMode.None(); 42 } 43 44 @RequiresApi(24) public static final class CompilationMode.Partial extends androidx.benchmark.macro.CompilationMode { 45 ctor public CompilationMode.Partial(); 46 ctor public CompilationMode.Partial(optional androidx.benchmark.macro.BaselineProfileMode baselineProfileMode); 47 ctor public CompilationMode.Partial(optional androidx.benchmark.macro.BaselineProfileMode baselineProfileMode, optional @IntRange(from=0L) int warmupIterations); 48 method public androidx.benchmark.macro.BaselineProfileMode getBaselineProfileMode(); 49 method public int getWarmupIterations(); 50 property public androidx.benchmark.macro.BaselineProfileMode baselineProfileMode; 51 property @IntRange(from=0L) public int warmupIterations; 52 } 53 54 @SuppressCompatibility @kotlin.RequiresOptIn(message="This Macrobenchmark API is experimental.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface ExperimentalMacrobenchmarkApi { 55 } 56 57 @SuppressCompatibility @kotlin.RequiresOptIn(message="This Metric API is experimental.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface ExperimentalMetricApi { 58 } 59 60 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class FrameTimingGfxInfoMetric extends androidx.benchmark.macro.Metric { 61 ctor public FrameTimingGfxInfoMetric(); 62 } 63 64 public final class FrameTimingMetric extends androidx.benchmark.macro.Metric { 65 ctor public FrameTimingMetric(); 66 } 67 68 public final class MacrobenchmarkScope { 69 ctor public MacrobenchmarkScope(String packageName, boolean launchWithClearTask); 70 method public void dropKernelPageCache(); 71 method public void dropShaderCache(); 72 method public androidx.test.uiautomator.UiDevice getDevice(); 73 method public Integer? getIteration(); 74 method public String getPackageName(); 75 method public void killProcess(); 76 method @Deprecated public void killProcess(optional boolean useKillAll); 77 method public void pressHome(); 78 method public void pressHome(optional long delayDurationMs); 79 method public void startActivityAndWait(); 80 method public void startActivityAndWait(android.content.Intent intent); 81 method public void startActivityAndWait(optional kotlin.jvm.functions.Function1<? super android.content.Intent,kotlin.Unit> block); 82 property public androidx.test.uiautomator.UiDevice device; 83 property public Integer? iteration; 84 property public String packageName; 85 } 86 87 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class MemoryCountersMetric extends androidx.benchmark.macro.TraceMetric { 88 ctor public MemoryCountersMetric(); 89 method public java.util.List<androidx.benchmark.macro.Metric.Measurement> getMeasurements(androidx.benchmark.macro.Metric.CaptureInfo captureInfo, androidx.benchmark.traceprocessor.TraceProcessor.Session traceSession); 90 } 91 92 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class MemoryUsageMetric extends androidx.benchmark.macro.TraceMetric { 93 ctor public MemoryUsageMetric(androidx.benchmark.macro.MemoryUsageMetric.Mode mode, optional java.util.List<? extends androidx.benchmark.macro.MemoryUsageMetric.SubMetric> subMetrics); 94 method public java.util.List<androidx.benchmark.macro.Metric.Measurement> getMeasurements(androidx.benchmark.macro.Metric.CaptureInfo captureInfo, androidx.benchmark.traceprocessor.TraceProcessor.Session traceSession); 95 } 96 97 public enum MemoryUsageMetric.Mode { 98 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.Mode Last; 99 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.Mode Max; 100 } 101 102 public enum MemoryUsageMetric.SubMetric { 103 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric Gpu; 104 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric HeapSize; 105 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric RssAnon; 106 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric RssFile; 107 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric RssShmem; 108 } 109 110 public abstract sealed class Metric { 111 } 112 113 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public static final class Metric.CaptureInfo { 114 ctor public Metric.CaptureInfo(int apiLevel, String targetPackageName, String testPackageName, androidx.benchmark.macro.StartupMode? startupMode, optional Long? artMainlineVersion); 115 method public static androidx.benchmark.macro.Metric.CaptureInfo forLocalCapture(String targetPackageName, androidx.benchmark.macro.StartupMode? startupMode); 116 method public int getApiLevel(); 117 method public Long? getArtMainlineVersion(); 118 method public androidx.benchmark.macro.StartupMode? getStartupMode(); 119 method public String getTargetPackageName(); 120 method public String getTestPackageName(); 121 property public int apiLevel; 122 property public Long? artMainlineVersion; 123 property public androidx.benchmark.macro.StartupMode? startupMode; 124 property public String targetPackageName; 125 property public String testPackageName; 126 field public static final androidx.benchmark.macro.Metric.CaptureInfo.Companion Companion; 127 } 128 129 public static final class Metric.CaptureInfo.Companion { 130 method public androidx.benchmark.macro.Metric.CaptureInfo forLocalCapture(String targetPackageName, androidx.benchmark.macro.StartupMode? startupMode); 131 } 132 133 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi @kotlin.ConsistentCopyVisibility public static final class Metric.Measurement { 134 ctor public Metric.Measurement(String name, double data); 135 ctor public Metric.Measurement(String name, java.util.List<java.lang.Double> dataSamples); 136 method public String component1(); 137 method public java.util.List<java.lang.Double> component2(); 138 method public boolean component3(); 139 method public androidx.benchmark.macro.Metric.Measurement copy$main(String name, java.util.List<java.lang.Double!> data, boolean requireSingleValue); 140 method public java.util.List<java.lang.Double> getData(); 141 method public String getName(); 142 method public boolean getRequireSingleValue(); 143 property public java.util.List<java.lang.Double> data; 144 property public String name; 145 property public boolean requireSingleValue; 146 } 147 148 public final class MetricResultExtensionsKt { 149 method @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public static void assertEqualMeasurements(java.util.List<androidx.benchmark.macro.Metric.Measurement> expected, java.util.List<androidx.benchmark.macro.Metric.Measurement> observed, double threshold); 150 } 151 152 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public enum PowerCategory { 153 enum_constant public static final androidx.benchmark.macro.PowerCategory CPU; 154 enum_constant public static final androidx.benchmark.macro.PowerCategory DISPLAY; 155 enum_constant public static final androidx.benchmark.macro.PowerCategory GPS; 156 enum_constant public static final androidx.benchmark.macro.PowerCategory GPU; 157 enum_constant public static final androidx.benchmark.macro.PowerCategory MACHINE_LEARNING; 158 enum_constant public static final androidx.benchmark.macro.PowerCategory MEMORY; 159 enum_constant public static final androidx.benchmark.macro.PowerCategory NETWORK; 160 enum_constant public static final androidx.benchmark.macro.PowerCategory UNCATEGORIZED; 161 } 162 163 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public enum PowerCategoryDisplayLevel { 164 enum_constant public static final androidx.benchmark.macro.PowerCategoryDisplayLevel BREAKDOWN; 165 enum_constant public static final androidx.benchmark.macro.PowerCategoryDisplayLevel TOTAL; 166 } 167 168 @SuppressCompatibility @RequiresApi(29) @androidx.benchmark.macro.ExperimentalMetricApi public final class PowerMetric extends androidx.benchmark.macro.Metric { 169 ctor public PowerMetric(androidx.benchmark.macro.PowerMetric.Type type); 170 method public static androidx.benchmark.macro.PowerMetric.Type.Battery Battery(); 171 method public static androidx.benchmark.macro.PowerMetric.Type.Energy Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 172 method public static androidx.benchmark.macro.PowerMetric.Type.Power Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 173 method public static boolean deviceBatteryHasMinimumCharge(); 174 method public static boolean deviceSupportsHighPrecisionTracking(); 175 field public static final androidx.benchmark.macro.PowerMetric.Companion Companion; 176 } 177 178 public static final class PowerMetric.Companion { 179 method public androidx.benchmark.macro.PowerMetric.Type.Battery Battery(); 180 method public androidx.benchmark.macro.PowerMetric.Type.Energy Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 181 method public androidx.benchmark.macro.PowerMetric.Type.Power Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 182 method public boolean deviceBatteryHasMinimumCharge(); 183 method public boolean deviceSupportsHighPrecisionTracking(); 184 } 185 186 public abstract static sealed class PowerMetric.Type { 187 method public final java.util.Map<androidx.benchmark.macro.PowerCategory,androidx.benchmark.macro.PowerCategoryDisplayLevel> getCategories(); 188 method public final void setCategories(java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel>); 189 property public final java.util.Map<androidx.benchmark.macro.PowerCategory,androidx.benchmark.macro.PowerCategoryDisplayLevel> categories; 190 } 191 192 public static final class PowerMetric.Type.Battery extends androidx.benchmark.macro.PowerMetric.Type { 193 ctor public PowerMetric.Type.Battery(); 194 } 195 196 public static final class PowerMetric.Type.Energy extends androidx.benchmark.macro.PowerMetric.Type { 197 ctor public PowerMetric.Type.Energy(); 198 ctor public PowerMetric.Type.Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> energyCategories); 199 } 200 201 public static final class PowerMetric.Type.Power extends androidx.benchmark.macro.PowerMetric.Type { 202 ctor public PowerMetric.Type.Power(); 203 ctor public PowerMetric.Type.Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> powerCategories); 204 } 205 206 public enum StartupMode { 207 enum_constant public static final androidx.benchmark.macro.StartupMode COLD; 208 enum_constant public static final androidx.benchmark.macro.StartupMode HOT; 209 enum_constant public static final androidx.benchmark.macro.StartupMode WARM; 210 } 211 212 public final class StartupTimingMetric extends androidx.benchmark.macro.Metric { 213 ctor public StartupTimingMetric(); 214 } 215 216 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public abstract class TraceMetric extends androidx.benchmark.macro.Metric { 217 ctor public TraceMetric(); 218 method public abstract java.util.List<androidx.benchmark.macro.Metric.Measurement> getMeasurements(androidx.benchmark.macro.Metric.CaptureInfo captureInfo, androidx.benchmark.traceprocessor.TraceProcessor.Session traceSession); 219 } 220 221 public final class TraceProcessorExtensionsKt { 222 method @SuppressCompatibility @androidx.benchmark.traceprocessor.ExperimentalTraceProcessorApi public static <T> T runServer(androidx.benchmark.traceprocessor.TraceProcessor.Companion, kotlin.jvm.functions.Function1<? super androidx.benchmark.traceprocessor.TraceProcessor,? extends T> block); 223 method @SuppressCompatibility @androidx.benchmark.traceprocessor.ExperimentalTraceProcessorApi public static <T> T runServer(androidx.benchmark.traceprocessor.TraceProcessor.Companion, optional long timeoutMs, kotlin.jvm.functions.Function1<? super androidx.benchmark.traceprocessor.TraceProcessor,? extends T> block); 224 method @SuppressCompatibility @CheckResult @androidx.benchmark.traceprocessor.ExperimentalTraceProcessorApi public static androidx.benchmark.traceprocessor.TraceProcessor.Handle startServer(androidx.benchmark.traceprocessor.TraceProcessor.Companion); 225 method @SuppressCompatibility @CheckResult @androidx.benchmark.traceprocessor.ExperimentalTraceProcessorApi public static androidx.benchmark.traceprocessor.TraceProcessor.Handle startServer(androidx.benchmark.traceprocessor.TraceProcessor.Companion, optional long timeoutMs); 226 } 227 228 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class TraceSectionMetric extends androidx.benchmark.macro.Metric { 229 ctor public TraceSectionMetric(String sectionName); 230 ctor public TraceSectionMetric(String sectionName, optional androidx.benchmark.macro.TraceSectionMetric.Mode mode); 231 ctor public TraceSectionMetric(String sectionName, optional androidx.benchmark.macro.TraceSectionMetric.Mode mode, optional String label); 232 ctor public TraceSectionMetric(String sectionName, optional androidx.benchmark.macro.TraceSectionMetric.Mode mode, optional String label, optional boolean targetPackageOnly); 233 } 234 235 public abstract static sealed class TraceSectionMetric.Mode { 236 } 237 238 public static final class TraceSectionMetric.Mode.Average extends androidx.benchmark.macro.TraceSectionMetric.Mode { 239 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Average INSTANCE; 240 } 241 242 public static final class TraceSectionMetric.Mode.Count extends androidx.benchmark.macro.TraceSectionMetric.Mode { 243 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Count INSTANCE; 244 } 245 246 public static final class TraceSectionMetric.Mode.First extends androidx.benchmark.macro.TraceSectionMetric.Mode { 247 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.First INSTANCE; 248 } 249 250 public static final class TraceSectionMetric.Mode.Max extends androidx.benchmark.macro.TraceSectionMetric.Mode { 251 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Max INSTANCE; 252 } 253 254 public static final class TraceSectionMetric.Mode.Min extends androidx.benchmark.macro.TraceSectionMetric.Mode { 255 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Min INSTANCE; 256 } 257 258 public static final class TraceSectionMetric.Mode.Sum extends androidx.benchmark.macro.TraceSectionMetric.Mode { 259 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Sum INSTANCE; 260 } 261 262} 263 264