بيئة تشغيل أندرويد

بيئة تشغيل أندرويد ( ART ) هي بيئة تشغيل تطبيقاتيستخدمها نظام التشغيل أندرويد . تحل ART محل Dalvik ، وهي الآلة الافتراضية للعمليات التي كان يستخدمها أندرويد في الأصل، وتقوم بترجمة بعض التعليمات البرمجية الثنائية للتطبيقإلى تعليمات أصلية يتم تنفيذها لاحقًا بواسطة بيئة تشغيل الجهاز. [ 2 ]

ملخص

مقارنة بين معمارية دالفيك ومعمارية ART

أدخل نظام أندرويد 2.2 "فرويو" تقنية الترجمة الفورية القائمة على التتبع (JIT) إلى دالفيك، مما حسّن أداء التطبيقات من خلال تحليلها باستمرار في كل مرة تُشغّل فيها، وترجمة أجزاء قصيرة من رمزها البرمجي (بايت كود) إلى رمز الآلة الأصلي. وبينما يفسر دالفيك باقي رمز التطبيق البرمجي، فإن التنفيذ الأصلي لتلك الأجزاء القصيرة، والتي تُسمى "التتبعات"، يُحسّن الأداء بشكل ملحوظ. [ 3 ] [ 4 ]

على عكس Dalvik، يُقدّم ART استخدام الترجمة المسبقة (AOT) من خلال ترجمة الأجزاء الأكثر أهمية لأداء التطبيقات (التطبيق بأكمله سابقًا) إلى لغة الآلة الأصلية عند تثبيتها. وبهذه الطريقة، يُحسّن ART كفاءة التنفيذ الإجمالية ويُقلّل استهلاك الطاقة، مما يُؤدي إلى تحسين عمر بطارية الأجهزة المحمولة . في الوقت نفسه، يُوفّر ART تنفيذًا أسرع للتطبيقات، وآليات مُحسّنة لتخصيص الذاكرة وجمع البيانات المهملة (GC)، وميزات جديدة لتصحيح أخطاء التطبيقات ، وتحليلًا أكثر دقة لخصائص التطبيقات على مستوى عالٍ. [ 2 ] [ 5 ] [ 6 ]

للحفاظ على التوافق مع الإصدارات السابقة ، يستخدم ART نفس بايت كود الإدخال الخاص بـ Dalvik، والذي يتم توفيره عبر ملفات .dex القياسية كجزء من ملفات APK ، بينما يتم استبدال ملفات .odex بملفات تنفيذية بتنسيق ELF (تنسيق قابل للتنفيذ والربط ). بمجرد تجميع التطبيق باستخدام أداة dex2oat المدمجة في ART ، يتم تشغيله من ملف ELF المُجمَّع؛ ونتيجة لذلك، يُزيل ART العديد من تكاليف تنفيذ التطبيق المرتبطة بتفسير Dalvik وتجميع JIT القائم على التتبع.

في البداية، تمثلت إحدى عيوب تقنية ART في الحاجة إلى وقت إضافي للتجميع عند تثبيت تطبيق، بالإضافة إلى استهلاك التطبيقات مساحة تخزين ثانوية أكبر قليلاً (عادةً ذاكرة فلاش ) لتخزين الكود المُجمَّع. [ 2 ] [ 5 ] [ 6 ] وقد أصبحت عملية التجميع المطولة بتقنية AOT مشكلةً خاصةً مع انتشار التحديثات الأمنية الشهرية، مما أدى إلى حرمان المستخدمين من الوصول إلى نظام التشغيل لفترة طويلة بعد كل تحديث.

ولتحسين ذلك، تم تقديم نهج هجين في نظام أندرويد 7.0 (نوجا). تعمل التطبيقات المثبتة حديثًا باستخدام ترجمة JIT، ويتم تحليل أدائها بواسطة بيئة التشغيل. عندما يكون الجهاز في وضع الخمول ويشحن، تقوم بيئة التشغيل بتنفيذ ترجمة AOT على أكثر أجزاء الكود استخدامًا ("الأكثر استخدامًا"). [ 7 ]

تاريخ

