بيئة تشغيل Android وDalvik

"وقت تشغيل Android" (ART) هو بيئة التشغيل المُدارة التي تستخدمها التطبيقات وبعض الأنظمة Google على Android. وقد تم في الأصل إنشاء لعبة ART وسابقتها دالفيك خصيصًا لمشروع Android. تقنية ART حيث تقوم بيئة التشغيل بتنفيذ Dalvik تنسيق (DEX) التنفيذي ومواصفات رمز بايت DEX.

إنّ ART وDalvik هما بيئة تشغيل متوافقة تستخدمان رمز بايت DEX، وبالتالي التي تم تطويرها من أجل دالفيك عند التشغيل مع ART. ومع ذلك، قد لا تكون والتقنيات التي تعمل على دالفيك لا تعمل على ART. للحصول على معلومات عن بأهم المشكلات، فراجع التحقق سلوك التطبيق في وقت تشغيل Android (ART).

ميزات ART

في ما يلي بعض الميزات الرئيسية التي ينفذها ART.

مجموعة فيديوهات تعرض لمحة قديمة

يقدّم ART ميزة تجميع النماذج في وقت مبكر (AOT)، ما يمكن أن يحسّن التطبيق. أدائه. توفّر خدمة ART أيضًا ميزة التحقّق في وقت التثبيت أكثر صرامة من Dalvik.

أثناء التثبيت، تجمع أداة ART التطبيقات باستخدام الجهاز dex2oat. تقبل هذه الأداة ملفات DEX كإدخال وتنشئ تطبيق مجمّع قابل للتنفيذ على الجهاز المستهدف. يجب أن تكون الأداة قادرة على تجميع جميع ملفات DEX الصالحة دون صعوبة. ومع ذلك، قد لا تتمكن بعد المعالجة تنتج عن الأدوات ملفات غير صالحة قد يتحمّلها Dalvik ولكن لا يمكن التي جمعتها ART. لمزيد من المعلومات، راجع العناوين مشاكل جمع القمامة:

تحسين عملية جمع البيانات المهملة

تستهلك عملية جمع البيانات المهملة (GC) الكثير من الموارد، ما قد يؤثر في أداء التطبيق، مما يؤدي إلى عرض متقطع، وضعف استجابة واجهة المستخدم، ومشاكل أخرى. مشروع ART يحسن التخلص من القمامة البيانات بعدة طرق وهي:

  • تصميم متزامن في الغالب مع إيقاف مؤقت للبيانات المهملة
  • النسخ المتزامن لتقليل استخدام الذاكرة في الخلفية والتقسيم
  • إنّ مدة الإيقاف المؤقت لتجميع البيانات المهملة مستقلة عن حجم الذاكرة
  • جهاز تجميع حاصل على إجمالي وقت أقل لتجميع البيانات في حالة التنظيف الخاصة العناصر القصيرة الأجل التي تم تخصيصها مؤخرًا
  • تحسين بيئة عملية جمع القمامة، وصنع كيفية معالجة البيانات في الوقت نفسه المجموعات في الوقت المناسب، مما يجعل GC_FOR_ALLOC أحداث نادرة جدًا في حالات الاستخدام العادية

تحسينات التطوير وتصحيح الأخطاء

تقدِّم أداة ART عددًا من الميزات لتحسين تطوير التطبيقات وتصحيح الأخطاء.

دعم محلّل أخذ العينات

في السابق، كان المطوّرون يستخدمون منصة Traceview (مصممة لتتبع وتنفيذها) باعتبارها محلّل. وعلى الرغم من أن Traceview تقدم معلومات مفيدة، انحراف نتائجه على دالفيك بسبب النفقات العامة للاتصال لكل طريقة، تؤثر بشكل ملحوظ في أداء وقت التشغيل

يضيف ART الدعم لمحلل عينات مخصص لا يحتوي على هذه والقيود. يوفّر ذلك عرضًا أكثر دقة لتنفيذ التطبيق بدون حركة بطيئة كبيرة. تمت إضافة إتاحة أخذ العينات إلى Traceview لـ Dalvik في إصدار KitKat.

توفير المزيد من ميزات تصحيح الأخطاء

يدعم ART عددًا من خيارات تصحيح الأخطاء الجديدة، لا سيما في وضع العرض الوظائف المتعلقة بجمع البيانات غير المرغوب فيها. على سبيل المثال، يمكنك إجراء ما يلي:

  • اطّلِع على عمليات القفل التي يتم الاحتفاظ بها في عمليات تتبُّع تسلسل استدعاء الدوال البرمجية، ثم انتقِل إلى سلسلة المحادثات التي يحمل قفلاً.
  • وللسؤال عن عدد الحالات المباشرة لفئة معيّنة، اطلب الاطّلاع على الحالات، ومعرفة المراجع التي تُبقي العنصر نشطًا.
  • فلترة الأحداث (مثل نقطة الإيقاف) لمثيل محدّد
  • شاهد القيمة التي تعرضها طريقة عند الخروج (باستخدام "method-exit" الأحداث).
  • يمكنك ضبط نقطة مراقبة الحقل لتعليق تنفيذ برنامج عندما تكون الوصول إلى الحقل و/أو تعديله.

تحسين تفاصيل التشخيص في الاستثناءات وتقارير الأعطال

يوفِّر لك ART أكبر قدر ممكن من السياق والتفاصيل عند استثناءات وقت التشغيل حدوثها. يوفّر ART تفاصيل الاستثناء الموسّعة لـ java.lang.ClassCastException، java.lang.ClassNotFoundException, وjava.lang.NullPointerException. (قدَّمت الإصدارات اللاحقة من Dalvik تفاصيل الاستثناء الموسّع للنطاق java.lang.ArrayIndexOutOfBoundsException وjava.lang.ArrayStoreException، والتي تشمل الآن حجم الصفيفة والإزاحة الخارجية، وART تفعل ذلك أيضًا).

على سبيل المثال: java.lang.NullPointerException يعرض معلومات حول ما كان التطبيق يحاول تنفيذه باستخدام المؤشر الفارغ، مثل الحقل الذي يحاول التطبيق الكتابة إليه، أو الطريقة التي كان يحاول الاتصال. وإليك بعض الأمثلة:

java.lang.NullPointerException: Attempt to write to field 'int
android.accessibilityservice.AccessibilityServiceInfo.flags' on a null object
reference
java.lang.NullPointerException: Attempt to invoke virtual method
'java.lang.String java.lang.Object.toString()' on a null object reference

وتوفّر أداة ART أيضًا معلومات سياقية محسّنة في تقارير أعطال التطبيقات المدمجة مع المحتوى، من خلال تضمين كل من معلومات Java ومعلومات المكدس الأصلي.

الإبلاغ عن المشاكل

في حال مواجهة أي مشاكل لا تتعلق بمشاكل في مبادرة أخبار Google للتطبيق، يُرجى الإبلاغ عن ذلك. من خلال برنامج Android مفتوح المصدر أداة تتبُّع مشاكل المشروع تضمين adb bugreport ورابط إلى التطبيق في متجر Google Play إذا كان متوفرًا. وإن أمكن، أرفِق حزمة APK تعيد إظهار المشكلة.