类 ClassObfuscator

  • 所有已实现的接口:
    proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.attribute.visitor.InnerClassesInfoVisitor, proguard.classfile.constant.visitor.ConstantVisitor, proguard.classfile.visitor.ClassVisitor

    public class ClassObfuscator
    extends java.lang.Object
    implements proguard.classfile.visitor.ClassVisitor, proguard.classfile.attribute.visitor.AttributeVisitor, proguard.classfile.attribute.visitor.InnerClassesInfoVisitor, proguard.classfile.constant.visitor.ConstantVisitor
    This ClassVisitor comes up with obfuscated names for the classes it visits, and for their class members. The actual renaming is done afterward.
    另请参阅:
    ClassRenamer
    • 构造器概要

      构造器 
      构造器 说明
      ClassObfuscator​(proguard.classfile.ClassPool programClassPool, proguard.classfile.ClassPool libraryClassPool, DictionaryNameFactory classNameFactory, DictionaryNameFactory packageNameFactory, boolean useMixedCaseClassNames, java.util.List keepPackageNames, java.lang.String flattenPackageHierarchy, java.lang.String repackageClasses, boolean allowAccessModification, boolean adaptKotlin)
      Creates a new ClassObfuscator.
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      static boolean hasOriginalClassName​(proguard.classfile.Clazz clazz)
      Returns whether the class name of the given class has changed.
      static java.lang.String newClassName​(proguard.classfile.Clazz clazz)
      Retrieves the new name of the given class.
      static void setNewClassName​(proguard.classfile.Clazz clazz, java.lang.String name)
      Assigns a new name to the given class.
      void visitAnyAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.Attribute attribute)  
      void visitAnyClass​(proguard.classfile.Clazz clazz)  
      void visitClassConstant​(proguard.classfile.Clazz clazz, proguard.classfile.constant.ClassConstant classConstant)  
      void visitEnclosingMethodAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.EnclosingMethodAttribute enclosingMethodAttribute)  
      void visitInnerClassesAttribute​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.InnerClassesAttribute innerClassesAttribute)  
      void visitInnerClassesInfo​(proguard.classfile.Clazz clazz, proguard.classfile.attribute.InnerClassesInfo innerClassesInfo)  
      void visitLibraryClass​(proguard.classfile.LibraryClass libraryClass)  
      void visitProgramClass​(proguard.classfile.ProgramClass programClass)  
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • 从接口继承的方法 proguard.classfile.attribute.visitor.AttributeVisitor

        visitAnnotationDefaultAttribute, visitAnyAnnotationsAttribute, visitAnyParameterAnnotationsAttribute, visitAnyTypeAnnotationsAttribute, visitBootstrapMethodsAttribute, visitCodeAttribute, visitConstantValueAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitDeprecatedAttribute, visitExceptionsAttribute, visitLineNumberTableAttribute, visitLocalVariableTableAttribute, visitLocalVariableTypeTableAttribute, visitMethodParametersAttribute, visitModuleAttribute, visitModuleMainClassAttribute, visitModulePackagesAttribute, visitNestHostAttribute, visitNestMembersAttribute, visitPermittedSubclassesAttribute, visitRecordAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeInvisibleParameterAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeInvisibleTypeAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitRuntimeVisibleParameterAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitRuntimeVisibleTypeAnnotationsAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSignatureAttribute, visitSourceDebugExtensionAttribute, visitSourceDirAttribute, visitSourceFileAttribute, visitStackMapAttribute, visitStackMapTableAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitSyntheticAttribute, visitUnknownAttribute
      • 从接口继承的方法 proguard.classfile.constant.visitor.ConstantVisitor

        visitAnyConstant, visitAnyMethodrefConstant, visitAnyRefConstant, visitDoubleConstant, visitDynamicConstant, visitFieldrefConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitInvokeDynamicConstant, visitLongConstant, visitMethodHandleConstant, visitMethodrefConstant, visitMethodTypeConstant, visitModuleConstant, visitNameAndTypeConstant, visitPackageConstant, visitPrimitiveArrayConstant, visitStringConstant, visitUtf8Constant
    • 构造器详细资料

      • ClassObfuscator

        public ClassObfuscator​(proguard.classfile.ClassPool programClassPool,
                               proguard.classfile.ClassPool libraryClassPool,
                               DictionaryNameFactory classNameFactory,
                               DictionaryNameFactory packageNameFactory,
                               boolean useMixedCaseClassNames,
                               java.util.List keepPackageNames,
                               java.lang.String flattenPackageHierarchy,
                               java.lang.String repackageClasses,
                               boolean allowAccessModification,
                               boolean adaptKotlin)
        Creates a new ClassObfuscator.
        参数:
        programClassPool - the class pool in which class names have to be unique.
        libraryClassPool - the class pool from which class names have to be avoided.
        classNameFactory - the optional class obfuscation dictionary.
        packageNameFactory - the optional package obfuscation dictionary.
        useMixedCaseClassNames - specifies whether obfuscated packages and classes can get mixed-case names.
        keepPackageNames - the optional filter for which matching package names are kept.
        flattenPackageHierarchy - the base package if the obfuscated package hierarchy is to be flattened.
        repackageClasses - the base package if the obfuscated classes are to be repackaged.
        allowAccessModification - specifies whether obfuscated classes can be freely moved between packages.
        adaptKotlin - specifies whether Kotlin should be supported.
    • 方法详细资料

      • visitAnyClass

        public void visitAnyClass​(proguard.classfile.Clazz clazz)
        指定者:
        visitAnyClass 在接口中 proguard.classfile.visitor.ClassVisitor
      • visitProgramClass

        public void visitProgramClass​(proguard.classfile.ProgramClass programClass)
        指定者:
        visitProgramClass 在接口中 proguard.classfile.visitor.ClassVisitor
      • visitLibraryClass

        public void visitLibraryClass​(proguard.classfile.LibraryClass libraryClass)
        指定者:
        visitLibraryClass 在接口中 proguard.classfile.visitor.ClassVisitor
      • visitAnyAttribute

        public void visitAnyAttribute​(proguard.classfile.Clazz clazz,
                                      proguard.classfile.attribute.Attribute attribute)
        指定者:
        visitAnyAttribute 在接口中 proguard.classfile.attribute.visitor.AttributeVisitor
      • visitInnerClassesAttribute

        public void visitInnerClassesAttribute​(proguard.classfile.Clazz clazz,
                                               proguard.classfile.attribute.InnerClassesAttribute innerClassesAttribute)
        指定者:
        visitInnerClassesAttribute 在接口中 proguard.classfile.attribute.visitor.AttributeVisitor
      • visitEnclosingMethodAttribute

        public void visitEnclosingMethodAttribute​(proguard.classfile.Clazz clazz,
                                                  proguard.classfile.attribute.EnclosingMethodAttribute enclosingMethodAttribute)
        指定者:
        visitEnclosingMethodAttribute 在接口中 proguard.classfile.attribute.visitor.AttributeVisitor
      • visitInnerClassesInfo

        public void visitInnerClassesInfo​(proguard.classfile.Clazz clazz,
                                          proguard.classfile.attribute.InnerClassesInfo innerClassesInfo)
        指定者:
        visitInnerClassesInfo 在接口中 proguard.classfile.attribute.visitor.InnerClassesInfoVisitor
      • visitClassConstant

        public void visitClassConstant​(proguard.classfile.Clazz clazz,
                                       proguard.classfile.constant.ClassConstant classConstant)
        指定者:
        visitClassConstant 在接口中 proguard.classfile.constant.visitor.ConstantVisitor
      • setNewClassName

        public static void setNewClassName​(proguard.classfile.Clazz clazz,
                                           java.lang.String name)
        Assigns a new name to the given class.
        参数:
        clazz - the given class.
        name - the new name.
      • hasOriginalClassName

        public static boolean hasOriginalClassName​(proguard.classfile.Clazz clazz)
        Returns whether the class name of the given class has changed.
        参数:
        clazz - the given class.
        返回:
        true if the class name is unchanged, false otherwise.
      • newClassName

        public static java.lang.String newClassName​(proguard.classfile.Clazz clazz)
        Retrieves the new name of the given class.
        参数:
        clazz - the given class.
        返回:
        the class's new name, or null if it doesn't have one yet.