package parser.dex; import com.googlecode.dex2jar.visitors.DexClassVisitor; import com.googlecode.dex2jar.visitors.DexFileVisitor; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * 收集 dex 的class */ public class DexFileAdapter implements DexFileVisitor { protected List<DexClass> dexClassList; protected int classIdx = 0; public DexFileAdapter(List<DexClass> dexClasses) { this.dexClassList = dexClasses; } @Override public DexClassVisitor visit(int access_flags, String className, String superClass, String[] interfaceNames) { final DexClass dexClass = new DexClass(); dexClass.classIdx = classIdx++; dexClass.className = className; dexClass.superName = superClass; dexClass.fields = new ArrayList<>(); dexClass.methods = new ArrayList<>(); dexClass.methodMap = new HashMap<>(); dexClassList.add(dexClass); // System.out.println("className : " + className); return new ClassAdapter(access_flags, className, superClass, interfaceNames, dexClass); } @Override public void visitEnd() { } }