Android - 获取加载的类/反射来获取包中的类?

时间:2012-09-12 15:20:45

标签: java android sdk android-ndk

有没有人知道如何获取Android包中的类列表(来自Android应用程序)或如何使用与Dalvik VM一起使用的反射来从给定包中检索类名?

1 个答案:

答案 0 :(得分:2)

因此对于Android,我们可以使用DexFile类枚举给定APK中的可见类。

        try {
            DexFile dexFile = new DexFile(new File("/data/app/com.uxpsystems.cepclient-2.apk"));
            Enumeration<String> enumeration = dexFile.entries();

            if (enumeration.hasMoreElements() == false){
                Logger.d(LOG_TAG, "--> Enumeration has no elements");
            }

            while (enumeration.hasMoreElements()){
                String className = enumeration.nextElement();

                if (className.substring(0, 18).equals("com.somecompany.aproduct")){
                    Logger.d(LOG_TAG, "--> Enumeration: " + className); 
                }else{
//                  Logger.d(LOG_TAG, "--> Failed match: " + className.substring(0, 18));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }