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


Java DexDataStore类代码示例

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


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

示例1: writeRawDexSingleThread

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
static void writeRawDexSingleThread(DexDataStore dataStore, DexFile dexFile, int maxDexPoolSize,
		DexIO.Logger logger, File file) throws IOException {
	Set<? extends ClassDef> classes = dexFile.getClasses();
	Iterator<? extends ClassDef> classIterator = classes.iterator();
	DexPool dexPool = new DexPool(dexFile.getOpcodes());
	int classCount = 0;
	while (classIterator.hasNext()) {
		ClassDef classDef = classIterator.next();
		dexPool.internClass(classDef);
		if (getDexPoolOverflow(dexPool, maxDexPoolSize)) {
			handleDexPoolOverflow(classDef, classCount, classes.size());
			throw new AssertionError("unexpected type count");
		}
		classCount++;
	}
	if (logger != null) logger.log(file, SingletonDexContainer.UNDEFINED_ENTRY_NAME, classCount);
	dexPool.writeTo(dataStore);
}
 
开发者ID:DexPatcher,项目名称:multidexlib2,代码行数:19,代码来源:DexIO.java

示例2: updateSignature

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
private void updateSignature(@Nonnull DexDataStore dataStore) throws IOException {
    MessageDigest md;
    try {
        md = MessageDigest.getInstance("SHA-1");
    } catch (NoSuchAlgorithmException ex) {
        throw new RuntimeException(ex);
    }

    byte[] buffer = new byte[4 * 1024];
    InputStream input = dataStore.readAt(HeaderItem.SIGNATURE_DATA_START_OFFSET);
    int bytesRead = input.read(buffer);
    while (bytesRead >= 0) {
        md.update(buffer, 0, bytesRead);
        bytesRead = input.read(buffer);
    }

    byte[] signature = md.digest();
    if (signature.length != HeaderItem.SIGNATURE_SIZE) {
        throw new RuntimeException("unexpected digest write: " + signature.length + " bytes");
    }

    // write signature
    OutputStream output = dataStore.outputAt(HeaderItem.SIGNATURE_OFFSET);
    output.write(signature);
    output.close();
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:27,代码来源:DexWriter.java

示例3: updateChecksum

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
private void updateChecksum(@Nonnull DexDataStore dataStore) throws IOException {
    Adler32 a32 = new Adler32();

    byte[] buffer = new byte[4 * 1024];
    InputStream input = dataStore.readAt(HeaderItem.CHECKSUM_DATA_START_OFFSET);
    int bytesRead = input.read(buffer);
    while (bytesRead >= 0) {
        a32.update(buffer, 0, bytesRead);
        bytesRead = input.read(buffer);
    }

    // write checksum, utilizing logic in DexWriter to write the integer value properly
    OutputStream output = dataStore.outputAt(HeaderItem.CHECKSUM_OFFSET);
    DexDataWriter.writeInt(output, (int)a32.getValue());
    output.close();
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:17,代码来源:DexWriter.java

示例4: updateSignature

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
private void updateSignature( DexDataStore dataStore) throws IOException {
    MessageDigest md;
    try {
        md = MessageDigest.getInstance("SHA-1");
    } catch (NoSuchAlgorithmException ex) {
        throw new RuntimeException(ex);
    }

    byte[] buffer = new byte[4 * 1024];
    InputStream input = dataStore.readAt(HeaderItem.SIGNATURE_DATA_START_OFFSET);
    int bytesRead = input.read(buffer);
    while (bytesRead >= 0) {
        md.update(buffer, 0, bytesRead);
        bytesRead = input.read(buffer);
    }

    byte[] signature = md.digest();
    if (signature.length != HeaderItem.SIGNATURE_SIZE) {
        throw new RuntimeException("unexpected digest write: " + signature.length + " bytes");
    }

    // write signature
    OutputStream output = dataStore.outputAt(HeaderItem.SIGNATURE_OFFSET);
    output.write(signature);
    output.close();
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:27,代码来源:DexWriter.java

示例5: updateChecksum

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
private void updateChecksum( DexDataStore dataStore) throws IOException {
    Adler32 a32 = new Adler32();

    byte[] buffer = new byte[4 * 1024];
    InputStream input = dataStore.readAt(HeaderItem.CHECKSUM_DATA_START_OFFSET);
    int bytesRead = input.read(buffer);
    while (bytesRead >= 0) {
        a32.update(buffer, 0, bytesRead);
        bytesRead = input.read(buffer);
    }

    // write checksum, utilizing logic in DexWriter to write the integer value properly
    OutputStream output = dataStore.outputAt(HeaderItem.CHECKSUM_OFFSET);
    DexDataWriter.writeInt(output, (int)a32.getValue());
    output.close();
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:17,代码来源:DexWriter.java

示例6: updateChecksum

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
private void updateChecksum(@Nonnull DexDataStore dataStore) throws IOException {
    Adler32 a32 = new Adler32();

    byte[] buffer = new byte[4 * 1024];
    InputStream input = dataStore.readAt(HeaderItem.CHECKSUM_DATA_START_OFFSET);
    int bytesRead = input.read(buffer);
    while (bytesRead >= 0) {
        a32.update(buffer, 0, bytesRead);
        bytesRead = input.read(buffer);
    }

    // write checksum, utilizing logic in DexWriter to write the integer value properly
    OutputStream output = dataStore.outputAt(HeaderItem.CHECKSUM_OFFSET);
    DexDataWriter.writeInt(output, (int) a32.getValue());
    output.close();
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:DexWriter.java

示例7: writeTo

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
public void writeTo(@Nonnull DexDataStore dest,
                    @Nonnull DeferredOutputStreamFactory tempFactory) throws IOException {
    try {
        int dataSectionOffset = getDataSectionOffset();
        DexDataWriter headerWriter = outputAt(dest, 0);
        DexDataWriter indexWriter = outputAt(dest, HeaderItem.ITEM_SIZE);
        DexDataWriter offsetWriter = outputAt(dest, dataSectionOffset);
        try {
            writeStrings(indexWriter, offsetWriter);
            writeTypes(indexWriter);
            writeTypeLists(offsetWriter);
            writeProtos(indexWriter);
            writeFields(indexWriter);
            writeMethods(indexWriter);
            writeEncodedArrays(offsetWriter);
            writeAnnotations(offsetWriter);
            writeAnnotationSets(offsetWriter);
            writeAnnotationSetRefs(offsetWriter);
            writeAnnotationDirectories(offsetWriter);
            writeDebugAndCodeItems(offsetWriter, tempFactory.makeDeferredOutputStream());
            writeClasses(indexWriter, offsetWriter);
            writeMapItem(offsetWriter);
            writeHeader(headerWriter, dataSectionOffset, offsetWriter.getPosition());
        } finally {
            headerWriter.close();
            indexWriter.close();
            offsetWriter.close();
        }
        updateSignature(dest);
        updateChecksum(dest);
    } finally {
        dest.close();
    }
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:35,代码来源:DexWriter.java

示例8: writeTo

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
public static void writeTo(@Nonnull DexDataStore dataStore, @Nonnull org.jf.dexlib2.iface.DexFile input) throws IOException {
    DexPool dexPool = makeDexPool();
    for (ClassDef classDef: input.getClasses()) {
        ((ClassPool)dexPool.classSection).intern(classDef);
    }
    dexPool.writeTo(dataStore);
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:DexPool.java

示例9: writeTo

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
public void writeTo( DexDataStore dest,
                     DeferredOutputStreamFactory tempFactory) throws IOException {
    try {
        int dataSectionOffset = getDataSectionOffset();
        DexDataWriter headerWriter = outputAt(dest, 0);
        DexDataWriter indexWriter = outputAt(dest, HeaderItem.ITEM_SIZE);
        DexDataWriter offsetWriter = outputAt(dest, dataSectionOffset);
        try {
            writeStrings(indexWriter, offsetWriter);
            writeTypes(indexWriter);
            writeTypeLists(offsetWriter);
            writeProtos(indexWriter);
            writeFields(indexWriter);
            writeMethods(indexWriter);
            writeEncodedArrays(offsetWriter);
            writeAnnotations(offsetWriter);
            writeAnnotationSets(offsetWriter);
            writeAnnotationSetRefs(offsetWriter);
            writeAnnotationDirectories(offsetWriter);
            writeDebugAndCodeItems(offsetWriter, tempFactory.makeDeferredOutputStream());
            writeClasses(indexWriter, offsetWriter);
            writeMapItem(offsetWriter);
            writeHeader(headerWriter, dataSectionOffset, offsetWriter.getPosition());
        } finally {
            headerWriter.close();
            indexWriter.close();
            offsetWriter.close();
        }
        updateSignature(dest);
        updateChecksum(dest);
    } finally {
        dest.close();
    }
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:35,代码来源:DexWriter.java

示例10: writeTo

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
public static void writeTo( DexDataStore dataStore,  org.jf.dexlib2.iface.DexFile input)
        throws IOException {
    DexPool dexPool = new DexPool(input.getOpcodes());
    for (ClassDef classDef: input.getClasses()) {
        dexPool.internClass(classDef);
    }
    dexPool.writeTo(dataStore);
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:9,代码来源:DexPool.java

示例11: writeRawDexFile

import org.jf.dexlib2.writer.io.DexDataStore; //导入依赖的package包/类
public static void writeRawDexFile(DexDataStore dataStore, DexFile dexFile, int maxDexPoolSize) throws IOException {
	DexIO.writeRawDexSingleThread(dataStore, dexFile, maxDexPoolSize, null, null);
}
 
开发者ID:DexPatcher,项目名称:multidexlib2,代码行数:4,代码来源:RawDexIO.java


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