com.android.dx.rop.code.AccessFlags类的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(99)

本文整理了Java中com.android.dx.rop.code.AccessFlags类的一些代码示例,展示了AccessFlags类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AccessFlags类的具体详情如下:
包路径:com.android.dx.rop.code.AccessFlags
类名称:AccessFlags

AccessFlags介绍

[英]Constants used as "access flags" in various places in classes, and related utilities. Although, at the rop layer, flags are generally ignored, this is the layer of communication, and as such, this package is where these definitions belong. The flag definitions are identical to Java access flags, but ACC_SUPER isn't used at all in translated code, and ACC_SYNCHRONIZEDis only used in a very limited way.
[中]在类和相关实用程序的不同位置用作“访问标志”的常量。虽然在rop层,标志通常被忽略,但这是通信层,因此,这些定义属于这个包。标志定义与Java访问标志相同,但ACC_SUPER根本不在翻译代码中使用,ACC_同步EDI的使用非常有限。

代码示例

代码示例来源:origin: skylot/jadx

public String rawString() {
  switch (type) {
    case CLASS:
      return AccessFlags.classString(accFlags);
    case FIELD:
      return AccessFlags.fieldString(accFlags);
    case METHOD:
      return AccessFlags.methodString(accFlags);
    default:
      return "?";
  }
}

代码示例来源:origin: com.google.android.tools/dx

CstMethodRef meth = new CstMethodRef(thisClass, one.getNat());
int accessFlags = one.getAccessFlags();
boolean isStatic = AccessFlags.isStatic(accessFlags);
boolean isPrivate = AccessFlags.isPrivate(accessFlags);
boolean isNative = AccessFlags.isNative(accessFlags);
boolean isAbstract = AccessFlags.isAbstract(accessFlags);
boolean isConstructor = meth.isInstanceInit() ||
  meth.isClassInit();
