Is de Android dalvik vm een ​​kopie of een aparte vm van de java vm

Met de recente rij tussen oracle en Google ben ik benieuwd of de dalvik vm echt een kopie is van de java vm .... Google zegt dat het een clean room-technologie is en geen java vm .. waarom gebruikt het dan Java om de bytecode te genereren ???

0
@slayton Ik heb de vraag getagd voor beide, in de hoop een goed antwoord te krijgen :)
toegevoegd de auteur Nav, de bron
deze vraag is beter geschikt voor android.stackexchange.com
toegevoegd de auteur slayton, de bron

2 antwoord

Anders interpreteert Java VM Java niet. Het interpreteert Java bytecode dat wordt geproduceerd door een compiler (van Java-bronnen of, mogelijk, van een andere taal). De bytecode zelf is ontworpen met de algemene ideologie van Java in gedachten, maar deze hoeft niet vanaf Java te worden geproduceerd. Evenzo hoeft het resultaat van de Java-compilatie geen Java bytecode te zijn. Het kunnen de eigen instructies van de CPU zijn of een bytecode in een ander formaat.

Dit laatste is het geval met Dalvik.

De Dalvik VM interpreteert bytecode in zijn eigen formaat. Android SDK wordt geleverd met een Java-compiler die Java souces leest en Dalvik bytecode uitspuwt. Dus nee, Java VM is dat niet. Het is een VM in orde, en de taal van de bronnen is toevallig Java.

2
toegevoegd
Ik vond hier een antwoord en.wikipedia.org/wiki/Dalvik_(software) ... wikipedia verwijst naar dalvik vm als een virtuele machine waarvan zowel oracle en java beweren dat het een kopie is of een zelfontwikkelde virtuele machine voor Android-systemen. Corigeer me alsjeblieft als ik het fout heb :)
toegevoegd de auteur Nav, de bron

Het is geen jvm - het is samengesteld uit Java-syntaxis .... Dus het is gemakkelijk voor Java-ontwikkelaars om te coderen en te leren ... Maar het is een geheel andere taal op machineniveau.

1
toegevoegd