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


Java Dex.getTableOfContents方法代码示例

本文整理汇总了Java中com.android.dex.Dex.getTableOfContents方法的典型用法代码示例。如果您正苦于以下问题:Java Dex.getTableOfContents方法的具体用法?Java Dex.getTableOfContents怎么用?Java Dex.getTableOfContents使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.android.dex.Dex的用法示例。


在下文中一共展示了Dex.getTableOfContents方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: transformAnnotationSets

import com.android.dex.Dex; //导入方法依赖的package包/类
private void transformAnnotationSets(Dex in, IndexMap indexMap) {
    TableOfContents.Section section = in.getTableOfContents().annotationSets;
    if (section.exists()) {
        Dex.Section setIn = in.open(section.off);
        for (int i = 0; i < section.size; i++) {
            transformAnnotationSet(indexMap, setIn);
        }
    }
}
 
开发者ID:JLLK,项目名称:multidex-maker,代码行数:10,代码来源:DexMerger.java

示例2: transformAnnotationSetRefLists

import com.android.dex.Dex; //导入方法依赖的package包/类
private void transformAnnotationSetRefLists(Dex in, IndexMap indexMap) {
    TableOfContents.Section section = in.getTableOfContents().annotationSetRefLists;
    if (section.exists()) {
        Dex.Section setIn = in.open(section.off);
        for (int i = 0; i < section.size; i++) {
            transformAnnotationSetRefList(indexMap, setIn);
        }
    }
}
 
开发者ID:JLLK,项目名称:multidex-maker,代码行数:10,代码来源:DexMerger.java

示例3: transformAnnotationDirectories

import com.android.dex.Dex; //导入方法依赖的package包/类
private void transformAnnotationDirectories(Dex in, IndexMap indexMap) {
    TableOfContents.Section section = in.getTableOfContents().annotationsDirectories;
    if (section.exists()) {
        Dex.Section directoryIn = in.open(section.off);
        for (int i = 0; i < section.size; i++) {
            transformAnnotationDirectory(directoryIn, indexMap);
        }
    }
}
 
开发者ID:JLLK,项目名称:multidex-maker,代码行数:10,代码来源:DexMerger.java

示例4: transformStaticValues

import com.android.dex.Dex; //导入方法依赖的package包/类
private void transformStaticValues(Dex in, IndexMap indexMap) {
    TableOfContents.Section section = in.getTableOfContents().encodedArrays;
    if (section.exists()) {
        Dex.Section staticValuesIn = in.open(section.off);
        for (int i = 0; i < section.size; i++) {
            transformStaticValues(staticValuesIn, indexMap);
        }
    }
}
 
开发者ID:JLLK,项目名称:multidex-maker,代码行数:10,代码来源:DexMerger.java

示例5: DexMerger

