当前位置: 首页>>代码示例>>Java>>正文


Java OdexHeaderItem类代码示例

本文整理汇总了Java中org.jf.dexlib2.dexbacked.raw.OdexHeaderItem的典型用法代码示例。如果您正苦于以下问题:Java OdexHeaderItem类的具体用法?Java OdexHeaderItem怎么用?Java OdexHeaderItem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


OdexHeaderItem类属于org.jf.dexlib2.dexbacked.raw包,在下文中一共展示了OdexHeaderItem类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getDependencies

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public List<String> getDependencies() {
    final int dexOffset = OdexHeaderItem.getDexOffset(odexBuf);
    final int dependencyOffset = OdexHeaderItem.getDependenciesOffset(odexBuf) - dexOffset;

    BaseDexBuffer buf = new BaseDexBuffer(this.buf);
    int dependencyCount = buf.readInt(dependencyOffset + DEPENDENCY_COUNT_OFFSET);

    return new VariableSizeList<String>(this, dependencyOffset + DEPENDENCY_START_OFFSET, dependencyCount) {
        @Override protected String readNextItem(@Nonnull DexReader reader, int index) {
            int length = reader.readInt();
            int offset = reader.getOffset();
            reader.moveRelative(length + 20);
            try {
                return new String(DexBackedOdexFile.this.buf, offset, length-1, "US-ASCII");
            } catch (UnsupportedEncodingException ex) {
                throw new RuntimeException(ex);
            }
        }
    };
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:21,代码来源:DexBackedOdexFile.java

示例2: getDependencies

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public List<String> getDependencies() {
    final int dexOffset = OdexHeaderItem.getDexOffset(odexBuf);
    final int dependencyOffset = OdexHeaderItem.getDependenciesOffset(odexBuf) - dexOffset;

    BaseDexBuffer buf = new BaseDexBuffer(this.buf);
    int dependencyCount = buf.readInt(dependencyOffset + DEPENDENCY_COUNT_OFFSET);

    return new VariableSizeList<String>(this, dependencyOffset + DEPENDENCY_START_OFFSET, dependencyCount) {
        @Override protected String readNextItem( DexReader reader, int index) {
            int length = reader.readInt();
            int offset = reader.getOffset();
            reader.moveRelative(length + 20);
            try {
                return new String(DexBackedOdexFile.this.buf, offset, length-1, "US-ASCII");
            } catch (UnsupportedEncodingException ex) {
                throw new RuntimeException(ex);
            }
        }
    };
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:21,代码来源:DexBackedOdexFile.java

示例3: fromInputStream

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public static DexBackedOdexFile fromInputStream( Opcodes opcodes,  InputStream is)
        throws IOException {
    DexUtil.verifyOdexHeader(is);

    is.reset();
    byte[] odexBuf = new byte[OdexHeaderItem.ITEM_SIZE];
    ByteStreams.readFully(is, odexBuf);
    int dexOffset = OdexHeaderItem.getDexOffset(odexBuf);
    if (dexOffset > OdexHeaderItem.ITEM_SIZE) {
        ByteStreams.skipFully(is, dexOffset - OdexHeaderItem.ITEM_SIZE);
    }

    byte[] dexBuf = ByteStreams.toByteArray(is);

    return new DexBackedOdexFile(opcodes, odexBuf, dexBuf);
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:17,代码来源:DexBackedOdexFile.java

示例4: getDependencies

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public List<String> getDependencies() {
    final int dexOffset = OdexHeaderItem.getDexOffset(odexBuf);
    final int dependencyOffset = OdexHeaderItem.getDependenciesOffset(odexBuf) - dexOffset;

    BaseDexBuffer buf = new BaseDexBuffer(this.buf);
    int dependencyCount = buf.readInt(dependencyOffset + DEPENDENCY_COUNT_OFFSET);

    return new VariableSizeList<String>(this, dependencyOffset + DEPENDENCY_START_OFFSET, dependencyCount) {
        @Override
        protected String readNextItem(@Nonnull DexReader reader, int index) {
            int length = reader.readInt();
            int offset = reader.getOffset();
            reader.moveRelative(length + 20);
            try {
                return new String(DexBackedOdexFile.this.buf, offset, length - 1, "US-ASCII");
            } catch (UnsupportedEncodingException ex) {
                throw new RuntimeException(ex);
            }
        }
    };
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:22,代码来源:DexBackedOdexFile.java

示例5: fromInputStream

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public static DexBackedOdexFile fromInputStream(@Nonnull Opcodes opcodes, @Nonnull InputStream is)
        throws IOException {
    if (!is.markSupported()) {
        throw new IllegalArgumentException("InputStream must support mark");
    }
    is.mark(8);
    byte[] partialHeader = new byte[8];
    try {
        ByteStreams.readFully(is, partialHeader);
    } catch (EOFException ex) {
        throw new NotADexFile("File is too short");
    } finally {
        is.reset();
    }

    verifyMagic(partialHeader);

    is.reset();
    byte[] odexBuf = new byte[OdexHeaderItem.ITEM_SIZE];
    ByteStreams.readFully(is, odexBuf);
    int dexOffset = OdexHeaderItem.getDexOffset(odexBuf);
    if (dexOffset > OdexHeaderItem.ITEM_SIZE) {
        ByteStreams.skipFully(is, dexOffset - OdexHeaderItem.ITEM_SIZE);
    }

    byte[] dexBuf = ByteStreams.toByteArray(is);

    return new DexBackedOdexFile(opcodes, odexBuf, dexBuf);
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:30,代码来源:DexBackedOdexFile.java

示例6: verifyMagic

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
private static void verifyMagic(byte[] buf) {
    if (!OdexHeaderItem.verifyMagic(buf)) {
        StringBuilder sb = new StringBuilder("Invalid magic value:");
        for (int i=0; i<8; i++) {
            sb.append(String.format(" %02x", buf[i]));
        }
        throw new NotAnOdexFile(sb.toString());
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:10,代码来源:DexBackedOdexFile.java

示例7: fromInputStream

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public static DexBackedOdexFile fromInputStream(@Nonnull Opcodes opcodes,
		@Nonnull InputStream is) throws IOException {
	if (!is.markSupported()) {
		throw new IllegalArgumentException("InputStream must support mark");
	}
	is.mark(8);
	byte[] partialHeader = new byte[8];
	try {
		ByteStreams.readFully(is, partialHeader);
	} catch (EOFException ex) {
		throw new NotADexFile("File is too short");
	} finally {
		is.reset();
	}

	verifyMagic(partialHeader);

	is.reset();
	byte[] odexBuf = new byte[OdexHeaderItem.ITEM_SIZE];
	ByteStreams.readFully(is, odexBuf);
	int dexOffset = OdexHeaderItem.getDexOffset(odexBuf);
	if (dexOffset > OdexHeaderItem.ITEM_SIZE) {
		ByteStreams.skipFully(is, dexOffset - OdexHeaderItem.ITEM_SIZE);
	}

	byte[] dexBuf = ByteStreams.toByteArray(is);

	return new DexBackedOdexFile(opcodes, odexBuf, dexBuf);
}
 
开发者ID:Miracle963,项目名称:zjdroid,代码行数:30,代码来源:DexBackedOdexFile.java

示例8: verifyMagic

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
private static void verifyMagic(byte[] buf) {
	if (!OdexHeaderItem.verifyMagic(buf)) {
		StringBuilder sb = new StringBuilder("Invalid magic value:");
		for (int i = 0; i < 8; i++) {
			sb.append(String.format(" %02x", buf[i]));
		}
		throw new NotAnOdexFile(sb.toString());
	}
}
 
开发者ID:Miracle963,项目名称:zjdroid,代码行数:10,代码来源:DexBackedOdexFile.java

示例9: verifyOdexHeader

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
/**
 * Verifies that the odex header is valid and a supported version
 *
 * @param buf A byte array containing at least the first 8 bytes of an odex file
 * @param offset The offset within the array to the odex header
 * @throws NotAnOdexFile If the file is not an odex file
 * @throws UnsupportedFile If the odex header is valid, but uses unsupported functionality
 */
public static void verifyOdexHeader( byte[] buf, int offset) {
    int odexVersion = OdexHeaderItem.getVersion(buf, offset);
    if (odexVersion == -1) {
        StringBuilder sb = new StringBuilder("Not a valid odex magic value:");
        for (int i=0; i<8; i++) {
            sb.append(String.format(" %02x", buf[i]));
        }
        throw new NotAnOdexFile(sb.toString());
    }

    if (!OdexHeaderItem.isSupportedOdexVersion(odexVersion)) {
        throw new UnsupportedFile(String.format("Odex version %03d is not supported", odexVersion));
    }
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:23,代码来源:DexUtil.java

示例10: verifyMagic

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
private static void verifyMagic(byte[] buf) {
    if (!OdexHeaderItem.verifyMagic(buf)) {
        StringBuilder sb = new StringBuilder("Invalid magic value:");
        for (int i = 0; i < 8; i++) {
            sb.append(String.format(" %02x", buf[i]));
        }
        throw new NotAnOdexFile(sb.toString());
    }
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:10,代码来源:DexBackedOdexFile.java

示例11: getOdexVersion

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public int getOdexVersion() {
    return OdexHeaderItem.getVersion(odexBuf);
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:4,代码来源:DexBackedOdexFile.java

示例12: getDependencies

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public List<String> getDependencies() {
	if (this.getReader() == null) {
		final int dexOffset = OdexHeaderItem.getDexOffset(odexBuf);
		final int dependencyOffset = OdexHeaderItem
				.getDependenciesOffset(odexBuf) - dexOffset;

		BaseDexBuffer buf = new BaseDexBuffer(this.buf);
		int dependencyCount = buf.readInt(dependencyOffset
				+ DEPENDENCY_COUNT_OFFSET);

		return new VariableSizeList<String>(this, dependencyOffset
				+ DEPENDENCY_START_OFFSET, dependencyCount) {
			@Override
			protected String readNextItem(@Nonnull DexReader reader,
					int index) {
				int length = reader.readInt();
				int offset = reader.getOffset();
				reader.moveRelative(length + 20);
				try {
					return new String(DexBackedOdexFile.this.buf, offset,
							length - 1, "US-ASCII");
				} catch (UnsupportedEncodingException ex) {
					throw new RuntimeException(ex);
				}
			}
		};
	} else {
		File file = new File("/system/framework/");
		File[] filelist = file.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File pathname) {
				// TODO Auto-generated method stub
				if(pathname.getAbsolutePath().endsWith(".jar"))
				   return true;
				else 
				   return false;
			}
		});
		List<String> list = new ArrayList<String>(filelist.length);
		for(int i = 0; i<filelist.length; i++){
			list.add(filelist[i].getAbsolutePath());
		}
		return list;
		
	}
}
 
开发者ID:Miracle963,项目名称:zjdroid,代码行数:48,代码来源:DexBackedOdexFile.java

示例13: getOdexVersion

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public int getOdexVersion() {
	return OdexHeaderItem.getVersion(odexBuf);
}
 
开发者ID:Miracle963,项目名称:zjdroid,代码行数:4,代码来源:DexBackedOdexFile.java

示例14: getOdexVersion

import org.jf.dexlib2.dexbacked.raw.OdexHeaderItem; //导入依赖的package包/类
public int getOdexVersion() {
    return OdexHeaderItem.getVersion(odexBuf, 0);
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:4,代码来源:DexBackedOdexFile.java


注:本文中的org.jf.dexlib2.dexbacked.raw.OdexHeaderItem类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。