¿Cómo cargar una clase Java dinámicamente en Android / Dalvik?

Me pregunto si y cómo se pueden cargar archivos dex o de clase dinámicamente en Dalvik, alguna función de prueba rápida y sucia que escribí fue esta:

    public void testLoader() { 
            InputStream in; 
            int len; 
            byte[] data = new byte[2048]; 
            try { 
                    in = context.getAssets().open("f.dex"); 
                    len = in.read(data); 
                    in.close(); 
                    DexFile d; 
                    Class c = defineClass("net.webvm.FooImpl", data, 0, len); 
                    Foo foo = (Foo)c.newInstance(); 
            } catch (IOException e1) { 
                    // TODO Auto-generated catch block 
                    e1.printStackTrace(); 
            } catch (IllegalAccessException e) { 
                    // TODO Auto-generated catch block 
 ,                   e.printStackTrace(); 
            } catch (InstantiationException e) { 
                    // TODO Auto-generated catch block 
                    e.printStackTrace(); 
            } 
    } 

mientras que la interfaz de Foo es esta

    public interface Foo { 
            int get42(); 
    } 

y f.dex contiene alguna implementación dx'ed de esa interfaz:

    public class FooImpl implements Foo { 
            public int get42() { 
                    return 42; 
            } 
    } 

El controlador de prueba anterior arroja en defineClass () y no funciona e investigué el código dalvik y encontré esto:

http://www.google.com/codesearch/p?hl=en#atE6BTe41-M/vm/Jni.c&q=Jni.c...

Así que me pregunto si alguien puede iluminarme si esto es posible de alguna otra manera o no se supone que sea posible. Si no es posible, ¿alguien puede dar razones por las cuales esto no es posible?

Respuestas a la pregunta(1)

Su respuesta a la pregunta