import com.android.dex.Dex; //导入方法依赖的package包/类
private DexMerger(Dex dexA, Dex dexB, CollisionPolicy collisionPolicy,
        WriterSizes writerSizes) throws IOException {
    this.dexA = dexA;
    this.dexB = dexB;
    this.collisionPolicy = collisionPolicy;
    this.writerSizes = writerSizes;

    dexOut = new Dex(writerSizes.size());

    TableOfContents aContents = dexA.getTableOfContents();
    TableOfContents bContents = dexB.getTableOfContents();
    aIndexMap = new IndexMap(dexOut, aContents);
    bIndexMap = new IndexMap(dexOut, bContents);
    aInstructionTransformer = new InstructionTransformer(aIndexMap);
    bInstructionTransformer = new InstructionTransformer(bIndexMap);

    headerOut = dexOut.appendSection(writerSizes.header, "header");
    idsDefsOut = dexOut.appendSection(writerSizes.idsDefs, "ids defs");

    contentsOut = dexOut.getTableOfContents();
    contentsOut.dataOff = dexOut.getNextSectionStart();

    contentsOut.mapList.off = dexOut.getNextSectionStart();
    contentsOut.mapList.size = 1;
    mapListOut = dexOut.appendSection(writerSizes.mapList, "map list");

    contentsOut.typeLists.off = dexOut.getNextSectionStart();
    typeListOut = dexOut.appendSection(writerSizes.typeList, "type list");

    contentsOut.annotationSetRefLists.off = dexOut.getNextSectionStart();
    annotationSetRefListOut = dexOut.appendSection(
            writerSizes.annotationsSetRefList, "annotation set ref list");

    contentsOut.annotationSets.off = dexOut.getNextSectionStart();
    annotationSetOut = dexOut.appendSection(writerSizes.annotationsSet, "annotation sets");

    contentsOut.classDatas.off = dexOut.getNextSectionStart();
    classDataOut = dexOut.appendSection(writerSizes.classData, "class data");

    contentsOut.codes.off = dexOut.getNextSectionStart();
    codeOut = dexOut.appendSection(writerSizes.code, "code");

    contentsOut.stringDatas.off = dexOut.getNextSectionStart();
    stringDataOut = dexOut.appendSection(writerSizes.stringData, "string data");

    contentsOut.debugInfos.off = dexOut.getNextSectionStart();
    debugInfoOut = dexOut.appendSection(writerSizes.debugInfo, "debug info");

    contentsOut.annotations.off = dexOut.getNextSectionStart();
    annotationOut = dexOut.appendSection(writerSizes.annotation, "annotation");

    contentsOut.encodedArrays.off = dexOut.getNextSectionStart();
    encodedArrayOut = dexOut.appendSection(writerSizes.encodedArray, "encoded array");

    contentsOut.annotationsDirectories.off = dexOut.getNextSectionStart();
    annotationsDirectoryOut = dexOut.appendSection(
            writerSizes.annotationsDirectory, "annotations directory");

    contentsOut.dataSize = dexOut.getNextSectionStart() - contentsOut.dataOff;
}
 
开发者ID:JLLK,项目名称:multidex-maker,代码行数:61,代码来源:DexMerger.java

示例6: DexMerger

import com.android.dex.Dex; //导入方法依赖的package包/类
private DexMerger(Dex[] dexes, CollisionPolicy collisionPolicy,
        WriterSizes writerSizes) throws IOException {
    this.dexes = dexes;
    this.collisionPolicy = collisionPolicy;
    this.writerSizes = writerSizes;

    dexOut = new Dex(writerSizes.size());

    indexMaps = new IndexMap[dexes.length];
    for (int i = 0; i < dexes.length; i++) {
        indexMaps[i] = new IndexMap(dexOut, dexes[i].getTableOfContents());
    }
    instructionTransformer = new InstructionTransformer();

    headerOut = dexOut.appendSection(writerSizes.header, "header");
    idsDefsOut = dexOut.appendSection(writerSizes.idsDefs, "ids defs");

    contentsOut = dexOut.getTableOfContents();
    contentsOut.dataOff = dexOut.getNextSectionStart();

    contentsOut.mapList.off = dexOut.getNextSectionStart();
    contentsOut.mapList.size = 1;
    mapListOut = dexOut.appendSection(writerSizes.mapList, "map list");

    contentsOut.typeLists.off = dexOut.getNextSectionStart();
    typeListOut = dexOut.appendSection(writerSizes.typeList, "type list");

    contentsOut.annotationSetRefLists.off = dexOut.getNextSectionStart();
    annotationSetRefListOut = dexOut.appendSection(
            writerSizes.annotationsSetRefList, "annotation set ref list");

    contentsOut.annotationSets.off = dexOut.getNextSectionStart();
    annotationSetOut = dexOut.appendSection(writerSizes.annotationsSet, "annotation sets");

    contentsOut.classDatas.off = dexOut.getNextSectionStart();
    classDataOut = dexOut.appendSection(writerSizes.classData, "class data");

    contentsOut.codes.off = dexOut.getNextSectionStart();
    codeOut = dexOut.appendSection(writerSizes.code, "code");

    contentsOut.stringDatas.off = dexOut.getNextSectionStart();
    stringDataOut = dexOut.appendSection(writerSizes.stringData, "string data");

    contentsOut.debugInfos.off = dexOut.getNextSectionStart();
    debugInfoOut = dexOut.appendSection(writerSizes.debugInfo, "debug info");

    contentsOut.annotations.off = dexOut.getNextSectionStart();
    annotationOut = dexOut.appendSection(writerSizes.annotation, "annotation");

    contentsOut.encodedArrays.off = dexOut.getNextSectionStart();
    encodedArrayOut = dexOut.appendSection(writerSizes.encodedArray, "encoded array");

    contentsOut.annotationsDirectories.off = dexOut.getNextSectionStart();
    annotationsDirectoryOut = dexOut.appendSection(
            writerSizes.annotationsDirectory, "annotations directory");

    contentsOut.dataSize = dexOut.getNextSectionStart() - contentsOut.dataOff;
}
 
