دالویک (نرم‌افزار)

دالویک پردازشگر ماشین مجازی است که در محصول معروف گوگل، سیستم‌عامل اندروید مورد استفاده قرار می‌گرفت (از اندروید ۵ به بعد ART جایگزین دالویک شد). دالویک بخش داخلی اندروید است که به صورت معمول در دستگاه‌های همراه مانند تلفن همراه، تبلت‌ها (رایانه‌های لوحی) و نت بوک‌ها مورد استفاده قرار می‌گیرد. برنامه‌های اندروید به فرمت قابل اجرای dex. تبدیل می‌شود. این روش برای سیستم‌هایی مناسب است که از نظر فضای حافظه رم و سرعت پردازنده مرکزی دچار محدودیت هستند.
دالویک، مانند باقی سامانه اندروید تا نگارش ۲٫۳ متن باز است. این برنامه توسط دان بورنستین نوشته‌شد، که به خاطر ماهیگری در روستایی در ایسلند به همین نام و به یاد این روستا که زمانی اعقابش در این روستا بوده‌اند؛ به نام دالویک نامگذاری نمود.
معماری
Architecture Diagram
برخلاف ماشین‌های مجازی جاوا، که ماشین‌های پشته‌ایی هستند، دالویک ماشینی مبتنی بر معماری رجیستری است. البته درباره برتری ماشین‌های مبتنی بر رجیستری نسبت به ماشنی پشته‌ایی مسئله‌ای در حال بحث است. عموم ماشین‌های مجازی پشته‌ایی باید از دستورات برای بارگذاری داده‌های در پشته و اعمال تغییرات بر روی آن‌ها استفاده نماید؛ بنابراین نسبت به ماشین‌های مبتنی بر رجیستر به دستورات بیشتری برای کد سطح بالا نیاز دارد؛ ولی دستورات در ماشین رجیستری باید به صورت مبدا و مقصد باشد که منجر به بزرگ شدن دستورات خواهد شد. این تفاوت پایه‌ایی در ترجمه در زمان بسیار مهم‌است و تعیین‌کننده.
ابزاری که با نام dx ، برای تبدیل بخشی از کد جاوا (نه تمام آن) که به صورت .class است به گونه dex. به کار می‌رود. چندین فایل کلاس می‌تواند به درون یک فایل dex. قرار گیرد. رشته‌هایی که چندین بار در کلاس‌های استفاده‌شدن‌اند تنها یکبار در dex. خروجی ظاهر می‌شود. بایت کد جاوا به شکلی از محموعه دستورات جایگزین که توسط ماشین مجازی دالویک قابل قبول است، تبدیل می‌شود. یک فایل غیر فشرده dex. معمولا چند درصد کوچکتر از فایل jar. معادل است.
کتابخانه
دالویک نه کاملا منطبق با جی۲ام‌ایی است و نه منطبق بر جی۲اس‌ایی برای مثال کلاس‌های جاواام‌ایی از قبیل ای‌دبیلوتی یا سوینگ مورد پشتیبانی قرار نمی‌گیرد در عوض از کلاس‌های کتابخانه مخصوص به خودش استفاده می‌نماید که مبتنی بر پیاده‌سازی آپاچی هارمونی از جاواست.
اجازه‌نامه و پتنت‌ها
گوگل ادعا نمود که دالویک را طی فرایند اتاق تمیز طراحی نموده‌است. این کار به جای انجام طراحی بر روی نسخه استاندارد جاوا انجام‌شد تا گرفتار مسائل حقوقی و مبتنی بر رعایت حق مولف نگردد .
دالویک تحت اجازه‌نامه آپاچی ۲٫۰ منتشر شد.
اوراکل که بعد از خریداری شرکت سان میکروسیستمز مالک حقوق جاوا شده بود، در تاریخ ۲۱ مرداد ۱۳۹۰، از گوگل به خاطر عدم رعایت حق مولف و عدم رعایت استفاده درست از پتنت‌های جاوا، از این شرکت شکایت نمود. .
ماشین مجازی ART
Art جایگزین دالویک شوده است (اندروید ۴٫۴ آزمایشی و ۵ بطور کامل جایگزین شده است). گوگل در اندروید ۴٫۴ Art را در کنار دالویک قرار داد و کاربران می‌توانند با مراجعه به تنظیمات آن را فعال کنند.
از مزایای Art نسبت به دالویک می‌توان اجرای تند‌تر برنامه‌ها و عمر بیشتر باتری را نام برد. تنها ایراد این روش بالا رفتن فضای مورد نیاز برای ذخیره برنامه‌ها و زمان بیشتر برای کامپایل برنامه هاست.
این ماشین مجازی از روش «پس‌کامپایل» بهره می‌برد که برنامه را قادر می‌ساز تا ترجمه بایت‌کد را تا زمان نصب برنامه در سیستم به تاخیر اندازد. در حال حاضر این ماشین مجازی برتری محسوسی را به وجود نیاورده است و حتی در مواردی کندتر است اما این موضوع به شدت به نوع «آزمون» بستگی دارد. همچنین افزایش زمان نصب و افزایش ۱۰٪ تا ۲۰٪ حجم فایل نصب شاتول برگزیز سایر ویژگی‌های نامطلوب آن است.
در گوگل I/O ۲۰۱۴ اعلام شد که از نسخه بعدی اندروید این ماشین مجازی جایگزین دالویک خواهد شد و ماشین زمان اجرای پیش‌فرض اندروید خواهد شد.
پیوند
http://code.google.com/p/dalvik/
YouTube|id=Ls0tM-c4Vfo|title=Google I/O 2010 - یک کامپایلر جی‌ای‌تی m/site/io/dalvik-vm-internals Dalvik VM Internals - ارائه از سوی گوگل در مورد دالویک، از سوی بورنستین
پروژه‌ای با هدف پیاده‌سازی کامل و خالص دالویک با جاوا.