قدّم نظام أندرويد 4.4 "كيت كات" معاينة تقنية لبيئة التشغيل ART كبديل لبيئة Dalvik، التي ظلت الآلة الافتراضية الافتراضية. [ 8 ] [ 9 ] وفي الإصدار الرئيسي اللاحق من أندرويد، أندرويد 5.0 "لولي بوب" ، تم استبدال Dalvik بالكامل ببيئة ART.

حوّل نظام Android 7.0 "Nougat" جهاز ART من نظام AOT خالص إلى حل هجين يجمع بين JIT وAOT، مع تغيير بيئة تشغيل Java من Apache Harmony المتوقفة إلى OpenJDK ، مُقدّماً مُترجم JIT مع خاصية تحليل أداء الكود. [ 10 ] يُكمّل مُترجم JIT مُترجم AOT الخاص بجهاز ART، مما يُساعد على تحسين أداء وقت التشغيل وتوفير مساحة التخزين من خلال تحديد "الكود النشط" (الكود الذي يُستخدم بكثرة، أو يعمل على واجهة المستخدم، أو يؤثر على وقت بدء التشغيل)، والذي يُترجمه مُترجم AOT إلى كود الآلة أثناء خمول الجهاز وشحنه. أما الكود الأقل استخداماً فيعتمد على ترجمة JIT. [ 11 ] [ 12 ]

قلّل نظام Android 9 "Pie" من حجم التخزين الذي تستخدمه ملفات APK من خلال استخدام ملفات بايت كود مضغوطة ، ويمكن تحميل بيانات تحليل الأداء إلى خوادم Google Play لتضمينها مع التطبيقات عند تنزيلها من قِبل مستخدمين لديهم أجهزة مماثلة، مما يُقلل وقت التنزيل من Google Play بنسبة تصل إلى 40%. تسمح ملفات تعريف Google Play السحابية بتحسين التطبيقات عند التثبيت، مما يُساعد على تجنب مشكلات الأداء الأولية الموجودة في إصدارات Android من 7.0 إلى 8.1. [ 13 ]

في يوليو 2021، [ 14 ] تم تقديم مفهوم ملفات تعريف الأساس. ملفات تعريف الأساس هي ملفات تعريف ART تُحدد الطرق والفئات التي يجب أن تخضع لتجميع AOT عند تشغيل التطبيق لأول مرة، وهي متوافقة مع Android 7.0 والإصدارات الأحدث. توفر هذه الملفات وظائف مشابهة لملفات تعريف Google Play السحابية في Android 9 عندما لا تكون متاحة، وتندمج تلقائيًا مع ملفات التعريف السحابية عند توفرها. تُضمّن ملفات تعريف الأساس مع إصدارات مكتبات AndroidX و Jetpack Compose . [ 15 ]

تم تحديث ART في Android 13 بإضافة جامع قمامة جديد (GC) يستخدم استدعاء النظام userfaultfd الخاص بنظام Linux . [ 16 ] [ 17 ] [ 18 ] يقلل هذا التحديث من ضغط الذاكرة، وحجم الكود المُجمَّع، والبطء ، ويمنع خطر إغلاق التطبيقات بسبب نقص الذاكرة أثناء عملية جمع القمامة . [ 18 ] كما تُحسِّن التغييرات الأخرى بدء تشغيل التطبيقات، وتقلل من البطء، وتُحسِّن الأداء. [ 18 ] وبفضل مشروع Mainline، سيتم تحديث ART في Android 12 أيضًا. [ 16 ]

انظر أيضاً