if (AccessFlags.isSynchronized(accessFlags)) {
  accessFlags |= AccessFlags.ACC_DECLARED_SYNCHRONIZED;

代码示例来源:origin: nikita36078/J2ME-Loader

/** {@inheritDoc} */
@Override
protected String humanAccessFlags(int accessFlags) {
  return AccessFlags.fieldString(accessFlags);
}

代码示例来源:origin: nikita36078/J2ME-Loader

/** {@inheritDoc} */
@Override
protected String humanAccessFlags(int accessFlags) {
  return AccessFlags.methodString(accessFlags);
}

代码示例来源:origin: nikita36078/J2ME-Loader

observer.parsed(bytes, at, 2,
        "access_flags: " +
        AccessFlags.classString(accessFlags));
observer.parsed(bytes, at + 2, 2, "this_class: " + thisClass);
observer.parsed(bytes, at + 4, 2, "super_class: " +

代码示例来源:origin: nikita36078/J2ME-Loader

/**
 * Returns a human-oriented string representing the given access flags,
 * as defined on inner classes.
 *
 * @param flags the flags
 * @return {@code non-null;} human-oriented string
 */
public static String innerClassString(int flags) {
  return humanHelper(flags, INNER_CLASS_FLAGS, CONV_CLASS);
}

代码示例来源:origin: dragome/dragome-sdk

/**
 * Sets attributes in the element according to the access flags given.
 */
private static void processAccessFlags(int accessFlags, Element element)
{
  boolean isStatic= AccessFlags.isStatic(accessFlags);
  boolean isPrivate= AccessFlags.isPrivate(accessFlags);
  boolean isPublic= AccessFlags.isPublic(accessFlags);
  boolean isNative= AccessFlags.isNative(accessFlags);
  boolean isAbstract= AccessFlags.isAbstract(accessFlags);
  boolean isSynthetic= AccessFlags.isSynthetic(accessFlags);
  boolean isInterface= AccessFlags.isInterface(accessFlags);
  setAttributeIfTrue(element, "isStatic", isStatic);
  setAttributeIfTrue(element, "isPrivate", isPrivate);
  setAttributeIfTrue(element, "isPublic", isPublic);
  setAttributeIfTrue(element, "isNative", isNative);
  setAttributeIfTrue(element, "isAbstract", isAbstract);
  setAttributeIfTrue(element, "isSynthetic", isSynthetic);
  setAttributeIfTrue(element, "isInterface", isInterface);
}

代码示例来源:origin: dragome/dragome-sdk

/**
 * Extracts the code block from the given method of the given class, or
 * <code>null</code>, if method is native or abstract.
 */
private static DalvCode getCode(Method method, DirectClassFile classFile)
{
  boolean isNative= AccessFlags.isNative(method.getAccessFlags());
  boolean isStatic= AccessFlags.isStatic(method.getAccessFlags());
  boolean isAbstract= AccessFlags.isAbstract(method.getAccessFlags());
  if (isNative || isAbstract)
  {
    return null;
  }
  ConcreteMethod concrete= new ConcreteMethod(method, classFile, false, false);
  TranslationAdvice advice= DexTranslationAdvice.THE_ONE;
  RopMethod rmeth= Ropper.convert(concrete, advice);
  CstMethodRef meth= new CstMethodRef(method.getDefiningClass(), method.getNat());
  int paramSize= meth.getParameterWordCount(isStatic);
  DalvCode code= RopTranslator.translate(rmeth, PositionList.NONE, null, paramSize);
  DalvCode.AssignIndicesCallback callback= new DalvCode.AssignIndicesCallback()
  {
    public int getIndex(Constant cst)
    {
      // Everything is at index 0!
      return 0;
    }
  };
  code.assignIndices(callback);
  return code;
}

代码示例来源:origin: nikita36078/J2ME-Loader

/**
 * Constructs an instance.
 *
 * @param definingClass {@code non-null;} the defining class
 * @param accessFlags access flags
 * @param nat {@code non-null;} member name and type (descriptor)
 * @param attributes {@code non-null;} list of associated attributes
 */
public StdMethod(CstType definingClass, int accessFlags, CstNat nat,
    AttributeList attributes) {
  super(definingClass, accessFlags, nat, attributes);
  String descStr = getDescriptor().getString();
  effectiveDescriptor =
    Prototype.intern(descStr, definingClass.getClassType(),
                AccessFlags.isStatic(accessFlags),
                nat.isInstanceInit());
}

代码示例来源:origin: nikita36078/J2ME-Loader

if (AccessFlags.isAnnotation(cf.getAccessFlags())) {
  Annotation annotationDefault =
    translateAnnotationDefaults(cf);

代码示例来源:origin: nikita36078/J2ME-Loader

observer.parsed(bytes, offset + 6, 2,
        "  access_flags: " +
        AccessFlags.innerClassString(accessFlags));

代码示例来源:origin: nikita36078/J2ME-Loader

for (int i = 0; i < methods.size(); ++i) {
  final Method m = methods.get(i);
  if (AccessFlags.isPrivate(m.getAccessFlags()) &&
      ref.getNat().equals(m.getNat())) {
    return RegOps.INVOKE_DIRECT;
    continue;
  if (AccessFlags.isPrivate(m.getAccessFlags())) {
    return RegOps.INVOKE_DIRECT;
  } else {

代码示例来源:origin: dragome/dragome-sdk

CstMethodRef meth = new CstMethodRef(thisClass, one.getNat());
int accessFlags = one.getAccessFlags();
boolean isStatic = AccessFlags.isStatic(accessFlags);
boolean isPrivate = AccessFlags.isPrivate(accessFlags);
boolean isNative = AccessFlags.isNative(accessFlags);
boolean isAbstract = AccessFlags.isAbstract(accessFlags);
boolean isConstructor = meth.isInstanceInit() ||
  meth.isClassInit();
if (AccessFlags.isSynchronized(accessFlags)) {
  accessFlags |= AccessFlags.ACC_DECLARED_SYNCHRONIZED;

代码示例来源:origin: com.jakewharton.android.repackaged/dalvik-dx

/** {@inheritDoc} */
@Override
protected String humanAccessFlags(int accessFlags) {
  return AccessFlags.fieldString(accessFlags);
}

代码示例来源:origin: com.android/dx

/** {@inheritDoc} */
@Override
protected String humanAccessFlags(int accessFlags) {
  return AccessFlags.methodString(accessFlags);
}

代码示例来源:origin: com.android.tools.build/builder

observer.parsed(bytes, at, 2,
        "access_flags: " +
        AccessFlags.classString(accessFlags));
observer.parsed(bytes, at + 2, 2, "this_class: " + thisClass);
observer.parsed(bytes, at + 4, 2, "super_class: " +

代码示例来源:origin: nikita36078/J2ME-Loader

/**
 * Returns a human-oriented string representing the given access flags,
 * as defined on methods (not classes or fields).
 *
 * @param flags the flags
 * @return {@code non-null;} human-oriented string
 */
public static String methodString(int flags) {
  return humanHelper(flags, METHOD_FLAGS, CONV_METHOD);
}

代码示例来源:origin: dragome/dragome-sdk

boolean isNative= AccessFlags.isNative(accessFlags);
boolean isStatic= AccessFlags.isStatic(accessFlags);
boolean isAbstract= AccessFlags.isAbstract(accessFlags);

代码示例来源:origin: com.jakewharton.android.repackaged/dalvik-dx

/**
 * Constructs an instance.
 *
 * @param definingClass {@code non-null;} the defining class
 * @param accessFlags access flags
 * @param nat {@code non-null;} member name and type (descriptor)
 * @param attributes {@code non-null;} list of associated attributes
 */
public StdMethod(CstType definingClass, int accessFlags, CstNat nat,
    AttributeList attributes) {
  super(definingClass, accessFlags, nat, attributes);
  String descStr = getDescriptor().getString();
  effectiveDescriptor =
    Prototype.intern(descStr, definingClass.getClassType(),
                AccessFlags.isStatic(accessFlags),
                nat.isInstanceInit());
}

代码示例来源:origin: com.jakewharton.android.repackaged/dalvik-dx

if (AccessFlags.isAnnotation(cf.getAccessFlags())) {
  Annotation annotationDefault =
    translateAnnotationDefaults(cf);

相关文章