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 method public com.android.ahat.heapdump.AhatInstance asAhatInstance(); 298 method public Byte asByte(); 299 method public Character asChar(); 300 method public Integer asInteger(); 301 method public Long asLong(); 302 method public abstract boolean equals(Object); 303 method public static com.android.ahat.heapdump.Value getBaseline(com.android.ahat.heapdump.Value); 304 method public static com.android.ahat.heapdump.Type getType(com.android.ahat.heapdump.Value); 305 method public abstract int hashCode(); 306 method public boolean isAhatInstance(); 307 method public boolean isInteger(); 308 method public boolean isLong(); 309 method public static com.android.ahat.heapdump.Value pack(com.android.ahat.heapdump.AhatInstance); 310 method public static com.android.ahat.heapdump.Value pack(boolean); 311 method public static com.android.ahat.heapdump.Value pack(char); 312 method public static com.android.ahat.heapdump.Value pack(float); 313 method public static com.android.ahat.heapdump.Value pack(double); 314 method public static com.android.ahat.heapdump.Value pack(byte); 315 method public static com.android.ahat.heapdump.Value pack(short); 316 method public static com.android.ahat.heapdump.Value pack(int); 317 method public static com.android.ahat.heapdump.Value pack(long); 318 method public abstract String toString(); 319 } 320 321} 322 323package com.android.ahat.progress { 324 325 public class NullProgress implements com.android.ahat.progress.Progress { 326 ctor public NullProgress(); 327 method public void advance(long); 328 method public void done(); 329 method public void start(String, long); 330 method public void update(long); 331 } 332 333 public interface Progress { 334 method public default void advance(); 335 method public void advance(long); 336 method public void done(); 337 method public void start(String, long); 338 method public void update(long); 339 } 340 341} 342 343package com.android.ahat.proguard { 344 345 public class ProguardMap { 346 ctor public ProguardMap(); 347 method public String getClassName(String); 348 method public String getFieldName(String, String); 349 method public com.android.ahat.proguard.ProguardMap.Frame getFrame(String, String, String, String, int); 350 method public void readFromFile(File); 351 method public void readFromReader(Reader); 352 } 353 354 public static class ProguardMap.Frame { 355 field public final String filename; 356 field public final int line; 357 field public final String method; 358 field public final String signature; 359 } 360 361} 362 363