本文整理汇总了Java中org.jf.dexlib2.dexbacked.raw.ClassDefItem类的典型用法代码示例。如果您正苦于以下问题:Java ClassDefItem类的具体用法?Java ClassDefItem怎么用?Java ClassDefItem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ClassDefItem类属于org.jf.dexlib2.dexbacked.raw包,在下文中一共展示了ClassDefItem类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: DexBackedClassDef
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
public DexBackedClassDef(@Nonnull DexBackedDexFile dexFile,
int classDefOffset) {
this.dexFile = dexFile;
this.classDefOffset = classDefOffset;
int classDataOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.CLASS_DATA_OFFSET);
if (classDataOffset == 0) {
staticFieldsOffset = -1;
staticFieldCount = 0;
instanceFieldCount = 0;
directMethodCount = 0;
virtualMethodCount = 0;
} else {
DexReader reader = dexFile.readerAt(classDataOffset);
staticFieldCount = reader.readSmallUleb128();
instanceFieldCount = reader.readSmallUleb128();
directMethodCount = reader.readSmallUleb128();
virtualMethodCount = reader.readSmallUleb128();
staticFieldsOffset = reader.getOffset();
}
}
示例2: getInterfaces
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
@Nonnull
@Override
public Set<String> getInterfaces() {
final int interfacesOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.INTERFACES_OFFSET);
if (interfacesOffset > 0) {
final int size = dexFile.readSmallUint(interfacesOffset);
return new FixedSizeSet<String>() {
@Nonnull
@Override
public String readItem(int index) {
return dexFile.getType(dexFile.readUshort(interfacesOffset + 4 + (2*index)));
}
@Override public int size() { return size; }
};
}
return ImmutableSet.of();
}
示例3: DexBackedClassDef
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
public DexBackedClassDef( DexBackedDexFile dexFile,
int classDefOffset) {
this.dexFile = dexFile;
this.classDefOffset = classDefOffset;
int classDataOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.CLASS_DATA_OFFSET);
if (classDataOffset == 0) {
staticFieldsOffset = -1;
staticFieldCount = 0;
instanceFieldCount = 0;
directMethodCount = 0;
virtualMethodCount = 0;
} else {
DexReader reader = dexFile.readerAt(classDataOffset);
staticFieldCount = reader.readSmallUleb128();
instanceFieldCount = reader.readSmallUleb128();
directMethodCount = reader.readSmallUleb128();
virtualMethodCount = reader.readSmallUleb128();
staticFieldsOffset = reader.getOffset();
}
}
示例4: getInterfaces
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
@Override
public List<String> getInterfaces() {
final int interfacesOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.INTERFACES_OFFSET);
if (interfacesOffset > 0) {
final int size = dexFile.readSmallUint(interfacesOffset);
return new AbstractList<String>() {
@Override
public String get(int index) {
return dexFile.getType(dexFile.readUshort(interfacesOffset + 4 + (2*index)));
}
@Override public int size() { return size; }
};
}
return ImmutableList.of();
}
示例5: getInterfaces
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
@Nonnull
@Override
public List<String> getInterfaces() {
final int interfacesOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.INTERFACES_OFFSET);
if (interfacesOffset > 0) {
final int size = dexFile.readSmallUint(interfacesOffset);
return new AbstractList<String>() {
@Override
@Nonnull
public String get(int index) {
return dexFile.getType(dexFile.readUshort(interfacesOffset + 4 + (2*index)));
}
@Override public int size() { return size; }
};
}
return ImmutableList.of();
}
示例6: getInterfaces
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
@Nonnull
@Override
public Set<String> getInterfaces() {
final int interfacesOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.INTERFACES_OFFSET);
if (interfacesOffset > 0) {
final int size = dexFile.readSmallUint(interfacesOffset);
return new FixedSizeSet<String>() {
@Nonnull
@Override
public String readItem(int index) {
return dexFile.getType(dexFile.readUshort(interfacesOffset + 4 + (2 * index)));
}
@Override
public int size() {
return size;
}
};
}
return ImmutableSet.of();
}
示例7: getAnnotationsDirectory
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
private AnnotationsDirectory getAnnotationsDirectory() {
if (annotationsDirectory == null) {
int annotationsDirectoryOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.ANNOTATIONS_OFFSET);
annotationsDirectory = AnnotationsDirectory.newOrEmpty(dexFile, annotationsDirectoryOffset);
}
return annotationsDirectory;
}
示例8: getClassDefItemOffset
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
public int getClassDefItemOffset(int classIndex) {
if(this.type == DexFileDataType.MEMORYTYPE){
return classStartOffset + classIndex*ClassDefItem.ITEM_SIZE;
}
if (classIndex < 0 || classIndex >= classCount) {
throw new InvalidItemIndex(classIndex, "Class index out of bounds: %d", classIndex);
}
return classStartOffset + classIndex*ClassDefItem.ITEM_SIZE;
}
示例9: DexBackedClassDef
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
public DexBackedClassDef(@Nonnull DexBackedDexFile dexFile,
int classDefOffset) {
this.dexFile = dexFile;
this.classDefOffset = classDefOffset;
try{
int classDataOffset = dexFile.readSmallUint(classDefOffset + ClassDefItem.CLASS_DATA_OFFSET);
//Logger.log("the classDataOffset ="+classDataOffset);
if (classDataOffset == 0) {
staticFieldsOffset = -1;
staticFieldCount = 0;
instanceFieldCount = 0;
directMethodCount = 0;
virtualMethodCount = 0;
} else {
DexReader reader = dexFile.readerAt(classDataOffset);
staticFieldCount = reader.readSmallUleb128();
instanceFieldCount = reader.readSmallUleb128();
directMethodCount = reader.readSmallUleb128();
virtualMethodCount = reader.readSmallUleb128();
staticFieldsOffset = reader.getOffset();
}
}catch(Exception e){
e.printStackTrace();
this.isValid = false;
}
}
示例10: getDataSectionOffset
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
private int getDataSectionOffset() {
return HeaderItem.ITEM_SIZE +
stringSection.getItems().size() * StringIdItem.ITEM_SIZE +
typeSection.getItems().size() * TypeIdItem.ITEM_SIZE +
protoSection.getItems().size() * ProtoIdItem.ITEM_SIZE +
fieldSection.getItems().size() * FieldIdItem.ITEM_SIZE +
methodSection.getItems().size() * MethodIdItem.ITEM_SIZE +
classSection.getItems().size() * ClassDefItem.ITEM_SIZE;
}
示例11: getType
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; //导入依赖的package包/类
@Nonnull
@Override
public String getType() {
return dexFile.getType(dexFile.readSmallUint(classDefOffset + ClassDefItem.CLASS_OFFSET));
}