开发者ID:johnlee175,项目名称:dex,代码行数:59,代码来源:DexMerger.java

示例7: DexMerger

import com.android.dex.Dex; //导入方法依赖的package包/类
private DexMerger(List<Dex> dexs, CollisionPolicy collisionPolicy,
        WriterSizes writerSizes) throws IOException {
    this.dexs = ImmutableList.copyOf(dexs);

    this.collisionPolicy = collisionPolicy;
    this.writerSizes = writerSizes;

    dexOut = new Dex(writerSizes.size());

    indexMaps = new IdentityHashMap<Dex, IndexMap>();
    instructionTransformers = new IdentityHashMap<Dex, InstructionTransformer>();
    for (Dex d : dexs) {
        TableOfContents contents = d.getTableOfContents();
        IndexMap indexMap = new IndexMap(dexOut, contents);
        indexMaps.put(d, indexMap);
        instructionTransformers.put(d, new InstructionTransformer(indexMap));
    }

    headerOut = dexOut.appendSection(writerSizes.header, "header");
    idsDefsOut = dexOut.appendSection(writerSizes.idsDefs, "ids defs");

    contentsOut = dexOut.getTableOfContents();
    contentsOut.dataOff = dexOut.getNextSectionStart();

    contentsOut.mapList.off = dexOut.getNextSectionStart();
    contentsOut.mapList.size = 1;
    mapListOut = dexOut.appendSection(writerSizes.mapList, "map list");

    contentsOut.typeLists.off = dexOut.getNextSectionStart();
    typeListOut = dexOut.appendSection(writerSizes.typeList, "type list");

    contentsOut.annotationSetRefLists.off = dexOut.getNextSectionStart();
    annotationSetRefListOut = dexOut.appendSection(
            writerSizes.annotationsSetRefList, "annotation set ref list");

    contentsOut.annotationSets.off = dexOut.getNextSectionStart();
    annotationSetOut = dexOut.appendSection(writerSizes.annotationsSet, "annotation sets");

    contentsOut.classDatas.off = dexOut.getNextSectionStart();
    classDataOut = dexOut.appendSection(writerSizes.classData, "class data");

    contentsOut.codes.off = dexOut.getNextSectionStart();
    codeOut = dexOut.appendSection(writerSizes.code, "code");

    contentsOut.stringDatas.off = dexOut.getNextSectionStart();
    stringDataOut = dexOut.appendSection(writerSizes.stringData, "string data");

    contentsOut.debugInfos.off = dexOut.getNextSectionStart();
    debugInfoOut = dexOut.appendSection(writerSizes.debugInfo, "debug info");

    contentsOut.annotations.off = dexOut.getNextSectionStart();
    annotationOut = dexOut.appendSection(writerSizes.annotation, "annotation");

    contentsOut.encodedArrays.off = dexOut.getNextSectionStart();
    encodedArrayOut = dexOut.appendSection(writerSizes.encodedArray, "encoded array");

    contentsOut.annotationsDirectories.off = dexOut.getNextSectionStart();
    annotationsDirectoryOut = dexOut.appendSection(
            writerSizes.annotationsDirectory, "annotations directory");

    contentsOut.dataSize = dexOut.getNextSectionStart() - contentsOut.dataOff;
}
 
开发者ID:saleehk,项目名称:buck-cutom,代码行数:63,代码来源:DexMerger.java

示例8: merge

