public class DexFileReader extends java.lang.Object implements BaseDexFileReader
DexFileVisitor visitor = new xxxFileVisitor(); DexFileReader reader = new DexFileReader(dexFile); reader.accept(visitor);
| Modifier and Type | Field and Description |
|---|---|
static int |
COMPUTE_FRAMES
Instruct ASM to compute frames when generating class files,
using
ClassWriter.COMPUTE_FRAMES
**EXPERIMENTAL CODE** |
static int |
DONT_SANITIZE_NAMES |
static int |
IGNORE_READ_EXCEPTION
ignore read exception
|
static int |
KEEP_ALL_METHODS
read all methods, even if they are glitch
|
static int |
KEEP_CLINIT
keep clinit method when
SKIP_DEBUG |
static int |
SKIP_ANNOTATION
skip annotation info in dex file.
|
static int |
SKIP_CODE
skip code info in dex file, this indicate
SKIP_DEBUG |
static int |
SKIP_DEBUG
skip debug infos in dex file.
|
static int |
SKIP_EXCEPTION |
static int |
SKIP_FIELD_CONSTANT
skip field constant in dex file.
|
| Constructor and Description |
|---|
DexFileReader(byte[] data) |
DexFileReader(java.nio.ByteBuffer in)
read dex from a
ByteBuffer. |
DexFileReader(java.io.File file) |
DexFileReader(java.io.InputStream is) |
DexFileReader(java.nio.file.Path file) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(com.googlecode.d2j.visitors.DexFileVisitor dv)
equals to
accept(DexFileVisitor, int) with 0 as config |
void |
accept(com.googlecode.d2j.visitors.DexFileVisitor dv,
int config)
Makes the given visitor visit the dex file.
|
void |
accept(com.googlecode.d2j.visitors.DexFileVisitor dv,
int classIdx,
int config)
Makes the given visitor visit the dex file.
|
java.util.List<java.lang.String> |
getClassNames() |
int |
getClassSize() |
int |
getDexVersion() |
java.lang.Boolean |
ignoreClass(java.lang.String className) |
static void |
niceExceptionMessage(java.lang.Throwable t,
int deep) |
static int |
readLeb128i(java.nio.ByteBuffer in) |
static int |
readULeb128i(java.nio.ByteBuffer in) |
public static final int SKIP_DEBUG
public static final int SKIP_CODE
SKIP_DEBUGpublic static final int SKIP_ANNOTATION
public static final int SKIP_FIELD_CONSTANT
public static final int IGNORE_READ_EXCEPTION
public static final int KEEP_ALL_METHODS
public static final int KEEP_CLINIT
SKIP_DEBUGpublic static final int SKIP_EXCEPTION
public static final int DONT_SANITIZE_NAMES
public static final int COMPUTE_FRAMES
ClassWriter.COMPUTE_FRAMES
**EXPERIMENTAL CODE**public DexFileReader(java.nio.ByteBuffer in)
ByteBuffer.public DexFileReader(byte[] data)
data - the byte array of dexpublic DexFileReader(java.io.File file)
throws java.io.IOException
file - the dex filejava.io.IOExceptionpublic DexFileReader(java.nio.file.Path file)
throws java.io.IOException
java.io.IOExceptionpublic DexFileReader(java.io.InputStream is)
throws java.io.IOException
java.io.IOExceptionpublic static void niceExceptionMessage(java.lang.Throwable t,
int deep)
public static int readULeb128i(java.nio.ByteBuffer in)
public static int readLeb128i(java.nio.ByteBuffer in)
public int getDexVersion()
getDexVersion in interface BaseDexFileReaderpublic void accept(com.googlecode.d2j.visitors.DexFileVisitor dv)
accept(DexFileVisitor, int) with 0 as configaccept in interface BaseDexFileReaderpublic java.util.List<java.lang.String> getClassNames()
getClassNames in interface BaseDexFileReaderpublic void accept(com.googlecode.d2j.visitors.DexFileVisitor dv,
int config)
accept in interface BaseDexFileReaderdv - visitorconfig - config flags, SKIP_CODE, SKIP_DEBUG, SKIP_ANNOTATION,
SKIP_FIELD_CONSTANTpublic void accept(com.googlecode.d2j.visitors.DexFileVisitor dv,
int classIdx,
int config)
DexFileVisitor.visitEnd() is not calledaccept in interface BaseDexFileReaderdv - visitorclassIdx - index of class_defconfig - config flags, SKIP_CODE, SKIP_DEBUG, SKIP_ANNOTATION,
SKIP_FIELD_CONSTANTpublic java.lang.Boolean ignoreClass(java.lang.String className)
public final int getClassSize()