| Package | Description |
|---|---|
| proguard |
This package contains the main ProGuard application.
|
| 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.visitor |
This package contains visitors for attributes and their components.
|
| proguard.classfile.constant | |
| proguard.classfile.editor |
This package contains visitors to edit byte code.
|
| 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.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.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.
|
| Modifier and Type | Method and Description |
|---|---|
static ClassPoolVisitor |
ClassSpecificationVisitorFactory.createClassPoolVisitor(ClassSpecification classSpecification,
ClassVisitor classVisitor,
MemberVisitor memberVisitor)
Constructs a ClassPoolVisitor to efficiently travel to the specified
classes and class members.
|
static ClassPoolVisitor |
ClassSpecificationVisitorFactory.createClassPoolVisitor(KeepClassSpecification keepClassSpecification,
ClassVisitor classVisitor,
MemberVisitor memberVisitor)
Constructs a ClassPoolVisitor to efficiently travel to the specified
classes and class members.
|
static ClassPoolVisitor |
ClassSpecificationVisitorFactory.createClassPoolVisitor(List classSpecifications,
ClassVisitor classVisitor,
MemberVisitor memberVisitor)
Constructs a ClassPoolVisitor to efficiently travel to the specified
classes and class members.
|
static ClassPoolVisitor |
ClassSpecificationVisitorFactory.createClassPoolVisitor(List keepClassSpecifications,
ClassVisitor classVisitor,
MemberVisitor memberVisitor,
boolean shrinking,
boolean optimizing,
boolean obfuscating)
Constructs a ClassPoolVisitor to efficiently travel to the specified
classes and class members.
|
| Modifier and Type | Method and Description |
|---|---|
void |
LibraryMember.accept(Clazz clazz,
MemberVisitor memberVisitor) |
void |
Member.accept(Clazz clazz,
MemberVisitor memberVisitor)
Accepts the given class visitor.
|
void |
ProgramMember.accept(Clazz clazz,
MemberVisitor memberVisitor) |
abstract void |
LibraryMember.accept(LibraryClass libraryClass,
MemberVisitor memberVisitor)
Accepts the given member info visitor.
|
void |
LibraryField.accept(LibraryClass libraryClass,
MemberVisitor memberVisitor) |
void |
LibraryMethod.accept(LibraryClass libraryClass,
MemberVisitor memberVisitor) |
void |
ProgramMethod.accept(ProgramClass programClass,
MemberVisitor memberVisitor) |
void |
ProgramField.accept(ProgramClass programClass,
MemberVisitor memberVisitor) |
abstract void |
ProgramMember.accept(ProgramClass programClass,
MemberVisitor memberVisitor)
Accepts the given member info visitor.
|
void |
LibraryClass.fieldAccept(String name,
String descriptor,
MemberVisitor memberVisitor) |
void |
Clazz.fieldAccept(String name,
String descriptor,
MemberVisitor memberVisitor)
Lets the given member info visitor visit the specified field.
|
void |
ProgramClass.fieldAccept(String name,
String descriptor,
MemberVisitor memberVisitor) |
void |
LibraryClass.fieldsAccept(MemberVisitor memberVisitor) |
void |
Clazz.fieldsAccept(MemberVisitor memberVisitor)
Lets the given member info visitor visit all fields of this class.
|
void |
ProgramClass.fieldsAccept(MemberVisitor memberVisitor) |
void |
LibraryClass.methodAccept(String name,
String descriptor,
MemberVisitor memberVisitor) |
void |
Clazz.methodAccept(String name,
String descriptor,
MemberVisitor memberVisitor)
Lets the given member info visitor visit the specified method.
|
void |
ProgramClass.methodAccept(String name,
String descriptor,
MemberVisitor memberVisitor) |
void |
LibraryClass.methodsAccept(MemberVisitor memberVisitor) |
void |
Clazz.methodsAccept(MemberVisitor memberVisitor)
Lets the given member info visitor visit all methods of this class.
|
void |
ProgramClass.methodsAccept(MemberVisitor memberVisitor) |
| Modifier and Type | Method and Description |
|---|---|
void |
EnclosingMethodAttribute.referencedMethodAccept(MemberVisitor memberVisitor)
Lets the referenced class member accept the given visitor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
EnumConstantElementValue.referencedFieldAccept(MemberVisitor memberVisitor)
Applies the given visitor to the referenced field.
|
void |
ElementValue.referencedMethodAccept(MemberVisitor memberVisitor)
Applies the given visitor to the referenced method.
|
| Constructor and Description |
|---|
AnnotationToMemberVisitor(MemberVisitor 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.
|
| Modifier and Type | Method and Description |
|---|---|
void |
RefConstant.referencedMemberAccept(MemberVisitor memberVisitor)
Lets the referenced class member accept the given visitor.
|
void |
StringConstant.referencedMemberAccept(MemberVisitor memberVisitor)
Lets the referenced member accept the given 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 |
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 |
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 |
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 |
NamedAttributeDeleter
This ClassVisitor deletes attributes with a given name in the program
classes, fields, methods, or code attributes that it visits.
|
class |
Utf8Shrinker
This ClassVisitor removes UTF-8 constant pool entries that are not used.
|
| Constructor and Description |
|---|
MemberAdder(ProgramClass targetClass,
MemberVisitor extraMemberVisitor)
Creates a new MemberAdder that will copy methods into the given target
class.
|
| 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 |
AllParameterVisitor
This MemberVisitor lets a given parameter visitor visit all the parameters
of the methods that it visits.
|
class |
ClassReferenceInitializer
This ClassVisitor initializes the references of all classes that
it visits.
|
class |
DynamicMemberReferenceInitializer
This InstructionVisitor initializes any constant
Class.get[Declared]{Field,Method} references of all instructions
it visits. |
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.
|
| 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 |
InitializerMethodFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only to static initializers and instance
initializers. |
class |
LibraryMemberFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when visiting members of library
classes. |
class |
MemberAccessFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when the visited member has the proper
access flags. |
class |
MemberClassAccessFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when the visited member is accessible
from the given referencing class. |
class |
MemberCollector
This MemberVisitor collects the concatenated name/descriptor strings of
class members that have been visited.
|
class |
MemberCounter
This MemberVisitor counts the number of class members that have been visited.
|
class |
MemberDescriptorFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when the visited member
has a descriptor that matches a given regular expression. |
class |
MemberDescriptorReferencedClassVisitor
This MemberVisitor lets a given ClassVisitor visit all the classes
referenced by the descriptors of the class members that it visits.
|
class |
MemberToClassVisitor
This MemberVisitor delegates all visits to a given ClassVisitor.
|
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 |
MultiMemberVisitor
This MemberVisitor delegates all visits to each MemberVisitor
in a given list.
|
class |
ProgramMemberFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when visiting members of program
classes. |
class |
ReferencedClassVisitor
This ClassVisitor, MemberVisitor, ConstantVisitor, AttributeVisitor, etc.
|
class |
SimilarMemberVisitor
This
MemberVisitor lets a given MemberVisitor
visit all members that have the same name and type as the visited methods
in the class hierarchy of a given target class. |
class |
SimpleClassPrinter
This
ClassVisitor and MemberVisitor
prints out the class names of the classes it visits, and the full class
member descriptions of the class members it visits. |
class |
VariableMemberVisitor
This MemberVisitor delegates all method calls to a MemberVisitor
that can be changed at any time.
|
| Modifier and Type | Method and Description |
|---|---|
MemberVisitor |
VariableMemberVisitor.getMemberVisitor() |
| Modifier and Type | Method and Description |
|---|---|
void |
MultiMemberVisitor.addMemberVisitor(MemberVisitor memberVisitor) |
void |
VariableMemberVisitor.setMemberVisitor(MemberVisitor memberVisitor) |
| Constructor and Description |
|---|
AllFieldVisitor(MemberVisitor memberVisitor) |
AllMemberVisitor(MemberVisitor memberVisitor) |
AllMethodVisitor(MemberVisitor memberVisitor) |
InitializerMethodFilter(MemberVisitor memberVisitor)
Creates a new InitializerMethodFilter.
|
LibraryMemberFilter(MemberVisitor memberVisitor)
Creates a new ProgramMemberFilter.
|
MemberAccessFilter(int requiredSetAccessFlags,
int requiredUnsetAccessFlags,
MemberVisitor memberVisitor)
Creates a new MemberAccessFilter.
|
MemberClassAccessFilter(Clazz referencingClass,
MemberVisitor memberVisitor)
Creates a new MemberAccessFilter.
|
MemberDescriptorFilter(StringMatcher regularExpressionMatcher,
MemberVisitor memberVisitor)
Creates a new MemberDescriptorFilter.
|
MemberDescriptorFilter(String regularExpression,
MemberVisitor memberVisitor)
Creates a new MemberDescriptorFilter.
|
MemberNameFilter(StringMatcher regularExpressionMatcher,
MemberVisitor memberVisitor)
Creates a new MemberNameFilter.
|
MemberNameFilter(String regularExpression,
MemberVisitor memberVisitor)
Creates a new MemberNameFilter.
|
MethodImplementationFilter(MemberVisitor memberVisitor)
Creates a new MethodImplementationFilter.
|
MethodImplementationTraveler(boolean visitThisMethod,
boolean visitSuperMethods,
boolean visitInterfaceMethods,
boolean visitOverridingMethods,
MemberVisitor memberVisitor)
Creates a new MethodImplementationTraveler.
|
MultiMemberVisitor(MemberVisitor[] memberVisitors) |
NamedFieldVisitor(String name,
String descriptor,
MemberVisitor memberVisitor) |
NamedMethodVisitor(String name,
String descriptor,
MemberVisitor memberVisitor) |
ProgramMemberFilter(MemberVisitor memberVisitor)
Creates a new ProgramMemberFilter.
|
ReferencedMemberVisitor(MemberVisitor memberVisitor) |
SimilarMemberVisitor(Clazz targetClass,
boolean visitThisMember,
boolean visitSuperMembers,
boolean visitInterfaceMembers,
boolean visitOverridingMembers,
MemberVisitor memberVisitor)
Creates a new SimilarMemberVisitor.
|
VariableMemberVisitor(MemberVisitor memberVisitor) |
| 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.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AttributeShrinker
This ClassVisitor removes attributes that are not marked as being used or
required.
|
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 |
MappingPrinter
This ClassVisitor prints out the renamed classes and class members with
their old names and new names.
|
class |
MemberNameCleaner
This
MemberVisitor clears the new names of the class members
that it visits. |
class |
MemberNameCollector
This MemberVisitor collects all new (obfuscation) names of the members
that it visits.
|
class |
MemberNameConflictFixer
This MemberInfoVisitor solves obfuscation naming conflicts in all class
members that it visits.
|
class |
MemberNameFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when the visited member has a new name. |
class |
MemberObfuscator
This MemberVisitor obfuscates all class members that it visits.
|
class |
MemberSpecialNameFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when the visited member has a
special new name. |
| Constructor and Description |
|---|
MemberNameFilter(MemberVisitor memberVisitor)
Creates a new MemberNameFilter.
|
MemberSpecialNameFilter(MemberVisitor memberVisitor)
Creates a new MemberSpecialNameFilter.
|
| 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 |
KeepMarker
This
ClassVisitor and MemberVisitor
marks classes and class members it visits. |
class |
KeptMemberFilter
This MemberVisitor delegates all its method calls to another MemberVisitor,
but only for Member objects that are marked as kept.
|
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 |
OptimizationInfoMemberFilter
This
MemberVisitor delegates its visits to another given
MemberVisitor, but only when the visited member has optimization
info. |
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. |
| Constructor and Description |
|---|
ConstantMemberFilter(MemberVisitor constantMemberVisitor)
Creates a new ConstantMemberFilter.
|
ConstantParameterFilter(MemberVisitor constantParameterVisitor)
Creates a new ConstantParameterFilter.
|
DuplicateInitializerFixer(MemberVisitor extraFixedInitializerVisitor)
Creates a new DuplicateInitializerFixer with an extra visitor.
|
KeptMemberFilter(MemberVisitor memberVisitor)
Creates a new KeptMemberFilter.
|
MemberDescriptorSpecializer(MemberVisitor extraParameterMemberVisitor)
Creates a new MethodDescriptorShrinker with an extra visitor.
|
MethodDescriptorShrinker(MemberVisitor extraMemberVisitor)
Creates a new MethodDescriptorShrinker with an extra visitor.
|
MethodStaticizer(MemberVisitor extraStaticMemberVisitor)
Creates a new MethodStaticizer with an extra visitor.
|
OptimizationInfoMemberFilter(MemberVisitor memberVisitor)
Creates a new OptimizationInfoMemberFilter.
|
ParameterShrinker(MemberVisitor extraVariableMemberVisitor)
Creates a new ParameterShrinker with an extra visitor.
|
WriteOnlyFieldFilter(MemberVisitor writeOnlyFieldVisitor)
Creates a new WriteOnlyFieldFilter.
|
| Modifier and Type | Class and Description |
|---|---|
class |
LoadingInvocationUnit
This InvocationUnit loads parameter values and return values that were
previously stored with the methods that are invoked.
|
class |
SimpleEnumArrayPropagator
This ClassVisitor propagates the value of the $VALUES field to the values()
method in the simple enum classes that it visits.
|
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 |
StoringInvocationUnit
This InvocationUnit stores parameter values and return values with the
methods that are invoked.
|
| Constructor and Description |
|---|
VariableOptimizer(boolean reuseThis,
MemberVisitor extraVariableMemberVisitor)
Creates a new VariableOptimizer with an extra visitor.
|
| 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 |
DynamicInvocationMarker
This InstructionVisitor marks whether the methods whose instructions it
visits contain the invokedynamic instruction.
|
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 |
SideEffectMethodFilter
This MemberVisitor delegates all its method calls to another MemberVisitor,
but only for Method objects that are marked as having side effects.
|
class |
SideEffectMethodMarker
This ClassPoolVisitor marks all methods that have side effects.
|
| Constructor and Description |
|---|
SideEffectMethodFilter(MemberVisitor memberVisitor)
Creates a new SideEffectMethodFilter.
|
| Modifier and Type | Class and Description |
|---|---|
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 |
TargetClassChanger
This ClassVisitor replaces references to classes and class members if the
classes have targets that are intended to replace them.
|
| Constructor and Description |
|---|
MemberPrivatizer(MemberVisitor extraMemberVisitor)
Creates a new MemberPrivatizer.
|
MethodFinalizer(MemberVisitor extraMemberVisitor)
Creates a new ClassFinalizer.
|
VariableShrinker(MemberVisitor extraVariableMemberVisitor)
Creates a new VariableShrinker with an extra visitor.
|
| 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 |
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).
|
class |
UsedMemberFilter
This MemberVisitor delegates all its method calls to another MemberVisitor,
but only for Member objects that are marked as used.
|
| Constructor and Description |
|---|
UsedMemberFilter(proguard.shrink.UsageMarker usageMarker,
MemberVisitor memberVisitor)
Creates a new UsedMemberFilter.
|
Copyright © 2015. All Rights Reserved.