本文整理了Java中org.jf.dexlib2.iface.Method.getAccessFlags()
方法的一些代码示例,展示了Method.getAccessFlags()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Method.getAccessFlags()
方法的具体详情如下:
包路径:org.jf.dexlib2.iface.Method
类名称:Method
方法名:getAccessFlags
[英]Gets the access flags for this method. This will be a combination of the AccessFlags.* flags that are marked as compatible for use with a method.
[中]获取此方法的访问标志。这将是AccessFlags的组合。*标记为与方法兼容的标志。
代码示例来源:origin: JesusFreke/smali
@Override public int getAccessFlags() {
return method.getAccessFlags();
}
代码示例来源:origin: JesusFreke/smali
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
ClassProto existingInterface = (ClassProto)classPath.getClass(
defaultMethods.get(defaultMethodIndex).getDefiningClass());
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
if (oldVtableMethod != null) {
if (!interfaceMethodOverrides(interfaceMethod, oldVtableMethod)) {
代码示例来源:origin: JesusFreke/smali
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
ClassProto existingInterface = (ClassProto)classPath.getClass(
defaultMethods.get(defaultMethodIndex).getDefiningClass());
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
defaultMethods.add(interfaceMethod);
methodOrder.put(interfaceMethod, methodOrder.size());
代码示例来源:origin: Sable/soot
@Override
public void jimplify(DexBody body) {
int acccessFlags = targetMethod.getAccessFlags();
if (AccessFlags.STATIC.isSet(acccessFlags)) {
jimplifyStatic(body);
} else if (AccessFlags.PRIVATE.isSet(acccessFlags)) {
jimplifySpecial(body);
} else {
jimplifyVirtual(body);
}
}
代码示例来源:origin: JesusFreke/smali
private void analyzeExecuteInlineRange(@Nonnull AnalyzedInstruction analyzedInstruction) {
if (inlineResolver == null) {
throw new AnalysisException("Cannot analyze an odexed instruction unless we are deodexing");
}
Instruction3rmi instruction = (Instruction3rmi)analyzedInstruction.instruction;
Method resolvedMethod = inlineResolver.resolveExecuteInline(analyzedInstruction);
Opcode deodexedOpcode;
int acccessFlags = resolvedMethod.getAccessFlags();
if (AccessFlags.STATIC.isSet(acccessFlags)) {
deodexedOpcode = Opcode.INVOKE_STATIC_RANGE;
} else if (AccessFlags.PRIVATE.isSet(acccessFlags)) {
deodexedOpcode = Opcode.INVOKE_DIRECT_RANGE;
} else {
deodexedOpcode = Opcode.INVOKE_VIRTUAL_RANGE;
}
Instruction3rc deodexedInstruction = new ImmutableInstruction3rc(deodexedOpcode, instruction.getStartRegister(),
instruction.getRegisterCount(), resolvedMethod);
analyzedInstruction.setDeodexedInstruction(deodexedInstruction);
analyzeInstruction(analyzedInstruction);
}
代码示例来源:origin: Tencent/tinker
method.getParameters(),
method.getReturnType(),
method.getAccessFlags(),
method.getAnnotations(),
methodImpl
代码示例来源:origin: Sable/soot
isStatic = Modifier.isStatic(method.getAccessFlags());
numRegisters = code.getRegisterCount();
numParameterRegisters = MethodUtil.getParameterRegisterCount(method);
代码示例来源:origin: CalebFenton/simplify
boolean hasDefaultConstructor = false;
for (Method method : methods) {
int access = method.getAccessFlags();
String name = method.getName();
String desc = buildDescriptor(method);
代码示例来源:origin: JesusFreke/smali
private void analyzeExecuteInline(@Nonnull AnalyzedInstruction analyzedInstruction) {
if (inlineResolver == null) {
throw new AnalysisException("Cannot analyze an odexed instruction unless we are deodexing");
}
Instruction35mi instruction = (Instruction35mi)analyzedInstruction.instruction;
Method resolvedMethod = inlineResolver.resolveExecuteInline(analyzedInstruction);
Opcode deodexedOpcode;
int acccessFlags = resolvedMethod.getAccessFlags();
if (AccessFlags.STATIC.isSet(acccessFlags)) {
deodexedOpcode = Opcode.INVOKE_STATIC;
} else if (AccessFlags.PRIVATE.isSet(acccessFlags)) {
deodexedOpcode = Opcode.INVOKE_DIRECT;
} else {
deodexedOpcode = Opcode.INVOKE_VIRTUAL;
}
Instruction35c deodexedInstruction = new ImmutableInstruction35c(deodexedOpcode, instruction.getRegisterCount(),
instruction.getRegisterC(), instruction.getRegisterD(), instruction.getRegisterE(),
instruction.getRegisterF(), instruction.getRegisterG(), resolvedMethod);
analyzedInstruction.setDeodexedInstruction(deodexedInstruction);
analyzeInstruction(analyzedInstruction);
}
代码示例来源:origin: Sable/soot
/**
* Retrieve the SootMethod equivalent of this method
*
* @return the SootMethod of this method
*/
public SootMethod makeSootMethod(final Method method) {
int accessFlags = method.getAccessFlags();
// get the name of the method
String name = method.getName();
List<SootClass> thrownExceptions = getThrownExceptions(method);
List<Type> parameterTypes = getParameterTypes(method);
// retrieve the return type of this method
Type returnType = DexType.toSoot(method.getReturnType());
// Build soot method by all available parameters
SootMethod sm = declaringClass.getMethodUnsafe(name, parameterTypes, returnType);
if (sm == null) {
sm = Scene.v().makeSootMethod(name, parameterTypes, returnType, accessFlags, thrownExceptions);
}
// if the method is abstract or native, no code needs to be transformed
int flags = method.getAccessFlags();
if (Modifier.isAbstract(flags) || Modifier.isNative(flags)) {
return sm;
}
if (Options.v().oaat() && declaringClass.resolvingLevel() <= SootClass.SIGNATURES) {
return sm;
}
// sets the method source by adding its body as the active body
sm.setSource(createMethodSource(method));
return sm;
}
代码示例来源:origin: JesusFreke/smali
private static void writeParameters(IndentingWriter writer, Method method,
List<? extends MethodParameter> parameters,
BaksmaliOptions options) throws IOException {
boolean isStatic = AccessFlags.STATIC.isSet(method.getAccessFlags());
int registerNumber = isStatic?0:1;
for (MethodParameter parameter: parameters) {
代码示例来源:origin: JesusFreke/smali
public static void writeEmptyMethodTo(IndentingWriter writer, Method method,
BaksmaliOptions options) throws IOException {
writer.write(".method ");
writeAccessFlags(writer, method.getAccessFlags());
writer.write(method.getName());
writer.write("(");
ImmutableList<MethodParameter> methodParameters = ImmutableList.copyOf(method.getParameters());
for (MethodParameter parameter: methodParameters) {
writer.write(parameter.getType());
}
writer.write(")");
writer.write(method.getReturnType());
writer.write('\n');
writer.indent(4);
writeParameters(writer, method, methodParameters, options);
String containingClass = null;
if (options.implicitReferences) {
containingClass = method.getDefiningClass();
}
AnnotationFormatter.writeTo(writer, method.getAnnotations(), containingClass);
writer.deindent(4);
writer.write(".end method\n");
}
代码示例来源:origin: JesusFreke/smali
public void writeTo(IndentingWriter writer) throws IOException {
int parameterRegisterCount = 0;
if (!AccessFlags.STATIC.isSet(method.getAccessFlags())) {
parameterRegisterCount++;
writeAccessFlags(writer, method.getAccessFlags());
writer.write(method.getName());
writer.write("(");
代码示例来源:origin: wala/WALA
@Override
public boolean isNative() {
return (eMethod.getAccessFlags() & NATIVE.getValue()) != 0;
}
代码示例来源:origin: wala/WALA
@Override
public boolean isProtected() {
return (eMethod.getAccessFlags() & PROTECTED.getValue()) != 0;
}
代码示例来源:origin: com.ibm.wala/com.ibm.wala.dalvik
@Override
public boolean isBridge() {
return (eMethod.getAccessFlags() & BRIDGE.getValue()) != 0;
}
代码示例来源:origin: wala/WALA
@Override
public boolean isAbstract() {
return (eMethod.getAccessFlags() & ABSTRACT.getValue()) != 0;
}
代码示例来源:origin: wala/WALA
@Override
public boolean isBridge() {
return (eMethod.getAccessFlags() & BRIDGE.getValue()) != 0;
}
代码示例来源:origin: testwhat/SmaliEx
public static boolean isPackagePrivate(@Nonnull Method method) {
return (method.getAccessFlags() & (AccessFlags.PRIVATE.getValue() |
AccessFlags.PROTECTED.getValue() |
AccessFlags.PUBLIC.getValue())) == 0;
}
代码示例来源:origin: testwhat/SmaliEx
public static ImmutableMethod of(Method method) {
if (method instanceof ImmutableMethod) {
return (ImmutableMethod)method;
}
return new ImmutableMethod(
method.getDefiningClass(),
method.getName(),
method.getParameters(),
method.getReturnType(),
method.getAccessFlags(),
method.getAnnotations(),
method.getImplementation());
}
内容来源于网络,如有侵权,请联系作者删除!