Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-获取加载类/反射以获取包中的类?_Java_Android_Sdk_Android Ndk - Fatal编程技术网

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

Java Android-获取加载类/反射以获取包中的类?,java,android,sdk,android-ndk,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

是否有人知道如何在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();
        }
    }
试试看{
DexFile DexFile=新的DexFile(新文件(“/data/app/com.uxpsystems.cepclient-2.apk”);
枚举=dexFile.entries();
if(枚举.hasMoreElements()==false){
d(LOG_标记,“-->枚举没有元素”);
}
while(枚举.hasMoreElements()){
String className=enumeration.nextElement();
if(className.substring(0,18).equals(“com.somecompany.aproduct”)){
Logger.d(LOG_标记,“-->枚举:”+className);
}否则{
//Logger.d(LOG_标记,“-->”匹配失败:“+className.substring(0,18));
}
}
}捕获(IOE异常){
e、 printStackTrace();
}
}