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

دالویک پردازشگر ماشین مجازی است که در محصول معروف گوگل، سیستم‌عامل اندروید مورد استفاده قرار می‌گرفت (از اندروید ۵ به بعد ART جایگزین دالویک شد). دالویک بخش داخلی اندروید است که به صورت معمول در دستگاه‌های همراه مانند تلفن همراه، تبلت‌ها (رایانه‌های لوحی) و نت بوک‌ها مورد استفاده قرار می‌گیرد. برنامه‌های اندروید به فرمت قابل اجرای dex. تبدیل می‌شود. این روش برای سیستم‌هایی مناسب است که از نظر فضای حافظه رم و سرعت پردازنده مرکزی دچار محدودیت هستند.

دالویک
نویسنده(های)
اصلی
دن بورنستین
مخزن
سیستم‌عاملهسته لینوکس
پلت‌فرماندروید
مجوزاجازه‌نامه آپاچی ۲
وبگاه

دالویک، مانند باقی سامانهٔ اندروید تا نگارش ۲٫۳[۱] متن باز است. این برنامه توسط دان بورنستین نوشته‌شد، که به خاطر ماهیگری در روستایی در ایسلند به همین نام و به یاد این روستا که زمانی اعقابش در این روستا بوده‌اند؛ به نام دالویک نامگذاری نمود.[۲][۳]

معماری

ویرایش
 
Architecture Diagram

برخلاف ماشین‌های مجازی جاوا، که ماشین‌های پشته‌ایی هستند، دالویک ماشینی مبتنی بر معماری رجیستری است. البته دربارهٔ برتری ماشین‌های مبتنی بر رجیستری نسبت به ماشنی پشته‌ایی مسئله‌ای در حال بحث است.[۴] عموم ماشین‌های مجازی پشته‌ایی باید از دستورات برای بارگذاری داده‌های در پشته و اعمال تغییرات بر روی آن‌ها استفاده نماید؛ بنابراین نسبت به ماشین‌های مبتنی بر رجیستر به دستورات بیشتری برای کد سطح بالا نیاز دارد؛ ولی دستورات در ماشین رجیستری باید به صورت مبدأ و مقصد باشد که منجر به بزرگ شدن دستورات خواهد شد. این تفاوت پایه‌ایی در ترجمه در زمان بسیار مهم‌است و تعیین‌کننده.

ابزاری که با نام dx، برای تبدیل بخشی از کد جاوا (نه تمام آن) که به صورت .class است به گونهٔ dex. به کار می‌رود. چندین فایل کلاس می‌تواند به درون یک فایل dex. قرار گیرد. رشته‌هایی که چندین بار در کلاس‌های استفاده‌شدن‌اند تنها یکبار در dex. خروجی ظاهر می‌شود. بایت کد جاوا به شکلی از محموعه دستورات جایگزین که توسط ماشین مجازی دالویک قابل قبول است، تبدیل می‌شود. یک فایل غیر فشردهٔ dex. معمولاً چند درصد کوچکتر از فایل jar. معادل است.[۵]

کتابخانه

ویرایش

دالویک نه کاملاً منطبق با J2ME است و نه منطبق بر J2SE[۶][۷] برای مثال کلاس‌های جاواام‌ایی از قبیل awt یا swing مورد پشتیبانی قرار نمی‌گیرد در عوض از کلاس‌های کتابخانهٔ مخصوص به خودش استفاده می‌نماید[۸] که مبتنی بر پیاده‌سازی آپاچی هارمونی از جاواست.

اجازه‌نامه و پتنت‌ها

ویرایش

گوگل ادعا نمود که دالویک را طی فرایند اتاق تمیز طراحی نموده‌است. این کار به جای انجام طراحی بر روی نسخهٔ استاندارد جاوا انجام‌شد تا گرفتار مسائل حقوقی و مبتنی بر رعایت حق مؤلف نگردد[۹]. دالویک تحت اجازه‌نامه آپاچی ۲٫۰ منتشر شد.[۱۰]

