public class DexPool extends DexWriter<java.lang.CharSequence,StringReference,java.lang.CharSequence,TypeReference,MethodProtoReference,FieldReference,MethodReference,org.jf.dexlib2.writer.pool.PoolClassDef,CallSiteReference,MethodHandleReference,Annotation,java.util.Set<? extends Annotation>,TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,Field,org.jf.dexlib2.writer.pool.PoolMethod,ArrayEncodedValue,EncodedValue,AnnotationElement,StringPool,TypePool,ProtoPool,FieldPool,MethodPool,ClassPool,CallSitePool,MethodHandlePool,TypeListPool,AnnotationPool,AnnotationSetPool,EncodedArrayPool>
| Modifier and Type | Class and Description |
|---|---|
protected class |
DexPool.DexPoolSectionProvider |
DexWriter.InternalEncodedValueWriter, DexWriter.SectionProviderannotationDirectorySectionOffset, annotationSection, annotationSectionOffset, annotationSetRefSectionOffset, annotationSetSection, annotationSetSectionOffset, callSiteSection, callSiteSectionOffset, classDataSectionOffset, classIndexSectionOffset, classSection, codeSectionOffset, debugSectionOffset, encodedArraySection, encodedArraySectionOffset, fieldSection, fieldSectionOffset, mapSectionOffset, MAX_POOL_SIZE, methodHandleSection, methodHandleSectionOffset, methodSection, methodSectionOffset, NO_INDEX, NO_OFFSET, numAnnotationDirectoryItems, numAnnotationSetRefItems, numClassDataItems, numCodeItemItems, numDebugInfoItems, opcodes, protoSection, protoSectionOffset, stringDataSectionOffset, stringIndexSectionOffset, stringSection, typeListSection, typeListSectionOffset, typeSection, typeSectionOffset| Modifier and Type | Method and Description |
|---|---|
protected DexWriter.SectionProvider |
getSectionProvider() |
void |
internClass(ClassDef classDef)
Interns a class into this DexPool
|
void |
mark()
Creates a marked state that can be returned to by calling reset()
This is useful to rollback the last added class if it causes a method/field/type overflow
|
void |
reset()
Resets to the last marked state
This is useful to rollback the last added class if it causes a method/field/type overflow
|
protected void |
writeEncodedValue(DexWriter.InternalEncodedValueWriter writer,
EncodedValue encodedValue) |
static void |
writeTo(DexDataStore dataStore,
DexFile input) |
static void |
writeTo(java.lang.String path,
DexFile input) |
getFieldReferences, getMethodReferences, getTypeReferences, hasOverflowed, hasOverflowed, writeTo, writeTopublic DexPool(Opcodes opcodes)
@Nonnull protected DexWriter.SectionProvider getSectionProvider()
getSectionProvider in class DexWriter<java.lang.CharSequence,StringReference,java.lang.CharSequence,TypeReference,MethodProtoReference,FieldReference,MethodReference,org.jf.dexlib2.writer.pool.PoolClassDef,CallSiteReference,MethodHandleReference,Annotation,java.util.Set<? extends Annotation>,TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,Field,org.jf.dexlib2.writer.pool.PoolMethod,ArrayEncodedValue,EncodedValue,AnnotationElement,StringPool,TypePool,ProtoPool,FieldPool,MethodPool,ClassPool,CallSitePool,MethodHandlePool,TypeListPool,AnnotationPool,AnnotationSetPool,EncodedArrayPool>public static void writeTo(@Nonnull
DexDataStore dataStore,
@Nonnull
DexFile input)
throws java.io.IOException
java.io.IOExceptionpublic static void writeTo(@Nonnull
java.lang.String path,
@Nonnull
DexFile input)
throws java.io.IOException
java.io.IOExceptionpublic void internClass(ClassDef classDef)
classDef - The class to internpublic void mark()
public void reset()
protected void writeEncodedValue(@Nonnull
DexWriter.InternalEncodedValueWriter writer,
@Nonnull
EncodedValue encodedValue)
throws java.io.IOException
writeEncodedValue in class DexWriter<java.lang.CharSequence,StringReference,java.lang.CharSequence,TypeReference,MethodProtoReference,FieldReference,MethodReference,org.jf.dexlib2.writer.pool.PoolClassDef,CallSiteReference,MethodHandleReference,Annotation,java.util.Set<? extends Annotation>,TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,Field,org.jf.dexlib2.writer.pool.PoolMethod,ArrayEncodedValue,EncodedValue,AnnotationElement,StringPool,TypePool,ProtoPool,FieldPool,MethodPool,ClassPool,CallSitePool,MethodHandlePool,TypeListPool,AnnotationPool,AnnotationSetPool,EncodedArrayPool>java.io.IOException