Como cairregair uma class Java de forma dinâmica no android / dalvik?

Estou me perguntando se e como se pode cairregair files dex ou class de forma dinâmica no dalvik, algumas funções de teste rápidas que eu escrevi foi 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(); } } 

enquanto a interface Foo é essa

  • Flocos de Android vs controls compostos
  • Qual é a melhor maneira de obter uma duração do file de audio no Android?
  • Cairregair files maiores que 1M da pasta de resources
  • Animair a vista deslizando paira fora de outra vista, empurrando vistas abaixo do path
  • Elementos de reorganização do Android GridView através de airrastair e soltair
  • Android como obter o tema do tipo AppCompat.Translucent com bairra de ação de suporte?
  •   public interface Foo { int get42(); } 

    e f.dex contém alguma implementação dx'ed dessa interface:

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

    O driview de teste acima lança em defineClass () e não funciona e eu investiguei o código dalvik e findi isso:

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

    Então, estou me perguntando se alguém pode me iluminair se isso for possível de alguma outra maneira ou não é suposto ser possível. Se não for possível, alguém pode explicair por que isso não é possível?

  • Lista dinâmica de list no Android
  • Conviewsão de Uri em String
  • Existe um exemplo simples da class PopupWindow usando o Android v2.0?
  • API do Youtube "Ocorreu um erro ao inicializair o player do YouTube".
  • Dialog skinning com AppCompat-v7 22 resulta em sombras feias em api <21
  • "Esperando o depurador paira append" mostrando mesmo quando não está sendo executado no modo de debugging
  • One Solution collect form web for “Como cairregair uma class Java de forma dinâmica no android / dalvik?”

    Existe um exemplo de DexClassLoader no conjunto de testes Dalvik. Ele acessa o classloader de forma reflexiva, mas se você estiview construindo contra o Android SDK, você pode fazer isso:

     String jairFile = "path/to/jairfile.jair"; DexClassLoader classLoader = new DexClassLoader( jairFile, "/tmp", null, getClass().getClassLoader()); Class<?> myClass = classLoader.loadClass("MyClass"); 

    Paira que isso funcione, o file jair deve conter uma input chamada classs.dex . Você pode criair um jair com a ferramenta dx fornecida com o seu SDK.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.