اوراکل که بعد از خریداری شرکت سان میکروسیستمز مالک حقوق جاوا شده بود، در تاریخ ۲۱ مرداد ۱۳۹۰، از گوگل به خاطر عدم رعایت حق مؤلف و عدم رعایت استفادهٔ درست از پتنت‌های جاوا، از این شرکت شکایت نمود.[۱۱][۱۲][۱۳].

ماشین مجازی ART

ویرایش
 
نمودار معماری Android Run Time، بازآفرینی شده از اطلاعات منتشر شده در A Closer RunTime (ART) Android در Android L

Art (به انگلیسی: Android RunTime) جایگزین دالویک شوده است (اندروید ۴٫۴ آزمایشی و ۵ به‌طور کامل جایگزین شده‌است). گوگل در اندروید ۴٫۴ Art را در کنار دالویک قرار داد و کاربران می‌توانند با مراجعه به تنظیمات آن را فعال کنند. از مزایای Art نسبت به دالویک می‌توان اجرای تند تر برنامه‌ها و عمر بیشتر باتری را نام برد. تنها ایراد این روش بالا رفتن فضای مورد نیاز برای ذخیره برنامه‌ها و زمان بیشتر برای کامپایل برنامه هاست.[۱۴] این ماشین مجازی از روش «پس‌کامپایل» (به انگلیسی: Ahead-of-Time(AOT)) بهره می‌برد که برنامه را قادر می‌ساز تا ترجمهٔ بایت‌کد را تا زمان نصب برنامه در سیستم به تأخیر اندازد. در حال حاضر این ماشین مجازی برتری محسوسی را به وجود نیاورده است و حتی در مواردی کندتر است اما این موضوع به شدت به نوع «آزمون» بستگی دارد. همچنین افزایش زمان نصب و افزایش ۱۰٪ تا ۲۰٪ حجم فایل نصب شاتول برگزیز سایر ویژگی‌های نامطلوب آن است.[۱۵][۱۶] در گوگل I/O ۲۰۱۴ اعلام شد که از نسخهٔ بعدی اندروید این ماشین مجازی جایگزین دالویک خواهد شد و ماشین زمانِ اجرای پیش‌فرض اندروید خواهد شد.

پیوند

ویرایش
  • http://code.google.com/p/dalvik/
  • پاملا جونز (۲۰۱۰August ۱۶). «اوراکل آمریکا گونهٔ پروندهٔ dex». بایگانی‌شده از اصلی در ۲۵ مه ۲۰۱۲. دریافت‌شده در ۲۸ اوت ۲۰۱۱. تاریخ وارد شده در |date= را بررسی کنید (کمک)
  • اپکدهای دالویک
  • YouTube|id=Ls0tM-c4Vfo|title=Google I/O 2010 - یک کامپایلر جی‌ای‌تی m/site/io/dalvik-vm-internals Dalvik VM Internals] - ارائه از سوی گوگل در مورد دالویک، از سوی بورنستین
  • ماشنی مجازی دالویک بر روی جاوا پروژه‌ای با هدف پیاده‌سازی کامل و خالص دالویک با جاوا.

منابع

