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