import com.android.dex.Dex; //导入方法依赖的package包/类
public Dex merge() throws IOException {
        long start = System.nanoTime();
        Dex result = mergeDexes();

        /*
         * We use pessimistic sizes when merging dex files. If those sizes
         * result in too many bytes wasted, compact the result. To compact,
         * simply merge the result with itself.
         */
        WriterSizes compactedSizes = new WriterSizes(this);
        int wastedByteCount = writerSizes.size() - compactedSizes.size();
        if (wastedByteCount >  + compactWasteThreshold) {
            DexMerger compacter = new DexMerger(
                    ImmutableList.of(dexOut, new Dex(0)),
                    CollisionPolicy.FAIL,
                    compactedSizes);
            result = compacter.mergeDexes();
//            System.out.printf("Result compacted from %.1fKiB to %.1fKiB to save %.1fKiB%n",
//                    dexOut.getLength() / 1024f,
//                    result.getLength() / 1024f,
//                    wastedByteCount / 1024f);
        }

        int origDefs = 0;
        int origSizes = 0;
        for (Dex d : dexs) {
            origDefs += d.getTableOfContents().classDefs.size;
            origSizes += d.getLength();
        }

        long elapsed = System.nanoTime() - start;
//        System.out.printf("Merged dexs (%d defs/%.1fKiB). " +
//                "Result is %d defs/%.1fKiB. Took %.1fs%n",
//                origDefs,
//                origSizes / 1024f,
//                result.getTableOfContents().classDefs.size,
//                result.getLength() / 1024f,
//                elapsed / 1000000000f);

        return result;
    }
 
开发者ID:saleehk,项目名称:buck-cutom,代码行数:42,代码来源:DexMerger.java

示例9: DexMerger

import com.android.dex.Dex; //导入方法依赖的package包/类
private DexMerger(Dex[] dexes, CollisionPolicy collisionPolicy, DxContext context,
        WriterSizes writerSizes) throws IOException {
    this.dexes = dexes;
    this.collisionPolicy = collisionPolicy;
    this.context = context;
    this.writerSizes = writerSizes;

    dexOut = new Dex(writerSizes.size());

    indexMaps = new IndexMap[dexes.length];
    for (int i = 0; i < dexes.length; i++) {
        indexMaps[i] = new IndexMap(dexOut, dexes[i].getTableOfContents());
    }
    instructionTransformer = new InstructionTransformer();

    headerOut = dexOut.appendSection(writerSizes.header, "header");
    idsDefsOut = dexOut.appendSection(writerSizes.idsDefs, "ids defs");

    contentsOut = dexOut.getTableOfContents();
    contentsOut.dataOff = dexOut.getNextSectionStart();

    contentsOut.mapList.off = dexOut.getNextSectionStart();
    contentsOut.mapList.size = 1;
    mapListOut = dexOut.appendSection(writerSizes.mapList, "map list");

    contentsOut.typeLists.off = dexOut.getNextSectionStart();
    typeListOut = dexOut.appendSection(writerSizes.typeList, "type list");

    contentsOut.annotationSetRefLists.off = dexOut.getNextSectionStart();
    annotationSetRefListOut = dexOut.appendSection(
            writerSizes.annotationsSetRefList, "annotation set ref list");

    contentsOut.annotationSets.off = dexOut.getNextSectionStart();
    annotationSetOut = dexOut.appendSection(writerSizes.annotationsSet, "annotation sets");

    contentsOut.classDatas.off = dexOut.getNextSectionStart();
    classDataOut = dexOut.appendSection(writerSizes.classData, "class data");

    contentsOut.codes.off = dexOut.getNextSectionStart();
    codeOut = dexOut.appendSection(writerSizes.code, "code");

    contentsOut.stringDatas.off = dexOut.getNextSectionStart();
    stringDataOut = dexOut.appendSection(writerSizes.stringData, "string data");

    contentsOut.debugInfos.off = dexOut.getNextSectionStart();
    debugInfoOut = dexOut.appendSection(writerSizes.debugInfo, "debug info");

    contentsOut.annotations.off = dexOut.getNextSectionStart();
    annotationOut = dexOut.appendSection(writerSizes.annotation, "annotation");

    contentsOut.encodedArrays.off = dexOut.getNextSectionStart();
    encodedArrayOut = dexOut.appendSection(writerSizes.encodedArray, "encoded array");

    contentsOut.annotationsDirectories.off = dexOut.getNextSectionStart();
    annotationsDirectoryOut = dexOut.appendSection(
            writerSizes.annotationsDirectory, "annotations directory");

    contentsOut.dataSize = dexOut.getNextSectionStart() - contentsOut.dataOff;
}
 
开发者ID:facebook,项目名称:buck,代码行数:60,代码来源:DexMerger.java


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