مراجع

  1. "ملاحظة - منصة/فن - جيت في جوجل" . مؤرشف من الأصل في 4 مارس 2023. تم الاطلاع عليه في 25 يونيو 2021 .
  2. 1 2 3 أندريه فروموسانو (1 يوليو 2014). "نظرة فاحصة على بيئة تشغيل أندرويد (ART) في أندرويد L" . أناند تك . مؤرشف من الأصل في 5 يوليو 2014. تم الاطلاع عليه في 5 يوليو 2014 .
  3. بن تشينغ؛ بيل بوزبي (مايو 2010). "مترجم JIT لآلة Dalvik الافتراضية لنظام Android" (ملف PDF) . android-app-developer.co.uk . جوجل . الصفحات 5-14 . مؤرشف من الأصل (ملف PDF) في 6 نوفمبر 2015. تم الاطلاع عليه في 18 مارس 2015 . 
  4. فيل نيكنسون (26 مايو 2010). "مطور جوجل أندرويد يشرح المزيد عن دالفيك وJIT في فرويو" . androidcentral.com . مؤرشف من الأصل في 8 أبريل 2017. تم الاطلاع عليه في 8 يوليو 2014 .
  5. ١ ٢ "مطورون أندرويد: ART وDalvik" . source.android.com . ٩ مارس ٢٠١٥. مؤرشف من الأصل في ١٥ مارس ٢٠١٥. تم الاطلاع عليه في ١٨ مارس ٢٠١٥ .
  6. 1 2 "مطورون أندرويد: تهيئة ART - كيف يعمل ART" . source.android.com . 9 مارس 2015. تم الاطلاع عليه في 18 مارس 2015 .
  7. أماديو، رون (22 أغسطس 2016). "مراجعة نظام أندرويد 7.0 نوجا - أنجز المزيد على هاتفك الذكي الضخم" . آرس تكنيكا . تم الاطلاع عليه في 5 أبريل 2023 .
  8. شون باكلي (6 نوفمبر 2013). "تجربة "ART" في نظام أندرويد كيت كات تُحسّن عمر البطارية وتُسرّع التطبيقات . إنجادجيت . مؤرشف من الأصل بتاريخ 27 يناير 2017. تم الاطلاع عليه بتاريخ 5 يوليو 2014 .
  9. دانيال ب. (7 نوفمبر 2013). "بيئة تشغيل جوجل ART التجريبية في نظام أندرويد كيت كات تُحسّن سرعة تنفيذ التطبيقات إلى الضعف" . phonearena.com . تاريخ الاطلاع: 5 يوليو 2014 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  10. "أندرويد 7.0 للمطورين" . مطورو أندرويد . تم الاطلاع عليه بتاريخ 22 مارس 2021 .
  11. أماديو، رون (22 أغسطس 2016). "مراجعة نظام أندرويد 7.0 نوجا - أنجز المزيد على هاتفك الذكي الضخم" . آرس تكنيكا . تم الاطلاع عليه في 5 أبريل 2023 .
  12. "تنفيذ مُترجم ART الفوري (JIT)" . source.android.com . 22 يناير 2017. مؤرشف من الأصل في 8 أغسطس 2023. تم الاطلاع عليه في 22 يناير 2017 .
  13. أماديو، رون (13 سبتمبر 2018). "مراجعة شاملة لنظام أندرويد 9 باي" . آرس تكنيكا . مؤرشف من الأصل في 30 نوفمبر 2018. تم الاطلاع عليه في 16 أغسطس 2022 .
  14. "ProfileInstaller | Jetpack" . مطورو أندرويد . مؤرشف من الأصل في 8 أغسطس 2023. تم الاطلاع عليه في 5 يوليو 2023 .
  15. سيمينوفا، كاترينا؛ رافيكومار، راهول؛ كريك، كريس (28 يناير 2022). "تحسين أداء التطبيقات باستخدام ملفات تعريف خط الأساس" . مدونة مطوري أندرويد . مؤرشف من الأصل في 8 أغسطس 2023. تم الاطلاع عليه في 5 يوليو 2023 .
  16. 1 2 جيدرا، لوكيش (12 مايو 2022)، ما الجديد في أداء التطبيقات ، مؤرشف من الأصل في 16 أغسطس 2022 ، تم استرجاعه في 16 أغسطس 2022
  17. جيدرا، لوكيش؛ بوهم، هانز-ج.؛ فرنانديز، جويل (12 أكتوبر 2020). "استخدام استدعاء النظام Userfaultfd في لينكس في مرحلة ضغط عملية جمع البيانات المهملة" . سلسلة منشورات الدفاع . مؤرشف من الأصل في 16 أغسطس 2022. تم الاسترجاع في 16 أغسطس 2022 .
  18. ١ ٢ ٣ "أندرويد ١٣ متوفر الآن في مشروع أندرويد مفتوح المصدر!" . مدونة مطوري أندرويد . مؤرشف من الأصل بتاريخ ١٥ أغسطس ٢٠٢٢. تم الاطلاع عليه بتاريخ ١٦ أغسطس ٢٠٢٢ .