بعد تفعيل ميزة تحسين التطبيق، تأكَّد من أنّ تطبيقك يعمل على النحو المطلوب وأنّ إعدادات R8 تحقّق ما تتوقّعه. في ما يلي الخطوات العامة:
- اختبار تجارب المستخدمين الرئيسية (CUJ) في تطبيقك: على سبيل المثال، تأكَّد مما يلي: يمكن للمستخدمين تسجيل الدخول وتنفيذ مهام مهمة أخرى.
- قياس المكاسب في الأداء باستخدام مقاييس الأداء: قارِن أداء تطبيقك قبل تفعيل ميزة "تحسين التطبيق" وبعد تفعيلها.
إذا واجهت مشاكل، يوفّر R8 أدوات لمساعدتك في تحديد المشاكل وحلّها. إذا لم تتمكّن من حلّ مشكلة في R8، يمكنك إبلاغنا بخطأ.
نصائح عامة
غالبًا ما تكون المشاكل المتعلّقة بـ R8 فريدة لتطبيقك، ولكن إليك بعض النصائح العامة ل تسهيل تصحيح الأخطاء:
- إيقاف التشويش مؤقتًا: يعمل R8 على تشويش الرموز البرمجية كجزء من عملية
التحسين. لا يتسبب التشويش عادةً في حدوث أخطاء، ولكنه
يجعل تصحيح الأخطاء أكثر صعوبة. أضِف علامتَي الترميز
‑dontobfuscate
و‑dontoptimize
إلى ملف قواعد الاحتفاظ لمساعدتك في تحديد الرمز البرمجي الذي يتسبب في حدوث المشكلة. التحقّق من الانعكاس: إذا واجهت استثناء ما مِن عنصر مماثل، مثل
Caused by: java.util.NoSuchElementException: Collection contains no element matching the predicate in the stack trace
،يشير الاستثناء عادةً إلى أنّ الحقل المعنيّ يتم استخدامه من خلال الاستكشاف وعليك إضافة قاعدة الاحتفاظ.
فحص الرمز الثنائي: تتطلّب معظم مشاكل R8 فحص الرمز الثنائي، وهو ما يمكنك تنفيذه باستخدام أدوات مثل أداة تحليل APK.
التحقّق من القواعد التي يتم تطبيقها
لعرض تقرير كامل عن جميع القواعد التي تطبّقها أداة R8 عند إنشاء
مشروعك، أدرِج ما يلي في ملف proguard‑rules.pro
الخاص بوحدة تطبيقك:
-printconfiguration <output-dir>/<report-name>.txt
يمكنك تحديد أي مسار واسم ملف. في حال عدم تحديد مسار أو اسم ملف،يُخرج R8 تقرير القواعد في <module-name>/build/outputs/mapping/<build-type>/configuration.txt
.
فهم سبب الاحتفاظ بالرمز
إذا ظهرت لك رموز تم الاحتفاظ بها كنت تتوقع إزالتها، استخدِم خيار الإعداد
‑whyareyoukeeping
للمساعدة في فهم سبب
الاحتفاظ بها. تُخرج أداة R8 مسارًا من الرمز المحفوظ إلى إحدى نقاط
الدخول في تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات
‑whyareyoukeeping
في دليل Proguard.
استرداد تسلسل استدعاء الدوال البرمجية الأصلي
يتم تغيير الرمز الذي يعالجه R8 بطرق مختلفة لكي لا يشير تتبع تسلسل استدعاء الدوال البرمجية مجددًا إلى الرمز الأصلي. على سبيل المثال، يمكن أن تتغيّر أرقام الأسطر وأسماء الفئات والطُرق. لاسترداد تتبع تسلسل استدعاء الدوال البرمجية الأصلي، يقدّم R8 أداة سطر الأوامر retrace، والتي تكون مضمّنة في حزمة أدوات سطر الأوامر.
لاستخدام ميزة "تتبُّع تسلسل استدعاء الدوال البرمجية"، عليك تزويدها بملف تعيين وملف تتبُّع تسلسل استدعاء الدوال البرمجية. يتم تجميع ملف الربط
، الذي يُسمى mapping.txt
، تلقائيًا مع "حِزمة تطبيق Android
" (AAB). لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات إعادة التتبّع ومقالة "مركز مساعدة Play Console" حول كيفية إزالة تشويش عمليات تتبّع أثر تسلسل استدعاء الدوال البرمجية المتعلّقة بتعطُّل التطبيق.