تحسين رمز DEX

تحسين رموز DEX هو أحد نتائج "مؤشرات Android الحيوية" التي تساعدك في مراقبة جودة تجميع تطبيقك وحجمه وأدائه وتحسينها. يؤدي تحسين الرموز البرمجية وتشويشها باستخدام R8 أو أدوات بديلة (مثل أدوات التحسين المتوافقة مع ProGuard أو أدوات المعالجة اللاحقة الثانوية لملفات DEX) إلى تقليل حجم ملف DEX في تطبيقك وتحسين أداء وقت التشغيل وتقليل مساحة الذاكرة التي يشغلها.

تحتوي ملفات DEX، أو Dalvik Executable، على الرموز المجمَّعة المستخدَمة لتشغيل تطبيقك، وتشمل عادةً رموز Java وKotlin، على عكس رموز C++ المجمَّعة أو ملفات .so.

تُبلِغ "مؤشرات Android الحيوية" عن مقاييس تحسين رموز DEX لجميع التطبيقات والألعاب، ولكنها لا تفرض حدودًا دنيا إلا على التطبيقات والألعاب التي تستوفي متطلبات حجم معيّنة.

الكشف عن المشكلة

يمكن أن تنبّهك "مؤشرات Android الحيوية" عندما تكون مستويات تحسين رمز DEX في تطبيقك منخفضة. ويشمل ذلك إخفاء مفاتيح فك التشفير والتقليص والتحسين للتطبيقات والألعاب التي تستخدم R8. بالنسبة إلى التطبيقات التي لا تستخدم R8، تحاول "مؤشرات Android الحيوية" التحقّق من معدّلات التحسين والتقليص والتشويش، ولكنها تعود إلى إحصاءات التشويش كبديل عند الضرورة.

مراقبة حالة التحسين

يمكن أن تساعد "مؤشرات Android الحيوية" في تحسين أداء تطبيقك من خلال تنبيهك عبر Play Console عندما لا يستوفي تطبيقك الحد الأدنى من النسب المحدّدة لتحسين الرموز البرمجية. للحصول على تعريفات تفصيلية حول التصغير والتحسين والتشويش، يُرجى الاطّلاع على استخدام أداة تحليل إعدادات R8.

بالنسبة إلى التطبيقات التي تم إنشاؤها باستخدام أحدث حزمة تصحيح للإصدار 8.10 أو الإصدارات الأحدث من "مكوّن Android الإضافي في Gradle"، يتم استخراج هذه النسب المئوية من ملف r8.json المضمّن.

في الإصدارات الأقدم من "مكوّن Android الإضافي في Gradle" أو في حال عدم تضمين الملف r8.json، يتم احتساب النسب المئوية من الملف mapping.txt إذا كان مضمّنًا، أو باستخدام إحصاءات DEX إذا لم يكن ملف الربط متاحًا.

بالنسبة إلى التطبيقات التي تم تحسينها باستخدام أداة تحسين بديلة للرموز البرمجية، تجري "مؤشرات Android الحيوية" تحليلاً لتقدير النسبة المئوية للفئات والطُرق والحقول التي تم تشويشها في حِزمة التطبيق.

الحد الأدنى لإجمالي حجم ملفات DEX

على الرغم من أنّ "مؤشرات Android الحيوية" تحتسب مقاييس تحسين الرموز لجميع التطبيقات، لن تتلقّى تنبيهات إلا إذا استوفت حزمة تطبيقك متطلبات إجمالي حجم DEX التالية:

  • التطبيقات: تحتوي الحِزمة على 10 ميغابايت على الأقل من رمز DEX الذي يتم قياسه كحجم غير مضغوط
  • الألعاب: تحتوي الحِزمة على 50 ميغابايت على الأقل من رموز DEX التي يتم قياسها كحجم غير مضغوط

تعرض "مؤشرات Android الحيوية" حجم DEX لتطبيقك، ولكن يمكنك أيضًا قياس هذا الحجم محليًا باستخدام سطر الأوامر:

  unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'

لفحص البيانات الوصفية الدقيقة التي تستخدمها "مؤشرات Android الحيوية" لاحتساب نتائجك، استخرِج ملف r8.json من حِزمة تطبيقك باتّباع الخطوات التالية:

unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json