| Package | Description |
|---|---|
| proguard |
This package contains the main ProGuard application.
|
| proguard.classfile.attribute.annotation.visitor |
This package contains visitors for annotation attributes and their components.
|
| 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.evaluation | |
| proguard.io |
This package contains classes to read and write files, optionally wrapped in
jars, wars, ears, zips, directories,...
|
| 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 | Class and Description |
|---|---|
class |
ClassMemberChecker
This class checks if the user has specified non-existent class members.
|
class |
DescriptorKeepChecker
This class checks whether classes referenced by class members that are
marked to be kept are marked to be kept too.
|
class |
FullyQualifiedClassNameChecker
This class checks if the user has forgotten to fully qualify any classes
in the configuration.
|
class |
GetAnnotationChecker
This constant visitor checks whether visited method references try to
access annotations.
|
class |
GetEnclosingClassChecker
This constant visitor checks whether visited method references try to
access enclosing classes.
|
class |
GetEnclosingMethodChecker
This constant visitor checks whether visited method references try to
access enclosing methods.
|
class |
GetSignatureChecker
This constant visitor checks whether visited method references try to
access signatures.
|
| 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.
|
class |
AnnotatedClassVisitor
This AnnotationVisitor delegates all visits to a given ClassVisitor.
|
class |
AnnotationToMemberVisitor
This AnnotationVisitor delegates all visits to a given MemberVisitor.
|
| 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 |
StackSizeComputer
This AttributeVisitor computes the stack sizes at all instruction offsets
of the code attributes that it visits.
|
| 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.
|
class |
ConstantTagFilter
This
ConstantVisitor delegates its visits to one or more
specified types of constants. |
class |
ExceptClassConstantFilter
This
ConstantVisitor delegates its visits to class constants
to another given ConstantVisitor, except for one given class. |
class |
MethodrefTraveler
This ConstantVisitor travels from any method handle constants that it visits
to their methodref 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 |
AnnotationAdder
This AnnotationVisitor adds all annotations that it visits to the given
target annotation element value, target annotation attribute, or target
parameter annotation attribute.
|
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 |
BootstrapMethodRemapper
This ConstantVisitor remaps all possible indices of bootstrap methods
of the constants that it visits, based on a given index map.
|
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 |
ClassElementSorter
This ClassVisitor sorts the various elements of the classes that it visits:
interfaces, constants, fields, methods, and attributes.
|
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 |
ConstantPoolSorter
This ClassVisitor sorts the constant pool entries of the program classes
that it visits.
|
class |
ExceptionAdder
This ConstantVisitor adds all class constants that it visits to the given
target exceptions attribute.
|
class |
InnerClassesAccessFixer
This InnerClassesInfoVisitor fixes the inner class access flags of the
inner classes information that it visits.
|
class |
InstructionAdder
This InstructionVisitor adds all instructions that it visits to the given
target code attribute.
|
class |
InstructionWriter
This InstructionVisitor writes out the instructions that it visits,
collecting instructions that have to be widened.
|
class |
InterfaceAdder
This ConstantVisitor adds all interfaces that it visits to the given
target class.
|
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 |
MemberAdder
This MemberVisitor copies all class members that it visits to the given
target class.
|
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.
|
class |
InstructionConstantVisitor
This AttributeVisitor lets a given ConstantVisitor visit all constants
of the instructions it visits.
|
class |
InstructionCounter
This InstructionVisitor counts the number of instructions that has been visited.
|
| Modifier and Type | Class and Description |
|---|---|
class |
LibraryClassReader
This ClassVisitor fills out the LibraryClass objects that it visits with data
from the given DataInput object.
|
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 |
ClassSuperHierarchyInitializer
This ClassVisitor initializes the superclass hierarchy of all classes that
it visits.
|
class |
DynamicClassReferenceInitializer
This InstructionVisitor initializes any constant
Class.forName or
.class references of all classes it visits. |
class |
DynamicMemberReferenceInitializer
This InstructionVisitor initializes any constant
Class.get[Declared]{Field,Method} references of all instructions
it visits. |
class |
EnumFieldReferenceInitializer
This ElementValueVisitor initializes the field references of the
EnumConstantElementValue instances that it visits.
|
class |
InstructionSequenceMatcher
This InstructionVisitor checks whether a given pattern instruction sequence
occurs in the instructions that are visited.
|
class |
MemberFinder
This class provides methods to find class members in a given class or in its
hierarchy.
|
class |
MethodLinker
This ClassVisitor links all corresponding non-private, non-static,
non-initializer methods in the class hierarchies of all visited classes.
|
class |
StringReferenceInitializer
This ConstantVisitor initializes any class references of all string constants
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 |
ClassCollector
This
ClassVisitor collects the classes that it visits in the
given collection. |
class |
ClassPoolFiller
This ClassVisitor collects all the classes it visits in a given
class pool.
|
class |
ClassPrinter
This
ClassVisitor prints out the complete internal
structure of the classes it visits. |
class |
DotClassClassVisitor
This InstructionVisitor lets a given
ClassVisitor visit all
classes involved in any .class constructs that it visits. |
class |
DynamicReturnedClassVisitor
This ConstantVisitor lets a given ClassVisitor visit all the referenced
classes that are returned by the invoke dynamic constants that it visits.
|
class |
ImplementedClassConstantFilter
This
ConstantVisitor delegates its visits to class constants
to another given ConstantVisitor, except for classes that
extend or implement a given class. |
class |
ImplementingClassConstantFilter
This
ConstantVisitor delegates its visits to class constants
to another given ConstantVisitor, except for classes that
are extended or implemented by a given class. |
class |
MemberCollector
This MemberVisitor collects the concatenated name/descriptor strings of
class members that have been visited.
|
class |
MemberDescriptorReferencedClassVisitor
This MemberVisitor lets a given ClassVisitor visit all the classes
referenced by the descriptors of the class members that it visits.
|
class |
MethodImplementationFilter
This
MemberVisitor delegates its visits to methods to
another given MemberVisitor, but only when the visited
method may have implementations. |
class |
MethodImplementationTraveler
This
MemberVisitor lets a given MemberVisitor
travel to all concrete and abstract implementations of the visited methods
in their class hierarchies. |
class |
ReferencedClassVisitor
This ClassVisitor, MemberVisitor, ConstantVisitor, AttributeVisitor, etc.
|
class |
ReferencedMemberVisitor
This ConstantVisitor and ElementValueVisitor lets a given MemberVisitor
visit all the referenced class members of the elements that it visits.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BasicInvocationUnit
This InvocationUnit sets up the variables for entering a method,
and it updates the stack for the invocation of a class member,
using simple values.
|
class |
ClassConstantValueFactory
This class creates java.lang.Class ReferenceValue instances that correspond
to specified constant pool entries.
|
class |
ConstantValueFactory
This class creates Value instance that correspond to specified constant pool
entries.
|
| Modifier and Type | Class and Description |
|---|---|
class |
DataEntryClassWriter
This ClassVisitor writes out the ProgramClass objects that it visits to the
given DataEntry, modified to have the correct name.
|
| 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 |
ClassRenamer
This
ClassVisitor renames the class names and class member
names of the classes it visits, using names previously determined by the
obfuscator. |
class |
MapCleaner
This ClassVisitor clears a given map whenever it visits a class.
|
class |
MappingPrinter
This ClassVisitor prints out the renamed classes and class members with
their old names and new names.
|
class |
MemberNameCollector
This MemberVisitor collects all new (obfuscation) names of the members
that it visits.
|
class |
MemberObfuscator
This MemberVisitor obfuscates all class members that it visits.
|
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.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BootstrapMethodArgumentShrinker
This BootstrapMethodInfoVisitor removes unused constant arguments from
bootstrap method entries that it visits.
|
class |
ConstantMemberFilter
This
MemberVisitor delegates its visits to program class members
to another given MemberVisitor, but only when the visited
class member has been marked as a constant. |
class |
ConstantParameterFilter
This
MemberVisitor delegates its visits to program methods
to another given MemberVisitor, for each method parameter
that has been marked as constant. |
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 |
MemberDescriptorSpecializer
This MemberVisitor specializes parameters in the descriptors of the
methods 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.
|
class |
WriteOnlyFieldFilter
This
MemberVisitor delegates its visits to program fields to
other given MemberVisitor instances, but only when the visited
field has been marked as write-only. |
| 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 |
LoadingInvocationUnit
This InvocationUnit loads parameter values and return values that were
previously stored with the methods that are invoked.
|
class |
PartialEvaluator
This AttributeVisitor performs partial evaluation on the code attributes
that it visits.
|
class |
SimpleEnumArrayPropagator
This ClassVisitor propagates the value of the $VALUES field to the values()
method in the simple enum classes 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 |
StoringInvocationUnit
This InvocationUnit stores parameter values and return values with the
methods that are invoked.
|
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 |
AccessMethodMarker
This InstructionVisitor marks the types of class accesses and class member
accesses of the methods whose instructions it visits.
|
class |
BackwardBranchMarker
This InstructionVisitor marks all methods that branch backward in any of the
instructions that it visits.
|
class |
CatchExceptionMarker
This AttributeVisitor marks all methods that catch exceptions.
|
class |
ClassOptimizationInfoSetter
This ClassVisitor attaches a ClassOptimizationInfo instance to every class
that is not being kept that it visits.
|
class |
DotClassMarker
This InstructionVisitor marks all classes that are used in a .class
construct by any of the instructions that it visits.
|
class |
DynamicInvocationMarker
This InstructionVisitor marks whether the methods whose instructions it
visits contain the invokedynamic instruction.
|
class |
ExceptionInstructionChecker
This class can tell whether an instruction might throw exceptions.
|
class |
FieldOptimizationInfo
This class stores some optimization information that can be attached to
a field.
|
class |
InstanceofClassMarker
This InstructionVisitor marks all classes that are used in an 'instanceof'
test by any of the instructions that it visits.
|
class |
InstantiationClassMarker
This InstructionVisitor marks all classes that are instantiated by any of
the instructions that it visits.
|
class |
MemberOptimizationInfoSetter
This MemberVisitor attaches a FieldOptimizationInfo instance to every field
and a MethodOptimizationInfo instance to every method that is not being kept
that it visits.
|
class |
MethodInvocationMarker
This InstructionVisitor counts the number of times methods are invoked from
the instructions that are visited.
|
class |
NonPrivateMemberMarker
This ClassVisitor marks all class members that can not be made private in the
classes that it visits, and in the classes to which they refer.
|
class |
NoSideEffectMethodMarker
This MemberVisitor marks all methods that it visits as not having any side
effects.
|
class |
PackageVisibleMemberContainingClassMarker
This ClassVisitor marks all classes that contain package visible members.
|
class |
PackageVisibleMemberInvokingClassMarker
This ConstantVisitor marks all classes that refer to package visible classes
or class members.
|
class |
ParameterUsageMarker
This MemberVisitor counts the parameters and marks the used parameters
of the methods that it visits.
|
class |
ReadWriteFieldMarker
This InstructionVisitor marks all fields that are write-only.
|
class |
SideEffectInstructionChecker
This class can tell whether an instruction has any side effects outside of
its method.
|
class |
SideEffectMethodMarker
This ClassPoolVisitor marks all methods that have side effects.
|
class |
StaticInitializerContainingClassMarker
This ClassVisitor marks all classes that contain static initializers.
|
class |
SuperInvocationMarker
This InstructionVisitor marks all methods that invoke super methods (other
than initializers) from the instructions that it visits.
|
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 |
ClassFinalizer
This
ClassVisitor makes the program classes that it visits
final, if possible. |
class |
ClassMerger
This ClassVisitor inlines the classes that it visits in a given target class,
whenever possible.
|
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 |
GotoGotoReplacer
This InstructionVisitor simplifies unconditional branches to other
unconditional branches.
|
class |
GotoReturnReplacer
This InstructionVisitor replaces unconditional branches to return instructions
by these same return instructions.
|
class |
HorizontalClassMerger
This ClassVisitor inlines siblings in the program classes that it visits,
whenever possible.
|
class |
InstructionSequenceReplacer
This InstructionVisitor replaces a given pattern instruction sequence by
another given replacement instruction sequence.
|
class |
LineNumberLinearizer
This ClassVisitor disambiguates line numbers, in the classes that it
visits.
|
class |
MemberPrivatizer
This MemberVisitor makes all class members that it visits private, unless
they have been marked by a NonPrivateMemberMarker.
|
class |
MethodFinalizer
This
MemberVisitor makes the program methods that it visits
final, if possible. |
class |
MethodInliner
This AttributeVisitor inlines short methods or methods that are only invoked
once, in the code attributes that it visits.
|
class |
NopRemover
This InstructionVisitor removes all nop instructions that it encounters.
|
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.
|
class |
VerticalClassMerger
This ClassVisitor inlines the direct subclasses into the program classes
that it visits, whenever possible.
|
| 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 |
InterfaceUsageMarker
This ClassVisitor recursively marks all interface
classes that are being used in the visited class.
|
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.