Package com.android.dex.Dex

Examples of com.android.dex.Dex.Section


    this.cls = cls;
    this.dex = cls.dex();
  }

  public void parse(int offset) throws DecodeException {
    Section section = dex.openSection(offset);

    // TODO read as unsigned int
    int classAnnotationsOffset = section.readInt();
    int fieldsCount = section.readInt();
    int annotatedMethodsCount = section.readInt();
    int annotatedParametersCount = section.readInt();

    if (classAnnotationsOffset != 0) {
      cls.addAttr(readAnnotationSet(classAnnotationsOffset));
    }

    for (int i = 0; i < fieldsCount; i++) {
      FieldNode f = cls.searchFieldById(section.readInt());
      f.addAttr(readAnnotationSet(section.readInt()));
    }

    for (int i = 0; i < annotatedMethodsCount; i++) {
      MethodNode m = cls.searchMethodById(section.readInt());
      m.addAttr(readAnnotationSet(section.readInt()));
    }

    for (int i = 0; i < annotatedParametersCount; i++) {
      MethodNode mth = cls.searchMethodById(section.readInt());
      // read annotation ref list
      Section ss = dex.openSection(section.readInt());
      int size = ss.readInt();
      MethodParameters params = new MethodParameters(size);
      for (int j = 0; j < size; j++) {
        params.getParamList().add(readAnnotationSet(ss.readInt()));
      }
      mth.addAttr(params);
    }
  }
View Full Code Here


      mth.addAttr(params);
    }
  }

  private AnnotationsList readAnnotationSet(int offset) throws DecodeException {
    Section section = dex.openSection(offset);
    int size = section.readInt();
    List<Annotation> list = new ArrayList<Annotation>(size);
    for (int i = 0; i < size; i++) {
      Section anSection = dex.openSection(section.readInt());
      Annotation a = readAnnotation(dex, anSection, true);
      list.add(a);
    }
    return new AnnotationsList(list);
  }
View Full Code Here

TOP

Related Classes of com.android.dex.Dex.Section

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.