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