public class CodeWriter extends DexCodeVisitor
| 限定符和类型 | 类和说明 |
|---|---|
static class |
CodeWriter.IndexedInsn |
static class |
CodeWriter.OP35c |
static class |
CodeWriter.OP3rc |
visitor| 构造器和说明 |
|---|
CodeWriter(ClassDataItem.EncodedMethod encodedMethod,
CodeItem codeItem,
Method owner,
boolean isStatic,
ConstPool cp) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
add(Insn insn) |
static void |
checkContentByte(Op op,
java.lang.String cc,
int v) |
static void |
checkContentS4bit(Op op,
java.lang.String name,
int v) |
static void |
checkContentShort(Op op,
java.lang.String cccc,
int v) |
static void |
checkContentU4bit(Op op,
java.lang.String name,
int v) |
static void |
checkContentUByte(Op op,
java.lang.String cc,
int v) |
static void |
checkContentUShort(Op op,
java.lang.String cccc,
int v) |
static void |
checkRegA(Op op,
java.lang.String s,
int reg) |
static void |
checkRegAA(Op op,
java.lang.String s,
int reg) |
void |
visitConstStmt(Op op,
int ra,
java.lang.Object value)
kFmt21c,kFmt31c,kFmt11n,kFmt21h,kFmt21s,kFmt31i,kFmt51l
|
DexDebugVisitor |
visitDebug() |
void |
visitEnd() |
void |
visitFieldStmt(Op op,
int a,
int b,
Field field)
OP_IGETX a,b field
OP_IPUTX a,b field
OP_SGETX a field
OP_SPUTX a field
|
void |
visitFillArrayDataStmt(Op op,
int ra,
java.lang.Object value) |
void |
visitFilledNewArrayStmt(Op op,
int[] args,
java.lang.String type)
OP_FILLED_NEW_ARRAY
|
void |
visitJumpStmt(Op op,
int a,
int b,
DexLabel label)
OP_IF_EQ
OP_IF_NE
OP_IF_LT
OP_IF_GE
OP_IF_GT
OP_IF_LE
OP_GOTO
OP_IF_EQZ
OP_IF_NEZ
OP_IF_LTZ
OP_IF_GEZ
OP_IF_GTZ
OP_IF_LEZ
|
void |
visitLabel(DexLabel label) |
void |
visitMethodStmt(Op op,
int[] args,
Method method)
OP_INVOKE_VIRTUAL
OP_INVOKE_SUPER
OP_INVOKE_DIRECT
OP_INVOKE_STATIC
OP_INVOKE_INTERFACE
|
void |
visitPackedSwitchStmt(Op op,
int aA,
int first_case,
DexLabel[] labels) |
void |
visitRegister(int total) |
void |
visitSparseSwitchStmt(Op op,
int ra,
int[] cases,
DexLabel[] labels) |
void |
visitStmt0R(Op op)
|
void |
visitStmt1R(Op op,
int reg)
kFmt11x
|
void |
visitStmt2R(Op op,
int a,
int b)
kFmt12x,kFmt22x,kFmt32x
|
void |
visitStmt2R1N(Op op,
int distReg,
int srcReg,
int content)
Only kFmt22s, kFmt22b
|
void |
visitStmt3R(Op op,
int a,
int b,
int c)
kFmt23x
|
void |
visitTryCatch(DexLabel start,
DexLabel end,
DexLabel[] handlers,
java.lang.String[] types) |
void |
visitTypeStmt(Op op,
int a,
int b,
java.lang.String type)
OP_INSTANCE_OF
OP_NEW_ARRAY
OP_CHECK_CAST
OP_NEW_INSTANCE
|
visitMethodStmt, visitMethodStmtpublic CodeWriter(ClassDataItem.EncodedMethod encodedMethod, CodeItem codeItem, Method owner, boolean isStatic, ConstPool cp)
public static void checkContentByte(Op op, java.lang.String cc, int v)
public static void checkContentS4bit(Op op, java.lang.String name, int v)
public static void checkContentShort(Op op, java.lang.String cccc, int v)
public static void checkContentU4bit(Op op, java.lang.String name, int v)
public static void checkContentUByte(Op op, java.lang.String cc, int v)
public static void checkContentUShort(Op op, java.lang.String cccc, int v)
public static void checkRegA(Op op, java.lang.String s, int reg)
public static void checkRegAA(Op op, java.lang.String s, int reg)
public void add(Insn insn)
public void visitFillArrayDataStmt(Op op, int ra, java.lang.Object value)
visitFillArrayDataStmt 在类中 DexCodeVisitorpublic void visitConstStmt(Op op, int ra, java.lang.Object value)
visitConstStmt 在类中 DexCodeVisitorop - ra - value - public void visitEnd()
visitEnd 在类中 DexCodeVisitorpublic void visitFieldStmt(Op op, int a, int b, Field field)
DexCodeVisitorOP_IGETX a,b field OP_IPUTX a,b field OP_SGETX a field OP_SPUTX a field
visitFieldStmt 在类中 DexCodeVisitorpublic void visitFilledNewArrayStmt(Op op, int[] args, java.lang.String type)
DexCodeVisitorOP_FILLED_NEW_ARRAY
public void visitJumpStmt(Op op, int a, int b, DexLabel label)
DexCodeVisitorOP_IF_EQ OP_IF_NE OP_IF_LT OP_IF_GE OP_IF_GT OP_IF_LE OP_GOTO OP_IF_EQZ OP_IF_NEZ OP_IF_LTZ OP_IF_GEZ OP_IF_GTZ OP_IF_LEZ
visitJumpStmt 在类中 DexCodeVisitorpublic void visitLabel(DexLabel label)
visitLabel 在类中 DexCodeVisitorpublic void visitMethodStmt(Op op, int[] args, Method method)
DexCodeVisitorOP_INVOKE_VIRTUAL OP_INVOKE_SUPER OP_INVOKE_DIRECT OP_INVOKE_STATIC OP_INVOKE_INTERFACE
visitMethodStmt 在类中 DexCodeVisitorpublic void visitPackedSwitchStmt(Op op, int aA, int first_case, DexLabel[] labels)
visitPackedSwitchStmt 在类中 DexCodeVisitorpublic void visitRegister(int total)
visitRegister 在类中 DexCodeVisitorpublic void visitSparseSwitchStmt(Op op, int ra, int[] cases, DexLabel[] labels)
visitSparseSwitchStmt 在类中 DexCodeVisitorpublic void visitStmt0R(Op op)
DexCodeVisitorvisitStmt0R 在类中 DexCodeVisitorpublic void visitStmt1R(Op op, int reg)
visitStmt1R 在类中 DexCodeVisitorop - reg - public void visitStmt2R(Op op, int a, int b)
visitStmt2R 在类中 DexCodeVisitorop - a - b - public void visitStmt2R1N(Op op, int distReg, int srcReg, int content)
visitStmt2R1N 在类中 DexCodeVisitorop - distReg - srcReg - content - public void visitStmt3R(Op op, int a, int b, int c)
visitStmt3R 在类中 DexCodeVisitorop - a - b - c - public void visitTryCatch(DexLabel start, DexLabel end, DexLabel[] handlers, java.lang.String[] types)
visitTryCatch 在类中 DexCodeVisitorpublic void visitTypeStmt(Op op, int a, int b, java.lang.String type)
DexCodeVisitorOP_INSTANCE_OF OP_NEW_ARRAY OP_CHECK_CAST OP_NEW_INSTANCE
visitTypeStmt 在类中 DexCodeVisitorpublic DexDebugVisitor visitDebug()
visitDebug 在类中 DexCodeVisitor