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


Java DexBackedClassDef.getStaticFields方法代码示例

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


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

示例1: isStaticFiled

import org.jf.dexlib2.dexbacked.DexBackedClassDef; //导入方法依赖的package包/类
private static boolean isStaticFiled(DexBackedClassDef classDef, FieldReference reference) {
    for (DexBackedField field : classDef.getStaticFields()) {
        if (field.equals(reference)) {
            return true;
        }
    }
    return false;
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:9,代码来源:ReferenceUtil.java

示例2: processDex

import org.jf.dexlib2.dexbacked.DexBackedClassDef; //导入方法依赖的package包/类
private static int processDex(String outputDirectory) {

        int rtn = 0;
        int i = 0;

        Set<? extends DexBackedClassDef> classDefs = gDexFile.getClasses();

        /* Find all IInterfaces first */
        for (DexBackedClassDef classDef: classDefs) {

            String className = Utils.descriptorToDot(classDef.getType());

            /* No support AIDL */
            if (className.startsWith("android.support")) {
                continue;
            }

            SortedSet<String> interfaces = new TreeSet(classDef.getInterfaces());
            if (interfaces.size() != 1) {
                continue;           
            }

            /* Getting here is a valid AIDL (or so we think) */
            if (Utils.descriptorToDot(interfaces.first()).equals(IINTERFACE_CLASS)) {

                /* First find the Stub and get a list of transactions */
                String stubName = className + ".Stub";
                String stubProxyName = className + ".Stub.Proxy";

                DexBackedClassDef stubDef = getClassDef(classDefs, stubName);
                DexBackedClassDef stubProxyDef = getClassDef(classDefs, stubProxyName);

                if (stubDef == null) {
                    System.err.println("[ERROR] Unable to find Stub for class: "
                                                            + stubName + ", Skiping!");
                    continue;
                }

                if (stubProxyDef == null) {
                    System.err.println("[ERROR] Unable to find Stub.Proxy for class: "
                                                            + stubProxyName + ", Skiping!");
                    continue;
                }

                AidlFile aidl = new AidlFile(className, outputDirectory);

                /* Next, we need all the transactions for this. */
                for (DexBackedField field : stubDef.getStaticFields()) {
                    if (field.getName().startsWith("TRANSACTION_")) {

                        String methodName = field.getName().replace("TRANSACTION_", "");

                        /* Transaction ID for sorting */
                        EncodedValue iiev = field.getInitialValue();
                        int transactionId = ((IntEncodedValue) iiev).getValue();

                        /* Get the Stub.Proxy method (which has return + args) */
                        DexBackedMethod method = getMethod(stubProxyDef, methodName);

                        aidl.addMethod(transactionId, methodName, method);
                    }
                }

                /* Write it out. */
                aidl.writeFile();
            }
        }

        return rtn;
    }
 
开发者ID:android-dtf,项目名称:core_generate_aidl,代码行数:71,代码来源:App.java


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