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