| Package | Description |
|---|---|
| proguard.classfile |
This package contains classes to represent the various elements of class files.
|
| proguard.classfile.attribute |
This package contains classes to represent the attributes inside class files.
|
| proguard.classfile.attribute.annotation |
This package contains classes to represent the annotation attributes inside
class files.
|
| proguard.classfile.attribute.annotation.visitor |
This package contains visitors for annotation attributes and their components.
|
| proguard.classfile.attribute.preverification | |
| proguard.classfile.attribute.visitor |
This package contains visitors for attributes and their components.
|
| proguard.classfile.constant.visitor |
This package contains visitors for class constants.
|
| proguard.classfile.editor |
This package contains visitors to edit byte code.
|
| proguard.classfile.instruction.visitor |
This package contains visitors for instructions.
|
| proguard.classfile.io |
This package contains classes for reading and writing class files.
|
| proguard.classfile.util |
This package contains utility classes for processing class files.
|
| proguard.classfile.visitor |
This package contains interfaces and classes for processing class files from
the
package using
the visitor pattern. |
| proguard.obfuscate |
This package contains classes to perform obfuscation of class files.
|
| proguard.optimize |
This package contains visitors that assist with various optimizations of byte
code.
|
| proguard.optimize.evaluation |
This package contains visitors that perform partial evaluation and subsequent
optimizations on byte code.
|
| proguard.optimize.info |
This package contains classes to collect additional information about classes
and class members, which can then be used for optimization.
|
| proguard.optimize.peephole |
This package contains visitors that perform various peephole optimizations.
|
| proguard.preverify | |
| proguard.shrink |
This package contains classes to perform shrinking of class files.
|
| Modifier and Type | Method and Description |
|---|---|
void |
LibraryClass.attributeAccept(String name,
AttributeVisitor attributeVisitor) |
void |
Clazz.attributeAccept(String name,
AttributeVisitor attributeVisitor)
Lets the given attribute info visitor visit the specified attribute.
|
void |
ProgramClass.attributeAccept(String name,
AttributeVisitor attributeVisitor) |
void |
LibraryClass.attributesAccept(AttributeVisitor attributeVisitor) |
void |
Clazz.attributesAccept(AttributeVisitor attributeVisitor)
Lets the given attribute info visitor visit all attributes of this class.
|
void |
ProgramClass.attributesAccept(AttributeVisitor attributeVisitor) |
void |
ProgramMethod.attributesAccept(ProgramClass programClass,
AttributeVisitor attributeVisitor) |
void |
ProgramField.attributesAccept(ProgramClass programClass,
AttributeVisitor attributeVisitor) |
abstract void |
ProgramMember.attributesAccept(ProgramClass programClass,
AttributeVisitor attributeVisitor)
Lets the given attribute info visitor visit all the attributes of
this member info.
|
| Modifier and Type | Method and Description |
|---|---|
void |
SourceDirAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
UnknownAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
EnclosingMethodAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
DeprecatedAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
SourceFileAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
BootstrapMethodsAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
SignatureAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
Attribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor)
Accepts the given visitor.
|
void |
SyntheticAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
InnerClassesAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
ConstantValueAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
UnknownAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
DeprecatedAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
SignatureAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
Attribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor)
Accepts the given visitor in the context of the given field.
|
void |
SyntheticAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
UnknownAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
DeprecatedAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
MethodParametersAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
SignatureAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
Attribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor)
Accepts the given visitor in the context of the given method.
|
void |
CodeAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
ExceptionsAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
SyntheticAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
UnknownAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
void |
LineNumberTableAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
void |
LocalVariableTableAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
void |
LocalVariableTypeTableAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
void |
Attribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor)
Accepts the given visitor in the context of the given code attribute.
|
void |
CodeAttribute.attributesAccept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor)
Applies the given attribute visitor to all attributes.
|
| Modifier and Type | Method and Description |
|---|---|
void |
RuntimeVisibleTypeAnnotationsAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleAnnotationsAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
RuntimeVisibleAnnotationsAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleTypeAnnotationsAttribute.accept(Clazz clazz,
AttributeVisitor attributeVisitor) |
void |
RuntimeVisibleTypeAnnotationsAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleAnnotationsAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
RuntimeVisibleAnnotationsAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleTypeAnnotationsAttribute.accept(Clazz clazz,
Field field,
AttributeVisitor attributeVisitor) |
void |
RuntimeVisibleParameterAnnotationsAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
RuntimeVisibleTypeAnnotationsAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleAnnotationsAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
RuntimeVisibleAnnotationsAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleTypeAnnotationsAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleParameterAnnotationsAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
AnnotationDefaultAttribute.accept(Clazz clazz,
Method method,
AttributeVisitor attributeVisitor) |
void |
RuntimeVisibleTypeAnnotationsAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
void |
RuntimeInvisibleTypeAnnotationsAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
| Modifier and Type | Class and Description |
|---|---|
class |
AllAnnotationVisitor
This AttributeVisitor lets a given AnnotationVisitor visit all Annotation
objects of the attributes it visits.
|
class |
AllElementValueVisitor
This AttributeVisitor and AnnotationVisitor lets a given ElementValueVisitor
visit all ElementValue objects of the attributes or annotations that it
visits.
|
| Modifier and Type | Method and Description |
|---|---|
void |
StackMapAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
void |
StackMapTableAttribute.accept(Clazz clazz,
Method method,
CodeAttribute codeAttribute,
AttributeVisitor attributeVisitor) |
| Modifier and Type | Class and Description |
|---|---|
class |
AllAttributeVisitor
This ClassVisitor, MemberVisitor, and AttributeVisitor lets a given
AttributeVisitor visit all Attribute objects of the program classes,
program class members, or code attributes, respectively, that it visits.
|
class |
AllBootstrapMethodInfoVisitor
This AttributeVisitor lets a given BootstrapMethodInfoVisitor visit all
bootstrap method objects of the BootstrapMethodsAttribute objects it visits.
|
class |
AllExceptionInfoVisitor
This AttributeVisitor lets a given ExceptionInfoVisitor visit all exceptions
objects of the CodeAttribute objects it visits.
|
class |
AllInnerClassesInfoVisitor
This AttributeVisitor lets a given InnerClassesInfoVisitor visit all
InnerClassessInfo objects of the InnerClassesAttribute objects it visits.
|
class |
AllLineNumberInfoVisitor
This AttributeVisitor lets a given LineNumberInfoVisitor visit all line numbers
of the LineNumberTableAttribute objects it visits.
|
class |
AttributeNameFilter
This AttributeVisitor delegates its visits another AttributeVisitor, but
only when the visited attribute has a name that that matches a given regular
expression.
|
class |
MultiAttributeVisitor
This AttributeVisitor delegates all visits to each AttributeVisitor
in a given list.
|
class |
NonEmptyAttributeFilter
This AttributeVisitor delegates its visits another AttributeVisitor, but
only when the visited attribute is not empty.
|
class |
RequiredAttributeFilter
This AttributeVisitor delegates its visits to one of two other
AttributeVisitor instances, depending on whether the visited attribute
is strictly required or not.
|
class |
StackSizeComputer
This AttributeVisitor computes the stack sizes at all instruction offsets
of the code attributes that it visits.
|
| Modifier and Type | Method and Description |
|---|---|
void |
MultiAttributeVisitor.addAttributeVisitor(AttributeVisitor attributeVisitor) |
| Constructor and Description |
|---|
AllAttributeVisitor(AttributeVisitor attributeVisitor)
Creates a new shallow AllAttributeVisitor.
|
AllAttributeVisitor(boolean deep,
AttributeVisitor attributeVisitor)
Creates a new optionally deep AllAttributeVisitor.
|
AttributeNameFilter(List regularExpression,
AttributeVisitor attributeVisitor)
Creates a new AttributeNameFilter.
|
AttributeNameFilter(String regularExpression,
AttributeVisitor attributeVisitor)
Creates a new AttributeNameFilter.
|
AttributeNameFilter(StringMatcher regularExpressionMatcher,
AttributeVisitor attributeVisitor)
Creates a new AttributeNameFilter.
|
MultiAttributeVisitor(AttributeVisitor[] attributeVisitors) |
NonEmptyAttributeFilter(AttributeVisitor attributeVisitor)
Creates a new NonEmptyAttributeFilter.
|
RequiredAttributeFilter(AttributeVisitor requiredAttributeVisitor)
Creates a new RequiredAttributeFilter for visiting required attributes.
|
RequiredAttributeFilter(AttributeVisitor requiredAttributeVisitor,
AttributeVisitor optionalAttributeVisitor)
Creates a new RequiredAttributeFilter for visiting required and
optional attributes.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BootstrapMethodHandleTraveler
This ConstantVisitor and BootstrapMethodInfoVisitor travels from any invoke
dynamic constants or bootstrap method info entries that it visits to their
bootstrap method handle constants, and applies a given constant visitor.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AccessFixer
This ClassVisitor fixes the access modifiers of all classes and class
members that are referenced by the classes that it visits.
|
class |
AttributeAdder
This AttributeVisitor adds all attributes that it visits to the given
target class, class member, or attribute.
|
class |
AttributeSorter
This ClassVisitor sorts the attributes of the classes that it visits.
|
class |
BridgeMethodFixer
This MemberVisitor fixes all inappropriate bridge access flags of the
program methods that it visits, checking whether the methods to which they
bridge have the same name.
|
class |
ClassReferenceFixer
This ClassVisitor fixes references of constant pool entries, fields,
methods, and attributes to classes whose names have changed.
|
class |
CodeAttributeComposer
This AttributeVisitor accumulates instructions and exceptions, and then
copies them into code attributes that it visits.
|
class |
CodeAttributeEditor
This AttributeVisitor accumulates specified changes to code, and then applies
these accumulated changes to the code attributes that it visits.
|
class |
CodeAttributeEditorResetter
This AttributeVisitor resets it CodeAttributeEditor whenever it visits a
code attribute.
|
class |
ConstantPoolRemapper
This ClassVisitor remaps all possible references to constant pool entries
of the classes that it visits, based on a given index map.
|
class |
ConstantPoolShrinker
This ClassVisitor removes all unused entries from the constant pool.
|
class |
InstructionWriter
This InstructionVisitor writes out the instructions that it visits,
collecting instructions that have to be widened.
|
class |
InterfaceDeleter
This ClassVisitor removes specified interfaces from the classes and class
signatures that it visits.
|
class |
InterfaceSorter
This ClassVisitor sorts the interfaces of the program classes that it visits.
|
class |
LineNumberInfoAdder
This AttributeVisitor adds the line numbers of all line number attributes
that it visits to the given target line number attribute.
|
class |
LineNumberTableAttributeTrimmer
This AttributeVisitor trims the line number table attributes that it visits.
|
class |
MemberReferenceFixer
This ClassVisitor fixes constant pool field and method references to fields
and methods whose names or descriptors have changed.
|
class |
MethodInvocationFixer
This AttributeVisitor fixes all inappropriate special/virtual/static/interface
invocations of the code attributes that it visits.
|
class |
NameAndTypeShrinker
This ClassVisitor removes NameAndType constant pool entries that are not
used.
|
class |
NamedAttributeDeleter
This ClassVisitor deletes attributes with a given name in the program
classes, fields, methods, or code attributes that it visits.
|
class |
StackSizeUpdater
This AttributeVisitor computes and updates the maximum stack size of the
code attributes that it visits.
|
class |
Utf8Shrinker
This ClassVisitor removes UTF-8 constant pool entries that are not used.
|
class |
VariableCleaner
This AttributeVisitor cleans up variable tables in all code attributes that
it visits.
|
class |
VariableEditor
This AttributeVisitor accumulates specified changes to local variables, and
then applies these accumulated changes to the code attributes that it visits.
|
class |
VariableRemapper
This AttributeVisitor remaps variable indexes in all attributes that it
visits, based on a given index map.
|
class |
VariableSizeUpdater
This AttributeVisitor computes and updates the maximum local variable frame
size of the code attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AllInstructionVisitor
This AttributeVisitor lets a given InstructionVisitor visit all Instruction
objects of the CodeAttribute objects it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ProgramClassReader
This ClassVisitor fills out the ProgramClass objects that it visits with data
from the given DataInput object.
|
class |
ProgramClassWriter
This ClassVisitor writes out the ProgramClass objects that it visits to the
given DataOutput object.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassReferenceInitializer
This ClassVisitor initializes the references of all classes that
it visits.
|
class |
DynamicClassReferenceInitializer
This InstructionVisitor initializes any constant
Class.forName or
.class references of all classes it visits. |
class |
StringSharer
This ClassVisitor shares strings in the class files that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ClassCleaner
This
ClassVisitor removes all visitor information of the
classes it visits. |
class |
ClassPrinter
This
ClassVisitor prints out the complete internal
structure of the classes it visits. |
class |
ReferencedClassVisitor
This ClassVisitor, MemberVisitor, ConstantVisitor, AttributeVisitor, etc.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AttributeShrinker
This ClassVisitor removes attributes that are not marked as being used or
required.
|
class |
AttributeUsageMarker
This AttributeVisitor marks all attributes that it visits.
|
class |
ClassObfuscator
This
ClassVisitor comes up with obfuscated names for the
classes it visits, and for their class members. |
class |
MappingPrinter
This ClassVisitor prints out the renamed classes and class members with
their old names and new names.
|
class |
ParameterNameMarker
This AttributeVisitor trims and marks all local variable (type) table
attributes that it visits.
|
class |
SourceFileRenamer
This ClassVisitor changes the name stored in the source file attributes
and source dir attributes of the classes that it visits, if the
attributes are present.
|
| Constructor and Description |
|---|
ParameterNameMarker(AttributeVisitor attributeUsageMarker)
Constructs a new ParameterNameMarker.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ChangedCodePrinter
This AttributeVisitor delegates its call to another AttributeVisitor, and
prints out the code if the other visitor has changed it.
|
class |
DuplicateInitializerFixer
This MemberVisitor adds an additional parameter to the duplicate
initialization methods that it visits.
|
class |
DuplicateInitializerInvocationFixer
This AttributeVisitor adds an additional integer parameter to the tweaked
initialization method invocations that it visits.
|
class |
MethodDescriptorShrinker
This MemberVisitor removes unused parameters in the descriptors of the
methods that it visits.
|
class |
MethodStaticizer
This MemberVisitor makes all methods that it visits static, if their 'this'
parameters are unused.
|
class |
ParameterShrinker
This AttributeVisitor removes unused parameters from the code of the methods
that it visits.
|
class |
TailRecursionSimplifier
This MemberVisitor simplifies tail recursion calls in all methods that it
visits.
|
| Constructor and Description |
|---|
ChangedCodePrinter(AttributeVisitor attributeVisitor) |
| Modifier and Type | Class and Description |
|---|---|
class |
EvaluationShrinker
This AttributeVisitor simplifies the code attributes that it visits, based
on partial evaluation.
|
class |
EvaluationSimplifier
This AttributeVisitor simplifies the code attributes that it visits, based
on partial evaluation.
|
class |
LivenessAnalyzer
This AttributeVisitor analyzes the liveness of the variables in the code
attributes that it visits, based on partial evaluation.
|
class |
PartialEvaluator
This AttributeVisitor performs partial evaluation on the code attributes
that it visits.
|
class |
SimpleEnumClassSimplifier
This ClassVisitor simplifies the classes that it visits to simple enums.
|
class |
SimpleEnumDescriptorSimplifier
This ClassVisitor simplifies the descriptors that contain simple enums in
the program classes that it visits.
|
class |
SimpleEnumUseChecker
This ClassVisitor marks enums that can't be simplified due to the way they
are used in the classes that it visits.
|
class |
SimpleEnumUseSimplifier
This AttributeVisitor simplifies the use of enums in the code attributes that
it visits.
|
class |
VariableOptimizer
This AttributeVisitor optimizes variable allocation based on their the liveness,
in the code attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
CatchExceptionMarker
This AttributeVisitor marks all methods that catch exceptions.
|
class |
FieldOptimizationInfo
This class stores some optimization information that can be attached to
a field.
|
class |
ParameterUsageMarker
This MemberVisitor counts the parameters and marks the used parameters
of the methods that it visits.
|
class |
SideEffectMethodMarker
This ClassPoolVisitor marks all methods that have side effects.
|
class |
VariableUsageMarker
This AttributeVisitor marks the local variables that are used in the code
attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BranchTargetFinder
This AttributeVisitor finds all instruction offsets, branch targets, and
exception targets in the CodeAttribute objects that it visits.
|
class |
GotoCommonCodeReplacer
This AttributeVisitor redirects unconditional branches so any common code
is shared, and the code preceding the branch can be removed, in the code
attributes that it visits.
|
class |
LineNumberLinearizer
This ClassVisitor disambiguates line numbers, in the classes that it
visits.
|
class |
MethodInliner
This AttributeVisitor inlines short methods or methods that are only invoked
once, in the code attributes that it visits.
|
class |
PeepholeOptimizer
This AttributeVisitor sets up and applies the peephole optimizations of its
instruction visitor.
|
class |
ReachableCodeMarker
This AttributeVisitor finds all instruction offsets, branch targets, and
exception targets in the CodeAttribute objects that it visits.
|
class |
RetargetedInnerClassAttributeRemover
This ClassVisitor removes InnerClasses and EnclosingMethod attributes in
classes that are retargeted or that refer to classes that are retargeted.
|
class |
TargetClassChanger
This ClassVisitor replaces references to classes and class members if the
classes have targets that are intended to replace them.
|
class |
UnreachableCodeRemover
This InstructionVisitor deletes blocks of code that can never be reached by
regular calls or branches.
|
class |
UnreachableExceptionRemover
This AttributeVisitor removes exception handlers that are unreachable in the
code attributes that it visits.
|
class |
VariableShrinker
This MemberVisitor removes unused local variables from the code of the methods
that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
CodePreverifier
This class can preverify methods in program class pools, according to a given
specification.
|
class |
CodeSubroutineInliner
This AttributeVisitor inlines local subroutines (jsr/ret) in the code
attributes that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AnnotationUsageMarker
This AttributeVisitor recursively marks all necessary annotation information
in the attributes that it visits.
|
class |
ClassShrinker
This ClassVisitor removes constant pool entries, class members, and other
class elements that are not marked as being used.
|
class |
InnerUsageMarker
This AttributeVisitor recursively marks all necessary inner class information
in the attributes that it visits.
|
class |
LocalVariableTypeUsageMarker
This AttributeVisitor recursively marks all information that points to used
classes, in the LocalVariableTable and LocalVariableTypeTable attributes that
it visits.
|
class |
ShortestUsageMarker
This ClassVisitor and MemberVisitor recursively marks all classes
and class elements that are being used.
|
class |
ShortestUsagePrinter
This ClassVisitor and MemberVisitor prints out the reasons why
classes and class members have been marked as being used.
|
class |
UsagePrinter
This ClassVisitor prints out the classes and class members that have been
marked as being used (or not used).
|
Copyright © 2015. All Rights Reserved.