1// Signature format: 2.0
2package com.android.ahat {
3
4  public class Main {
5    method public static void main(String[]);
6  }
7
8}
9
10package com.android.ahat.dominators {
11
12  public class Dominators<Node> {
13    ctor public Dominators(com.android.ahat.dominators.Dominators.Graph);
14    method public void computeDominators(Node);
15    method public com.android.ahat.dominators.Dominators progress(com.android.ahat.progress.Progress, long);
16  }
17
18  public static interface Dominators.Graph<Node> {
19    method public Object getDominatorsComputationState(Node);
20    method public Iterable<? extends Node> getReferencesForDominators(Node);
21    method public void setDominator(Node, Node);
22    method public void setDominatorsComputationState(Node, Object);
23  }
24
25  @Deprecated public class DominatorsComputation {
26    method @Deprecated public static void computeDominators(com.android.ahat.dominators.DominatorsComputation.Node);
27    method @Deprecated public static void computeDominators(com.android.ahat.dominators.DominatorsComputation.Node, com.android.ahat.progress.Progress, long);
28  }
29
30  @Deprecated public static interface DominatorsComputation.Node {
31    method @Deprecated public Object getDominatorsComputationState();
32    method @Deprecated public Iterable<? extends Node> getReferencesForDominators();
33    method @Deprecated public void setDominator(com.android.ahat.dominators.DominatorsComputation.Node);
34    method @Deprecated public void setDominatorsComputationState(Object);
35  }
36
37}
38
39package com.android.ahat.heapdump {
40
41  public class AhatArrayInstance extends com.android.ahat.heapdump.AhatInstance {
42    method public int getLength();
43    method public com.android.ahat.heapdump.Value getValue(int);
44    method public List<Value> getValues();
45    method public String toString();
46  }
47
48  public class AhatClassInstance extends com.android.ahat.heapdump.AhatInstance {
49    method public Iterable<FieldValue> getInstanceFields();
50    method public String toString();
51  }
52
53  public class AhatClassObj extends com.android.ahat.heapdump.AhatInstance {
54    method public com.android.ahat.heapdump.AhatInstance getClassLoader();
55    method public com.android.ahat.heapdump.Field[] getInstanceFields();
56    method public long getInstanceSize();
57    method public String getName();
58    method public List<FieldValue> getStaticFieldValues();
59    method public com.android.ahat.heapdump.AhatClassObj getSuperClassObj();
60    method public String toString();
61  }
62
63  public class AhatHeap implements com.android.ahat.heapdump.Diffable<com.android.ahat.heapdump.AhatHeap> {
64    method public com.android.ahat.heapdump.AhatHeap getBaseline();
65    method public String getName();
66    method public com.android.ahat.heapdump.Size getSize();
67    method public boolean isPlaceHolder();
68  }
69
70  public abstract class AhatInstance implements com.android.ahat.heapdump.Diffable<com.android.ahat.heapdump.AhatInstance> {
71    method public com.android.ahat.heapdump.AhatArrayInstance asArrayInstance();
72    method public BufferedImage asBitmap();
73    method public com.android.ahat.heapdump.AhatClassInstance asClassInstance();
74    method public com.android.ahat.heapdump.AhatClassObj asClassObj();
75    method public String asString(int);
76    method public String asString();
77    method public com.android.ahat.heapdump.AhatInstance getAssociatedBitmapInstance();
78    method public com.android.ahat.heapdump.AhatClassObj getAssociatedClassForOverhead();
79    method public com.android.ahat.heapdump.AhatInstance getBaseline();
80    method public String getBinderProxyInterfaceName();
81    method public String getBinderStubInterfaceName();
82    method public String getBinderTokenDescriptor();
83    method public String getClassName();
84    method public com.android.ahat.heapdump.AhatClassObj getClassObj();
85    method public String getDexCacheLocation(int);
86    method public List<AhatInstance> getDominated();
87    method public com.android.ahat.heapdump.Value getField(String);
88    method @Deprecated public List<AhatInstance> getHardReverseReferences();
89    method public com.android.ahat.heapdump.AhatHeap getHeap();
90    method public long getId();
91    method public com.android.ahat.heapdump.AhatInstance getImmediateDominator();
92    method public List<PathElement> getPathFromGcRoot();
93    method public com.android.ahat.heapdump.Reachability getReachability();
94    method public com.android.ahat.heapdump.AhatInstance getRefField(String);
95    method public com.android.ahat.heapdump.AhatInstance getReferent();
96    method public com.android.ahat.heapdump.Size getRetainedSize(com.android.ahat.heapdump.AhatHeap);
97    method public List<AhatInstance> getReverseReferences();
98    method public Collection<RootType> getRootTypes();
99    method public com.android.ahat.heapdump.Site getSite();
100    method public com.android.ahat.heapdump.Size getSize();
101    method @Deprecated public List<AhatInstance> getSoftReverseReferences();
102    method public com.android.ahat.heapdump.Size getTotalRetainedSize();
103    method public boolean isArrayInstance();
104    method public boolean isClassInstance();
105    method public boolean isClassObj();
106    method public boolean isInstanceOfClass(String);
107    method public boolean isPlaceHolder();
108    method public boolean isRoot();
109    method public boolean isStronglyReachable();
110    method public boolean isUnreachable();
111    method @Deprecated public boolean isWeaklyReachable();
112    method public abstract String toString();
113  }
114
115  public class AhatSnapshot implements com.android.ahat.heapdump.Diffable<com.android.ahat.heapdump.AhatSnapshot> {
116    method public com.android.ahat.heapdump.AhatClassObj findClassObj(long);
117    method public com.android.ahat.heapdump.AhatInstance findInstance(long);
118    method public com.android.ahat.heapdump.AhatSnapshot getBaseline();
119    method public com.android.ahat.heapdump.AhatHeap getHeap(String);
120    method public List<AhatHeap> getHeaps();
121    method public com.android.ahat.heapdump.Site getRootSite();
122    method public List<AhatInstance> getRooted();
123    method public com.android.ahat.heapdump.Site getSite(long);
124    method public boolean isDiffed();
125    method public boolean isPlaceHolder();
126  }
127
128  public class Diff {
129    method public static void snapshots(com.android.ahat.heapdump.AhatSnapshot, com.android.ahat.heapdump.AhatSnapshot);
130  }
131
132  public class DiffFields {
133    ctor public DiffFields();
134    method public static List<DiffedFieldValue> diff(Iterable<FieldValue>, Iterable<FieldValue>);
135  }
136
137  public interface Diffable<T> {
138    method public T getBaseline();
139    method public boolean isPlaceHolder();
140  }
141
142  public class DiffedFieldValue {
143    method public static com.android.ahat.heapdump.DiffedFieldValue added(com.android.ahat.heapdump.FieldValue);
144    method public static com.android.ahat.heapdump.DiffedFieldValue deleted(com.android.ahat.heapdump.FieldValue);
145    method public boolean equals(Object);
146    method public int hashCode();
147    method public static com.android.ahat.heapdump.DiffedFieldValue matched(com.android.ahat.heapdump.FieldValue, com.android.ahat.heapdump.FieldValue);
148    method public String toString();
149    field public final com.android.ahat.heapdump.Value baseline;
150    field public final com.android.ahat.heapdump.Value current;
151    field public final String name;
152    field public final com.android.ahat.heapdump.DiffedFieldValue.Status status;
153    field public final com.android.ahat.heapdump.Type type;
154  }
155
156  public enum DiffedFieldValue.Status {
157    enum_constant public static final com.android.ahat.heapdump.DiffedFieldValue.Status ADDED;
158    enum_constant public static final com.android.ahat.heapdump.DiffedFieldValue.Status DELETED;
159    enum_constant public static final com.android.ahat.heapdump.DiffedFieldValue.Status MATCHED;
160  }
161
162  public class Field {
163    ctor public Field(String, com.android.ahat.heapdump.Type);
164    field public final String name;
165    field public final com.android.ahat.heapdump.Type type;
166  }
167
168  public class FieldValue {
169    ctor public FieldValue(String, com.android.ahat.heapdump.Type, com.android.ahat.heapdump.Value);
170    field public final String name;
171    field public final com.android.ahat.heapdump.Type type;
172    field public final com.android.ahat.heapdump.Value value;
173  }
174
175  public class HprofFormatException {
176  }
177
178  public class Parser {
179    ctor public Parser(ByteBuffer);
180    ctor public Parser(File);
181    method public com.android.ahat.heapdump.Parser map(com.android.ahat.proguard.ProguardMap);
182    method public com.android.ahat.heapdump.AhatSnapshot parse() throws com.android.ahat.heapdump.HprofFormatException;
183    method public static com.android.ahat.heapdump.AhatSnapshot parseHeapDump(File, com.android.ahat.proguard.ProguardMap) throws com.android.ahat.heapdump.HprofFormatException;
184    method public static com.android.ahat.heapdump.AhatSnapshot parseHeapDump(ByteBuffer, com.android.ahat.proguard.ProguardMap) throws com.android.ahat.heapdump.HprofFormatException;
185    method public com.android.ahat.heapdump.Parser progress(com.android.ahat.progress.Progress);
186    method public com.android.ahat.heapdump.Parser retained(com.android.ahat.heapdump.Reachability);
187  }
188
189  public class PathElement implements com.android.ahat.heapdump.Diffable<com.android.ahat.heapdump.PathElement> {
190    ctor public PathElement(com.android.ahat.heapdump.AhatInstance, String);
191    method public com.android.ahat.heapdump.PathElement getBaseline();
192    method public boolean isPlaceHolder();
193    field public final String field;
194    field public final com.android.ahat.heapdump.AhatInstance instance;
195    field public boolean isDominator;
196  }
197
198  public enum Reachability {
199    method public boolean notWeakerThan(com.android.ahat.heapdump.Reachability);
200    method public String toString();
201    enum_constant public static final com.android.ahat.heapdump.Reachability FINALIZER;
202    enum_constant public static final com.android.ahat.heapdump.Reachability PHANTOM;
203    enum_constant public static final com.android.ahat.heapdump.Reachability SOFT;
204    enum_constant public static final com.android.ahat.heapdump.Reachability STRONG;
205    enum_constant public static final com.android.ahat.heapdump.Reachability UNREACHABLE;
206    enum_constant public static final com.android.ahat.heapdump.Reachability WEAK;
207  }
208
209  public enum RootType {
210    enum_constant public static final com.android.ahat.heapdump.RootType DEBUGGER;
211    enum_constant public static final com.android.ahat.heapdump.RootType FINALIZING;
212    enum_constant public static final com.android.ahat.heapdump.RootType INTERNED_STRING;
213    enum_constant public static final com.android.ahat.heapdump.RootType JAVA_FRAME;
214    enum_constant public static final com.android.ahat.heapdump.RootType JNI_GLOBAL;
215    enum_constant public static final com.android.ahat.heapdump.RootType JNI_LOCAL;
216    enum_constant public static final com.android.ahat.heapdump.RootType JNI_MONITOR;
217    enum_constant public static final com.android.ahat.heapdump.RootType MONITOR;
218    enum_constant public static final com.android.ahat.heapdump.RootType NATIVE_STACK;
219    enum_constant public static final com.android.ahat.heapdump.RootType STICKY_CLASS;
220    enum_constant public static final com.android.ahat.heapdump.RootType THREAD;
221    enum_constant public static final com.android.ahat.heapdump.RootType THREAD_BLOCK;
222    enum_constant public static final com.android.ahat.heapdump.RootType UNKNOWN;
223    enum_constant public static final com.android.ahat.heapdump.RootType VM_INTERNAL;
224  }
225
226  public class Site implements com.android.ahat.heapdump.Diffable<com.android.ahat.heapdump.Site> {
227    method public com.android.ahat.heapdump.Site findSite(long);
228    method public com.android.ahat.heapdump.Site getBaseline();
229    method public List<Site> getChildren();
230    method public String getFilename();
231    method public long getId();
232    method public int getLineNumber();
233    method public String getMethodName();
234    method public void getObjects(String, String, Collection<AhatInstance>);
235    method public void getObjects(Predicate<AhatInstance>, Consumer<AhatInstance>);
236    method public List<ObjectsInfo> getObjectsInfos();
237    method public com.android.ahat.heapdump.Site getParent();
238    method public String getSignature();
239    method public com.android.ahat.heapdump.Size getSize(com.android.ahat.heapdump.AhatHeap);
240    method public com.android.ahat.heapdump.Size getTotalSize();
241    method public boolean isPlaceHolder();
242  }
243
244  public static class Site.ObjectsInfo implements com.android.ahat.heapdump.Diffable<com.android.ahat.heapdump.Site.ObjectsInfo> {
245    method public com.android.ahat.heapdump.Site.ObjectsInfo getBaseline();
246    method public String getClassName();
247    method public boolean isPlaceHolder();
248    field public com.android.ahat.heapdump.AhatClassObj classObj;
249    field public com.android.ahat.heapdump.AhatHeap heap;
250    field public com.android.ahat.heapdump.Size numBytes;
251    field public long numInstances;
252  }
253
254  public class Size {
255    ctor public Size(long, long);
256    method public boolean equals(Object);
257    method public long getJavaSize();
258    method public long getRegisteredNativeSize();
259    method public long getSize();
260    method public int hashCode();
261    method public boolean isZero();
262    method public com.android.ahat.heapdump.Size plus(com.android.ahat.heapdump.Size);
263    method public com.android.ahat.heapdump.Size plusRegisteredNativeSize(long);
264    field public static com.android.ahat.heapdump.Size ZERO;
265  }
266
267  public class Sort {
268    ctor public Sort();
269    method public static Comparator<AhatInstance> defaultInstanceCompare(com.android.ahat.heapdump.AhatSnapshot);
270    method public static Comparator<Site> defaultSiteCompare(com.android.ahat.heapdump.AhatSnapshot);
271    method public static <T> Comparator<T> withPriority(Comparator<T>...);
272    field public static final Comparator<FieldValue> FIELD_VALUE_BY_NAME;
273    field public static final Comparator<FieldValue> FIELD_VALUE_BY_TYPE;
274    field public static final Comparator<AhatInstance> INSTANCE_BY_TOTAL_RETAINED_SIZE;
275    field public static final Comparator<Site.ObjectsInfo> OBJECTS_INFO_BY_CLASS_NAME;
276    field public static final Comparator<Site.ObjectsInfo> OBJECTS_INFO_BY_HEAP_NAME;
277    field public static final Comparator<Site.ObjectsInfo> OBJECTS_INFO_BY_SIZE;
278    field public static final Comparator<Site> SITE_BY_TOTAL_SIZE;
279    field public static final Comparator<Size> SIZE_BY_SIZE;
280  }
281
282  public enum Type {
283    method public String toString();
284    enum_constant public static final com.android.ahat.heapdump.Type BOOLEAN;
285    enum_constant public static final com.android.ahat.heapdump.Type BYTE;
286    enum_constant public static final com.android.ahat.heapdump.Type CHAR;
287    enum_constant public static final com.android.ahat.heapdump.Type DOUBLE;
288    enum_constant public static final com.android.ahat.heapdump.Type FLOAT;
289    enum_constant public static final com.android.ahat.heapdump.Type INT;
290    enum_constant public static final com.android.ahat.heapdump.Type LONG;
291    enum_constant public static final com.android.ahat.heapdump.Type OBJECT;
292    enum_constant public static final com.android.ahat.heapdump.Type SHORT;
293    field public final String name;
294  }
295
296  public abstract class Value {
297    ctor public Value();
298    method public com.android.ahat.heapdump.AhatInstance asAhatInstance();
299    method public Byte asByte();
300    method public Character asChar();
301    method public Integer asInteger();
302    method public Long asLong();
303    method public abstract boolean equals(Object);
304    method public static com.android.ahat.heapdump.Value getBaseline(com.android.ahat.heapdump.Value);
305    method public static com.android.ahat.heapdump.Type getType(com.android.ahat.heapdump.Value);
306    method public abstract int hashCode();
307    method public boolean isAhatInstance();
308    method public boolean isInteger();
309    method public boolean isLong();
310    method public static com.android.ahat.heapdump.Value pack(com.android.ahat.heapdump.AhatInstance);
311    method public static com.android.ahat.heapdump.Value pack(boolean);
312    method public static com.android.ahat.heapdump.Value pack(char);
313    method public static com.android.ahat.heapdump.Value pack(float);
314    method public static com.android.ahat.heapdump.Value pack(double);
315    method public static com.android.ahat.heapdump.Value pack(byte);
316    method public static com.android.ahat.heapdump.Value pack(short);
317    method public static com.android.ahat.heapdump.Value pack(int);
318    method public static com.android.ahat.heapdump.Value pack(long);
319    method public abstract String toString();
320  }
321
322}
323
324package com.android.ahat.progress {
325
326  public class NullProgress implements com.android.ahat.progress.Progress {
327    ctor public NullProgress();
328    method public void advance(long);
329    method public void done();
330    method public void start(String, long);
331    method public void update(long);
332  }
333
334  public interface Progress {
335    method public default void advance();
336    method public void advance(long);
337    method public void done();
338    method public void start(String, long);
339    method public void update(long);
340  }
341
342}
343
344package com.android.ahat.proguard {
345
346  public class ProguardMap {
347    ctor public ProguardMap();
348    method public String getClassName(String);
349    method public String getFieldName(String, String);
350    method public com.android.ahat.proguard.ProguardMap.Frame getFrame(String, String, String, String, int);
351    method public void readFromFile(File);
352    method public void readFromReader(Reader);
353  }
354
355  public static class ProguardMap.Frame {
356    field public final String filename;
357    field public final int line;
358    field public final String method;
359    field public final String signature;
360  }
361
362}
363
364