package parser.dex; import com.googlecode.dex2jar.Field; import com.googlecode.dex2jar.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * dex中class结构:id,名称,父亲,成员变量,方法。 */ public class DexClass { /** * 类ID */ public int classIdx; public String className; public String superName; public List<TField> fields; public List<Method> methods; /** * method name : method body */ public Map<String, String> methodMap; public List<String> stringData = new ArrayList<String>() { @Override public boolean add(String a) { if (!contains(a)) super.add(a); return true; } }; public static class TField { public Field field; public Object value; } @Override public String toString() { return "DexClass{" + "classIdx=" + classIdx + ", className='" + className + '\'' + ", superName='" + superName + '\'' + ", fields=" + fields + ", methods=" + methods + ", methodMap=" + methodMap + ", stringData=" + stringData + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; DexClass dexClass = (DexClass) o; return classIdx == dexClass.classIdx && className.equals(dexClass.className); } @Override public int hashCode() { int result = classIdx; result = 31 * result + className.hashCode(); return result; } }