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

标签 java android sdk android-ndk

有谁知道如何获取 Android 包中的类列表(从 Android 应用程序内),或者如何使用与 Dalvik VM 配合使用的反射从给定包中检索类名?

最佳答案

因此,对于 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();
        }
    }

关于java - Android - 获取加载的类/反射以获取包中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391481/

相关文章:

java - dom4j 未加载整个 xml

java - BigInteger 不可变替代方案/解决方法

android - Espresso : How can I test that the activity finished with result RESULT_OK?

java - 尽管之前在 AsyncTask 类中定义过,但 JSON 对象为 null?

java - Hibernate @NamedQuery 加入

Android Sentry 不在仪表板中显示日志

android - 在 Android 上的 Activity 中添加指向 Twitter 帐户的链接

javascript - facebook javascript sdk 生日格式

powershell - 在部署期间使用脚本从 SCCM 检索应用程序属性

php - 为什么 Parse 类不保存?