1// Signature format: 4.0 2package androidx.benchmark.macro { 3 4 public enum BaselineProfileMode { 5 enum_constant public static final androidx.benchmark.macro.BaselineProfileMode Disable; 6 enum_constant public static final androidx.benchmark.macro.BaselineProfileMode Require; 7 enum_constant public static final androidx.benchmark.macro.BaselineProfileMode UseIfAvailable; 8 } 9 10 @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class BatteryCharge { 11 method public boolean hasMinimumCharge(optional boolean throwOnMissingMetrics); 12 field public static final androidx.benchmark.macro.BatteryCharge INSTANCE; 13 } 14 15 public abstract sealed class CompilationMode { 16 field public static final androidx.benchmark.macro.CompilationMode.Companion Companion; 17 field public static final androidx.benchmark.macro.CompilationMode DEFAULT; 18 } 19 20 public static final class CompilationMode.Companion { 21 } 22 23 public static final class CompilationMode.Full extends androidx.benchmark.macro.CompilationMode { 24 ctor public CompilationMode.Full(); 25 } 26 27 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMacrobenchmarkApi public static final class CompilationMode.Ignore extends androidx.benchmark.macro.CompilationMode { 28 ctor public CompilationMode.Ignore(); 29 } 30 31 @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final class CompilationMode.Interpreted extends androidx.benchmark.macro.CompilationMode { 32 field public static final androidx.benchmark.macro.CompilationMode.Interpreted INSTANCE; 33 } 34 35 @RequiresApi(24) public static final class CompilationMode.None extends androidx.benchmark.macro.CompilationMode { 36 ctor public CompilationMode.None(); 37 } 38 39 @RequiresApi(24) public static final class CompilationMode.Partial extends androidx.benchmark.macro.CompilationMode { 40 ctor public CompilationMode.Partial(); 41 ctor public CompilationMode.Partial(optional androidx.benchmark.macro.BaselineProfileMode baselineProfileMode); 42 ctor public CompilationMode.Partial(optional androidx.benchmark.macro.BaselineProfileMode baselineProfileMode, optional @IntRange(from=0L) int warmupIterations); 43 method public androidx.benchmark.macro.BaselineProfileMode getBaselineProfileMode(); 44 method public int getWarmupIterations(); 45 property public final androidx.benchmark.macro.BaselineProfileMode baselineProfileMode; 46 property public final int warmupIterations; 47 } 48 49 public final class CompilationModeKt { 50 method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static boolean isSupportedWithVmSettings(androidx.benchmark.macro.CompilationMode); 51 } 52 53 @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 { 54 } 55 56 @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 { 57 } 58 59 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class FrameTimingGfxInfoMetric extends androidx.benchmark.macro.Metric { 60 ctor public FrameTimingGfxInfoMetric(); 61 } 62 63 public final class FrameTimingMetric extends androidx.benchmark.macro.Metric { 64 ctor public FrameTimingMetric(); 65 } 66 67 public final class MacrobenchmarkScope { 68 ctor public MacrobenchmarkScope(String packageName, boolean launchWithClearTask); 69 method public void dropKernelPageCache(); 70 method public void dropShaderCache(); 71 method public androidx.test.uiautomator.UiDevice getDevice(); 72 method public Integer? getIteration(); 73 method public String getPackageName(); 74 method public void killProcess(); 75 method @Deprecated public void killProcess(optional boolean useKillAll); 76 method public void pressHome(); 77 method public void pressHome(optional long delayDurationMs); 78 method public void startActivityAndWait(); 79 method public void startActivityAndWait(android.content.Intent intent); 80 method public void startActivityAndWait(optional kotlin.jvm.functions.Function1<? super android.content.Intent,kotlin.Unit> block); 81 property public final androidx.test.uiautomator.UiDevice device; 82 property public final Integer? iteration; 83 property public final String packageName; 84 } 85 86 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class MemoryCountersMetric extends androidx.benchmark.macro.TraceMetric { 87 ctor public MemoryCountersMetric(); 88 method public java.util.List<androidx.benchmark.macro.Metric.Measurement> getMeasurements(androidx.benchmark.macro.Metric.CaptureInfo captureInfo, androidx.benchmark.perfetto.PerfettoTraceProcessor.Session traceSession); 89 } 90 91 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class MemoryUsageMetric extends androidx.benchmark.macro.TraceMetric { 92 ctor public MemoryUsageMetric(androidx.benchmark.macro.MemoryUsageMetric.Mode mode, optional java.util.List<? extends androidx.benchmark.macro.MemoryUsageMetric.SubMetric> subMetrics); 93 method public java.util.List<androidx.benchmark.macro.Metric.Measurement> getMeasurements(androidx.benchmark.macro.Metric.CaptureInfo captureInfo, androidx.benchmark.perfetto.PerfettoTraceProcessor.Session traceSession); 94 } 95 96 public enum MemoryUsageMetric.Mode { 97 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.Mode Last; 98 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.Mode Max; 99 } 100 101 public enum MemoryUsageMetric.SubMetric { 102 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric Gpu; 103 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric HeapSize; 104 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric RssAnon; 105 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric RssFile; 106 enum_constant public static final androidx.benchmark.macro.MemoryUsageMetric.SubMetric RssShmem; 107 } 108 109 public abstract sealed class Metric { 110 } 111 112 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public static final class Metric.CaptureInfo { 113 ctor public Metric.CaptureInfo(int apiLevel, String targetPackageName, String testPackageName, androidx.benchmark.macro.StartupMode? startupMode); 114 method public int component1(); 115 method public String component2(); 116 method public String component3(); 117 method public androidx.benchmark.macro.StartupMode? component4(); 118 method public androidx.benchmark.macro.Metric.CaptureInfo copy(int apiLevel, String targetPackageName, String testPackageName, androidx.benchmark.macro.StartupMode? startupMode); 119 method public int getApiLevel(); 120 method public androidx.benchmark.macro.StartupMode? getStartupMode(); 121 method public String getTargetPackageName(); 122 method public String getTestPackageName(); 123 property public final int apiLevel; 124 property public final androidx.benchmark.macro.StartupMode? startupMode; 125 property public final String targetPackageName; 126 property public final String testPackageName; 127 } 128 129 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public static final class Metric.Measurement { 130 ctor public Metric.Measurement(String name, double data); 131 ctor public Metric.Measurement(String name, java.util.List<java.lang.Double> dataSamples); 132 method public String component1(); 133 method public java.util.List<java.lang.Double> component2(); 134 method public boolean component3(); 135 method public androidx.benchmark.macro.Metric.Measurement copy(String name, java.util.List<java.lang.Double> data, boolean requireSingleValue); 136 method public java.util.List<java.lang.Double> getData(); 137 method public String getName(); 138 method public boolean getRequireSingleValue(); 139 property public final java.util.List<java.lang.Double> data; 140 property public final String name; 141 property public final boolean requireSingleValue; 142 } 143 144 public final class MetricResultExtensionsKt { 145 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); 146 } 147 148 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public enum PowerCategory { 149 enum_constant public static final androidx.benchmark.macro.PowerCategory CPU; 150 enum_constant public static final androidx.benchmark.macro.PowerCategory DISPLAY; 151 enum_constant public static final androidx.benchmark.macro.PowerCategory GPS; 152 enum_constant public static final androidx.benchmark.macro.PowerCategory GPU; 153 enum_constant public static final androidx.benchmark.macro.PowerCategory MACHINE_LEARNING; 154 enum_constant public static final androidx.benchmark.macro.PowerCategory MEMORY; 155 enum_constant public static final androidx.benchmark.macro.PowerCategory NETWORK; 156 enum_constant public static final androidx.benchmark.macro.PowerCategory UNCATEGORIZED; 157 } 158 159 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public enum PowerCategoryDisplayLevel { 160 enum_constant public static final androidx.benchmark.macro.PowerCategoryDisplayLevel BREAKDOWN; 161 enum_constant public static final androidx.benchmark.macro.PowerCategoryDisplayLevel TOTAL; 162 } 163 164 @SuppressCompatibility @RequiresApi(29) @androidx.benchmark.macro.ExperimentalMetricApi public final class PowerMetric extends androidx.benchmark.macro.Metric { 165 ctor public PowerMetric(androidx.benchmark.macro.PowerMetric.Type type); 166 method public static androidx.benchmark.macro.PowerMetric.Type.Battery Battery(); 167 method public static androidx.benchmark.macro.PowerMetric.Type.Energy Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 168 method public static androidx.benchmark.macro.PowerMetric.Type.Power Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 169 method public static boolean deviceBatteryHasMinimumCharge(); 170 method public static boolean deviceSupportsHighPrecisionTracking(); 171 field public static final androidx.benchmark.macro.PowerMetric.Companion Companion; 172 } 173 174 public static final class PowerMetric.Companion { 175 method public androidx.benchmark.macro.PowerMetric.Type.Battery Battery(); 176 method public androidx.benchmark.macro.PowerMetric.Type.Energy Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 177 method public androidx.benchmark.macro.PowerMetric.Type.Power Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> categories); 178 method public boolean deviceBatteryHasMinimumCharge(); 179 method public boolean deviceSupportsHighPrecisionTracking(); 180 } 181 182 public abstract static sealed class PowerMetric.Type { 183 method public final java.util.Map<androidx.benchmark.macro.PowerCategory,androidx.benchmark.macro.PowerCategoryDisplayLevel> getCategories(); 184 method public final void setCategories(java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel>); 185 property public final java.util.Map<androidx.benchmark.macro.PowerCategory,androidx.benchmark.macro.PowerCategoryDisplayLevel> categories; 186 } 187 188 public static final class PowerMetric.Type.Battery extends androidx.benchmark.macro.PowerMetric.Type { 189 ctor public PowerMetric.Type.Battery(); 190 } 191 192 public static final class PowerMetric.Type.Energy extends androidx.benchmark.macro.PowerMetric.Type { 193 ctor public PowerMetric.Type.Energy(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> energyCategories); 194 } 195 196 public static final class PowerMetric.Type.Power extends androidx.benchmark.macro.PowerMetric.Type { 197 ctor public PowerMetric.Type.Power(optional java.util.Map<androidx.benchmark.macro.PowerCategory,? extends androidx.benchmark.macro.PowerCategoryDisplayLevel> powerCategories); 198 } 199 200 @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class PowerRail { 201 method public boolean hasMetrics(optional boolean throwOnMissingMetrics); 202 field public static final androidx.benchmark.macro.PowerRail INSTANCE; 203 } 204 205 public enum StartupMode { 206 enum_constant public static final androidx.benchmark.macro.StartupMode COLD; 207 enum_constant public static final androidx.benchmark.macro.StartupMode HOT; 208 enum_constant public static final androidx.benchmark.macro.StartupMode WARM; 209 } 210 211 @RequiresApi(29) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class StartupTimingLegacyMetric extends androidx.benchmark.macro.Metric { 212 ctor public StartupTimingLegacyMetric(); 213 } 214 215 public final class StartupTimingMetric extends androidx.benchmark.macro.Metric { 216 ctor public StartupTimingMetric(); 217 } 218 219 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public abstract class TraceMetric extends androidx.benchmark.macro.Metric { 220 ctor public TraceMetric(); 221 method public abstract java.util.List<androidx.benchmark.macro.Metric.Measurement> getMeasurements(androidx.benchmark.macro.Metric.CaptureInfo captureInfo, androidx.benchmark.perfetto.PerfettoTraceProcessor.Session traceSession); 222 } 223 224 @SuppressCompatibility @androidx.benchmark.macro.ExperimentalMetricApi public final class TraceSectionMetric extends androidx.benchmark.macro.Metric { 225 ctor public TraceSectionMetric(String sectionName); 226 ctor public TraceSectionMetric(String sectionName, optional androidx.benchmark.macro.TraceSectionMetric.Mode mode); 227 ctor public TraceSectionMetric(String sectionName, optional androidx.benchmark.macro.TraceSectionMetric.Mode mode, optional String label); 228 ctor public TraceSectionMetric(String sectionName, optional androidx.benchmark.macro.TraceSectionMetric.Mode mode, optional String label, optional boolean targetPackageOnly); 229 } 230 231 public abstract static sealed class TraceSectionMetric.Mode { 232 } 233 234 public static final class TraceSectionMetric.Mode.Average extends androidx.benchmark.macro.TraceSectionMetric.Mode { 235 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Average INSTANCE; 236 } 237 238 public static final class TraceSectionMetric.Mode.Count extends androidx.benchmark.macro.TraceSectionMetric.Mode { 239 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Count INSTANCE; 240 } 241 242 public static final class TraceSectionMetric.Mode.First extends androidx.benchmark.macro.TraceSectionMetric.Mode { 243 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.First INSTANCE; 244 } 245 246 public static final class TraceSectionMetric.Mode.Max extends androidx.benchmark.macro.TraceSectionMetric.Mode { 247 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Max INSTANCE; 248 } 249 250 public static final class TraceSectionMetric.Mode.Min extends androidx.benchmark.macro.TraceSectionMetric.Mode { 251 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Min INSTANCE; 252 } 253 254 public static final class TraceSectionMetric.Mode.Sum extends androidx.benchmark.macro.TraceSectionMetric.Mode { 255 field public static final androidx.benchmark.macro.TraceSectionMetric.Mode.Sum INSTANCE; 256 } 257 258} 259 260package androidx.benchmark.perfetto { 261 262 @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface ExperimentalPerfettoTraceProcessorApi { 263 } 264 265 @SuppressCompatibility @androidx.benchmark.perfetto.ExperimentalPerfettoTraceProcessorApi public final class PerfettoTraceProcessor { 266 ctor public PerfettoTraceProcessor(); 267 method public <T> T loadTrace(androidx.benchmark.perfetto.PerfettoTrace trace, kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTraceProcessor.Session,? extends T> block); 268 method public static <T> T runServer(kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTraceProcessor,? extends T> block); 269 method public static <T> T runServer(long timeout, kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTraceProcessor,? extends T> block); 270 field public static final androidx.benchmark.perfetto.PerfettoTraceProcessor.Companion Companion; 271 } 272 273 public static final class PerfettoTraceProcessor.Companion { 274 method public <T> T runServer(kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTraceProcessor,? extends T> block); 275 method public static <T> T runServer(long timeout, kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTraceProcessor,? extends T> block); 276 } 277 278 public static final class PerfettoTraceProcessor.Session { 279 method public kotlin.sequences.Sequence<androidx.benchmark.perfetto.Row> query(@org.intellij.lang.annotations.Language("sql") String query); 280 method public String queryMetricsJson(java.util.List<java.lang.String> metrics); 281 method public byte[] queryMetricsProtoBinary(java.util.List<java.lang.String> metrics); 282 method public String queryMetricsProtoText(java.util.List<java.lang.String> metrics); 283 method public byte[] rawQuery(@org.intellij.lang.annotations.Language("sql") String query); 284 } 285 286 @SuppressCompatibility @androidx.benchmark.perfetto.ExperimentalPerfettoTraceProcessorApi public final class Row implements kotlin.jvm.internal.markers.KMappedMarker java.util.Map<java.lang.String,java.lang.Object?> { 287 ctor public Row(java.util.Map<java.lang.String,? extends java.lang.Object?> map); 288 method public byte[] bytes(String columnName); 289 method public double double(String columnName); 290 method public long long(String columnName); 291 method public byte[]? nullableBytes(String columnName); 292 method public Double? nullableDouble(String columnName); 293 method public Long? nullableLong(String columnName); 294 method public String? nullableString(String columnName); 295 method public String string(String columnName); 296 } 297 298 public final class RowKt { 299 method @SuppressCompatibility @androidx.benchmark.perfetto.ExperimentalPerfettoTraceProcessorApi public static androidx.benchmark.perfetto.Row rowOf(kotlin.Pair<java.lang.String,? extends java.lang.Object?>... pairs); 300 } 301 302} 303 304