Ich möchte Opcodes direkt von der laufenden Dalvik VM-Instanz aus meiner Anwendung heraus auf Android ausführen. Ich suche nach etwas, das der C asm Funktion ähnlich ist. Ich habe eine Liste von Opcodes für Dalvik, aber ich bin nicht vertraut mit, wie man sie entweder direkt ausführt oder sie in .class-Dateien schreibt und sie gegen eine Art von VM-CLI-Befehl wie dalvikvm in einer laufenden Anwendung ausführt.Wie führe ich Dalvik Op-Codes aus?
5
A
Antwort
4
ist nicht möglich. Weitere Informationen finden Sie in der Google IO 2008-Präsentation auf youtube über die Dalvik-Interna. Mobile VMs, die sowohl Java als auch MS .NET enthalten, sind keine vollständigen VMs und lassen aufgrund von Speicher- und Leistungseinschränkungen Teile aus, die das ausführen, was Sie beschrieben haben.
1
In der Vergangenheit war es unmöglich, aber jetzt ist es möglich:
http://android-developers.blogspot.sg/2011/07/custom-class-loading-in-dalvik.html
Im Wesentlichen können Sie Ihre individuelle dex-Datei und laden erstellen und ausführen.
Als ich weiter hinein gegraben habe, sehe ich, dass dies leider wahr ist ... Danke! –
ja, leider .. –
[Ich habe das ursprünglich als separate Antwort gepostet, bevor ich Kommentare hatte.] Sie benötigen keinen root-Zugang, um Dex-Dateien zu laden. Es gibt eine Systemklasse, dalvik.system.DexClassLoader, die so aufgebaut ist, dass sie das Laden von Dex-Dateien relativ einfach macht. – danfuzz