تتضمّن هذه الصفحة معلومات حول العثور على تسرّبات الذاكرة وتفعيلها، وهي معلومات خاصة بالتنسيقات المستندة إلى طريقة العرض. للاطّلاع على المعلومات الأساسية حول التقاط لقطة لأجزاء من الذاكرة و تحليلها، يُرجى الرجوع إلى مقالة التقاط لقطة لأجزاء من الذاكرة.
العثور على تسرّبات الذاكرة
للفلترة بسرعة حسب الفئات التي قد تكون مرتبطة بتسرّبات الذاكرة، افتح القائمة المنسدلة للفئات واختَر عرض تسرّبات الأنشطة/القصاصات البرمجية. يعرض استوديو Android الفئات التي يعتقد أنّها تشير إلى تسرّبات الذاكرة لمثيلَي Activity و Fragment في تطبيقك. تشمل أنواع البيانات التي يعرضها الفلتر ما يلي:
- مثيلات
Activityالتي تم إتلافها ولكن لا يزال يتم الرجوع إليها. Fragmentمثيلات التي ليس لديهاFragmentManagerصالح ولكن لا يزال يتم الرجوع إليها.
يُرجى العِلم أنّ الفلتر قد يعرض نتائج إيجابية خاطئة في الحالات التالية:
- تم إنشاء
Fragmentولكن لم يتم استخدامه بعد. - يتم تخزين
Fragmentمؤقتًا ولكن ليس كجزء منFragmentTransaction.
للبحث عن تسرّبات الذاكرة يدويًا بشكل أكبر، تصفَّح قوائم الفئات والمثيلات للعثور على العناصر التي تحتوي على الحجم المحتفظ به الكبير. ابحث عن تسرّبات الذاكرة الناتجة عن أي مما يلي:
- المراجع الطويلة الأمد إلى
Activity،Context،View،Drawable، وغيرها من العناصر التي قد تحتوي على مرجع إلى حاويةActivityأوContext. - الفئات الداخلية غير الثابتة، مثل
Runnable، التي يمكنها الاحتفاظ بمثيلActivity. - التخزين المؤقت الذي يحتفظ بالعناصر لفترة أطول من اللازم.
عند العثور على تسرّبات محتملة للذاكرة، استخدِم علامتَي التبويب الحقول والمراجع في تفاصيل المثيل للانتقال إلى المثيل أو سطر رمز المصدر الذي يهمّك.
تفعيل تسرّبات الذاكرة للاختبار
لتفعيل تسرّبات الذاكرة لاختبارها في تطبيقك، يمكنك تفعيل التسرّبات بإحدى الطرق التالية:
- أدرِ الجهاز من الوضع العمودي إلى الوضع الأفقي ثم أعده إلى الوضع العمودي عدة مرات أثناء وجودك في حالات نشاط مختلفة. يمكن أن يؤدي تدوير الجهاز غالبًا إلى تسرّب تطبيق
لمثيل
Activity،Context، أوViewلأنّ النظام يعيد إنشاءActivity، وإذا كان تطبيقك يحتفظ بمرجع إلى أحد هذه المثيلات في مكان آخر، لا يمكن للنظام جمع البيانات غير الضرورية. - بدِّل بين تطبيقك وتطبيق آخر أثناء وجودك في حالات نشاط مختلفة. على سبيل المثال، انتقِل إلى الشاشة الرئيسية، ثم ارجع إلى تطبيقك.