تعد الذاكرة موردًا قيّمًا في أي بيئة تطوير برامج، ولكنها أكثر قيمة في نظام تشغيل الأجهزة الجوّالة حيث تكون الذاكرة الفعلية مقيَّدة في كثير من الأحيان. وينطبق ذلك بشكل خاص على الأجهزة ذات الذاكرة المنخفضة الذاكرة التي يشيع استخدامها مع نظام التشغيل Android (إصدار Go). هناك عدة طرق للمساعدة في تحسين الذاكرة في تطبيقك للمساعدة في العمل بسلاسة في هذه البيئات.
أفضل الممارسات
إصدار ذاكرة التخزين المؤقت
قد لا تكون هناك ذاكرة كافية لاستمرار العمليات في الخلفية كما تفعل في البيئة العادية. في هذه الحالة، يمكنك استخدام
onTrimMemory()
لقطع الذاكرة غير الضرورية من عملية تطبيقك. لتحديد مستوى القطع الحالي لتطبيقك بشكل أفضل، استخدِم
ActivityManager.getMyMemoryState(RunningAppProcessInfo)
وحسِّن أي موارد غير ضرورية أو اقتطاعها. على سبيل المثال، يمكنك قطع الاستخدام غير الضروري للذاكرة من التعبيرات أو البحث أو عرض ذاكرة التخزين المؤقت أو الإضافات القابلة للفتح، وذلك لتقليل عدد المرات التي يواجه فيها تطبيقك أعطالاً أو أخطاء ANR بسبب انخفاض الذاكرة.
جدولة المهام
يمكن أن تؤدي الجدولة المتزامنة إلى تنفيذ عمليات متعددة تستهلك قدرًا كبيرًا من الذاكرة في الوقت نفسه، ما يؤدي إلى منافسة على الموارد التي تتجاوز الحد الأقصى لاستخدام الذاكرة الذي تم تطبيقه على أحد التطبيقات. حاوِل تخصيص الموارد بشكلٍ مناسب عن طريق فصل العمليات إلى مهام تستهلك قدرًا كبيرًا من وحدات المعالجة المركزية (CPU) والمهام ذات وقت الاستجابة السريع على مجموعة سلاسل التعليمات المناسبة للتشغيل على الأجهزة التي قد تواجه قيودًا مختلفة في الموارد.
تسرُّب الذاكرة
تتوفّر أدوات مختلفة، مثل Memory Profiler في Android Studio وPerfetto على وجه التحديد، للمساعدة في العثور على تسرب الذاكرة داخل التطبيق والحد منه. ننصحك بشدة باستخدام هذه الأدوات لتحديد المشاكل المحتملة في الذاكرة وإصلاحها للسماح بتشغيل المكونات الأخرى لتطبيقك بدون ضغط إضافي على النظام.
نصائح أخرى
- تستهلك الصور الكبيرة أو العناصر القابلة للرسم المزيد من الذاكرة في التطبيقات. يمكنك تحديد وتحسين الصور النقطية الكبيرة أو ذات الألوان الكاملة لتقليل استخدام الذاكرة.
- جرِّب تحديد خيارات أخرى لملفات GIF في تطبيقك عند إنشاء ملفات لنظام التشغيل Android (الإصدار Go) لأنّ ملفات GIF تستهلك الكثير من الذاكرة.
- يمكنك تقليل أحجام ملفات PNG بدون فقدان جودة الصور باستخدام أدوات مثل WebP وpngcrush وpngquant. يمكن لكل هذه الأدوات تقليل حجم ملف PNG مع الحفاظ على جودة الصورة الإدراكية.
- يمكن لأداة aapt تحسين موارد الصور الموضوعة في
res/drawable/
باستخدام ضغط بدون فقدان البيانات أثناء عملية الإنشاء. على سبيل المثال، يمكن لأداة aapt تحويل ملف PNG ألوان حقيقي لا يتطلب أكثر من 256 لونًا إلى ملف PNG 8 بت باستخدام لوحة ألوان. ينتج عن ذلك صورة ذات جودة متساوية، ولكن مع صغر في أثر الذاكرة.