Що таке Віртуальна машина Dalvik (Dalvik VM)

машина

Не секрет що, програми під платформу Android являють собою програми для віртуальної машини Dalvik. Про Dalvik VM ми і поговоримо у цій статті.

Dalvik Virtual Machine є необхідною частиною мобільної платформи Android. Це віртуальна машина, розробником якої є Dan Bornstein. Dalvik VM поширюється як вільне програмне забезпечення під GPL-сумісною ліцензією Apache 2.0. Багато в чому саме цей фактор відіграв свою важливу роль у вирішенні Google відмовитися від JME (Java Micro Edition), на яку потрібно було отримувати ліцензію від Sun. Тому корпорація, головною метою якої була розробка відкритої операційної системи, створила власну віртуальну машину.

На відміну від багатьох віртуальних машин, наприклад (також Java Virtual Machine), які є стек-орієнтованими, Dalvik є регістр-орієнтованою, що ніяк не можна назвати типовим рішенням. Але з іншого боку, вона дуже добре підходить для роботи на процесорах RISC-архітектури, до яких належать і процесори ARM, які широко застосовуються в мобільних пристроях.

машина

Dalvik Virtual Machine використовує власний байт-код. Під час розробки програми під Android перекладаються компілятором у спеціальний машинно-незалежний низькорівневий код. При виконанні на платформі саме Dalvik Virtual Machine інтерпретує та виконує таку програму.

Крім цього, Dalvik Virtual Machine здатна переводити байт-коди Java у коди свого власного формату і також виконувати їх у своєму віртуальному середовищі. Програмний код пишеться мовою Java, а після компіляції всі .class файли конвертуються у формат .dex (придатний для інтерпретації в Dalvik) за допомогою спеціальноїутиліти dx, що входить до складу Android SDK.