ویرایش
  1. «اندروید گوگل ۳٫۰ «بستنی عسلی»: متن باز، دیگر نه!». زی‌دی‌نت. ۴ فروردین ۱۳۹۰. بایگانی‌شده از اصلی در ۲۵ اوت ۲۰۱۱. دریافت‌شده در ۶ شهریور ۱۳۹۰.
  2. Journal entry اشاره به مبدأ نام
  3. "تماس با گوگل: درون اندروید، کیت توسعهٔ نرم‌افزاری جی‌فون". onlamp.com. Archived from the original on 10 January 2017. Retrieved 6 شهریور 1390. {{cite web}}: Check date values in: |تاریخ بازدید= (help)
  4. ام. آنتون ارتل، یان‌هی شی، دیوید گرگ، اندرو بیتی (۲۰ مرداد ۱۳۸۸). «نمایش قدرت ماشین مجازی: پشته‌ایی در مقابل رجیستری» (PDF). دریافت‌شده در ۶ شهریور ۱۳۹۰.
  5. دن بورنستین (۸ مرداد ۱۳۸۷). «تشریح ساختار درونی ماشین مجازی دالویک» (PDF). گوگل. بایگانی‌شده از اصلی (PDF) در ۱۶ آوریل ۲۰۱۷. دریافت‌شده در ۶ شهریور ۱۳۹۰. از پارامتر ناشناخته |گونه= صرف‌نظر شد (کمک)
  6. «کیت توسعهٔ نرم‌افزاری اندروید، متعلق به گوگل، به نفع جاوا، جاوا ام‌ایی را به سمت آپاچی هارمونی دور زد». infoq.com. ۱۳۸۶-۰۸-۲۱. دریافت‌شده در ۶ شهریور ۱۳۹۰.
  7. «جایگزینی برای پوینت ۲ بعدی». آموزش دروید. ۲۳ بهمن ۱۳۸۸. دریافت‌شده در ۶ شهریور ۱۳۹۰.
  8. «نمایهٔ بسته». اتحادیه گوشی باز. دریافت‌شده در ۶ شهریور ۱۳۹۰.
  9. استفانو مازوچی (۲۱ آبان ۱۳۸۶). «دالویک: چگونه گوگل محدودیت‌های موجود بر جاوای‌ام‌ایِ اعمال شده از سوی سان را دور زد». بایگانی‌شده از اصلی در ۲۵ فوریه ۲۰۱۱. دریافت‌شده در ۶ شهریور ۱۳۹۰.
  10. «Nothing to see here - only dreams of electric sheep». بایگانی‌شده از اصلی در ۱۷ آوریل ۲۰۰۹. دریافت‌شده در ۲۰ سپتامبر ۲۰۱۹.
  11. «اوراکل، گوگل را به خاطر استفاده از جاوا در اندروید، تحت پیگرد قرار داد». digitaltrends.com. ۲۲ مرداد ۱۳۸۹. دریافت‌شده در ۶ شهریور ۱۳۹۰.
  12. جیمی نیکولای (۲۱ مرداد ۱۳۸۹). «اوراکل گوگل را به خاطر جاوای موجود در اندروید مورد پیگرد قانونی قرار داد». بایگانی‌شده از اصلی در ۱ آوریل ۲۰۲۳. دریافت‌شده در ۶ شهریور ۱۳۹۰.
  13. مارک هچمن (۲۱ مرداد ۱۳۸۹). «اوراکل از گوگل به خاطر استفادهٔ اندروید از جاوا شکایت کرد». زیف دیویس.
  14. نیما دادگستر (۱۷ آبان ۱۳۹۲). «ران تایم بعدی اندروید ART نام دارد، دو برابر سریع تر اسکول‌ها است و گوگل ۲ سال مشغول توسعه آن بوده». نارنجی. کاراکتر line feed character در |عنوان= در موقعیت 53 (کمک)
  15. "ART را ببنید، بخش ۲: آزمون- کارایش شما را تکان نمی‌دهد اما بهتر می‌شود". androidpolice.com. 2013-11-12. Retrieved 2014-01-02. «تصویر کلی از ART امروز رسم شد. به‌طور حتم باعث تغییراتی خواهد شد ولی طرح فعلی به اندازهٔ کافی بالغ نیست تا یک بازدهی مناسب را بدست دهد.»
  16. "گوگل ART (زمان اجرایِ اندروید) را برای «کیت‌کت» معرفی کرد". androidaio.com. Archived from the original on 11 August 2014. Retrieved 2013-11-08.