Exécute le bytecode Java sur Android - JVM de Sun sur le dessus de DalvikVM
Puisque l'implémentation de java (OpenJDK
) et Android, la machine virtuelle DalvikVM sont open-source, il doit être possible de mettre en œuvre de Soleil JavaVM sur le dessus de Google DalvikVM. Cela ferait-il possible de lancer la JVM en fonction des applications et des langues (Clojure, Jython
) out-of-the-box sur android.
Est-il un effort continu pour produire une telle mise en œuvre de la JVM de Sun?
- ont été u en mesure d'exécuter le bytecode java dans android?? si oui, pouvez-vous énumérer les étapes??
Vous devez vous connecter pour publier un commentaire.
L'OpenJDK rend l'utilisation de code natif de sorte qu'il serait un non-trivial de port... il y a au moins une VM (JikesRVM) qui est écrit en Java, malheureusement, il n'est pas un travail de mise en œuvre de Java.
Depuis DalvikVM pistes de classes qui ont été converties à partir de .les fichiers de classe, il devrait être possible de convertir les cours. Ensuite, le "seul" problème, c'est quand les langues de générer du bytecode à la volée pour qu'elle aurait besoin de l'étape supplémentaire de la conversion du bytecode généré au cours de la DalvikVM format alors que le programme est en cours d'exécution sur le DalvikVM.
Hmmm.... une sorte de JITT (Juste À Temps Traducteur) que covertes les fichiers de classe pour un DalvikVM fichiers lors de l'exécution sur le téléphone. Je me demande comment ralentir ce serait.
Portage OpenJDK à la plate-forme Android est possible. Il y a de l'effort, comme : le Requin, le Zéro et caciocavallo qui a considérablement facilité le port de processus (= pas de l'ASM, simple AWT par les pairs). Plus Android n'est rien, mais un noyau linux derrière. La seule question est: quand est-il en être faite par n'importe qui ?
Par le chemin, les deux iphones et les téléphones android obtenu Jazelle processeur compatible, quelqu'un avec une très forte processeur compétences de piratage serait le bienvenu pour ajouter Jazelle soutien à OpenJDK.
Ce faisant, nous avons pu choisir entre : très légère accélération des ressources (Jazelle) et JIT 😉
Sur l'iPhone, c'est la même chose : un port est possible. Seulement Apple a mis dans la section de l'iPhone licence clairement interdire l'utilisation de la VM. Comme par le droit Européen, pour moi, cette section licence est unlegal. Deux raisons : Vous ne pouvez pas forcer/lien acheter deux de votre produit. Ici, je mélodie et les Iphones sont liés. Vous ne pouvez pas refuser de vendre quelque chose que vous pouvez vendre. Ici, dès qu'une VM serait de construire pour l'iPhone, si c'est refusé d'être mis sur l'iTune store, puis de ce point s'applique. Est-ce que quelqu'un qui veux chalenge Apple licence de légalité sur la terre ? Je ne le pense pas, malheureux les gens vont s'envoler pour Android ou toute autre plate-forme.
En attendant, j'ai trouvé une solution possible (seulement JavaME):
techniquement, il devrait être possible d'interpréter hotspot byte-code dalvik vm ou dalvik du byte-code hotspot, mais il ne sera jamais efficace (ne pas mentionner élégant) de conception pour un long terme. le coût de ce que pourrait devenir très élevée, en particulier à l'égard de l'entretien dans l'évolution future d'une telle scission de l'écosystème.
je pense que, dès le début, dalvik vm est une question de pouvoir/contrôle du marché plutôt que de l'effort d'innovation pour améliorer la machine virtuelle java de l'écosystème. dalvik vm et hotspot vm sont le lac des deux ponts routiers sur la même rivière construire en parallèle de cinq mètres les uns des autres. il divise et apporte de la confusion à java écosystème technologique.
google est, à mon avis, certainement le leader technologique avec des contributions novatrices au cours de la dernière décennie que les naines beaucoup plus conservateur oracle, mais dans ce sujet, ils ont secoué l'écosystème java dans près de destructeurs. nous (les programmeurs) devrait viser une unique solution à ce problème. c'est l'idée principale derrière le concept de "machine virtuelle" de toute façon il ne doit pas appartenir ni google, ni oracle.
Je ne pense pas que le problème est d'ordre technique. En théorie, vous pouvez migrer OpenJDK pour l'iPhone par exemple, mais il y a des restriction juridique en place.
Voir http://davy.preuveneers.be/phoneme/ pour MIDP, de la Fondation et de Profil Personnel jvm pour Android BRAS apk. (Merci Davy!!!)
J'ai remballé la Fondation de la jvm pour la ligne de commande, l'utilisation et l'héberger vkfox.com/android/bin/foundation-jvm.bin pour votre plus grand plaisir. On pourrait utiliser le compilateur eclipse dans le JavaIDEdroid application gratuite, ou le vieux kopi ou kopisusu compilateurs avec cette jvm, combinés avec l'écrasa cdc + fondation fichier jar à partir d'un J2ME jdk pour un journal de bord système de développement. En utilisant les fonctionnalités de TerminalIDE -- console et le soleil compilateur -- avec indiqué ref pots serait également vous y rendre. C'est essentiellement équivalent à une tête jdk1.4 avec la possibilité de MIDP ou graphiques awt.
essayer GNURoot application (proot ptrace conteneur) avec debian Wheezy;
apt-get update
apt-get install openjdk-7-jre
/usr/lib/jvm/java-7-openjdk-armel/jre/bin/java ...
(y compris le long d'un chemin)