خفض تكلفة البيانات للمليارات

يمكن أن تكلف خطط البيانات في بعض البلدان ما يزيد عن 10% من الدخل الشهري للمستخدم العادي. يعني ذلك أنّ تقليل حجم تنزيل التطبيق والسماح للمستخدم بالتحكّم في كيفية استخدام التطبيق للبيانات قد يحقِّق فائدة كبيرة وملموسة للعديد من المستخدمين. يساعد تقليل حجم التنزيل أيضًا في توفير مساحة في وحدة التخزين الداخلية، وهي مرجع نادر في بعض الأجهزة.

ويمكنك الاطّلاع هنا على بعض الاستراتيجيات للمساعدة في تحسين كمية البيانات التي يستخدمها تطبيقك، سواء على الشبكة أو في وحدة التخزين الداخلية.

تقليل حجم التطبيق

إنّ تقليل حجم التطبيق هو إحدى الطرق الأساسية التي يمكنك من خلالها مساعدة المستخدمين في استهلاك قدر أقل من البيانات، من حيث كلّ من بيانات الشبكة ووحدة التخزين الداخلية. يوضِّح هذا القسم عدة طرق لتقليل حجم التطبيق.

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

  • غالبًا ما تشكّل مواد العرض الرسومية الجزء الأكبر من إجمالي حجم حزمة APK. يمكن أن يؤدي تحسين هذه النتائج إلى تقليل عمليات التنزيل، ما يؤدي إلى زيادة سرعة التثبيت للمستخدمين.
  • بالنسبة إلى الأصول الرسومية مثل الرموز، استخدِم تنسيق الرسومات الموجّهة التي يمكن تغيير حجمها (SVG). تكون صور SVG صغيرة الحجم مقارنةً بالرسومات النقطية ويمكن عرضها في وقت التشغيل بأي درجة دقة. توفّر Android Support Library عملية تنفيذ متوافقة مع الأنظمة القديمة لموارد المتجهات في الإصدار Android 2.1 (المستوى 7 من واجهة برمجة التطبيقات). ابدأ باستخدام المتجهات باستخدام مشاركة Medium هذه.
  • بالنسبة إلى الصور غير المتجهة، مثل الصور، استخدِم WebP لتقليل أوقات تحميل الصور وتوفير معدّل نقل البيانات للشبكة. وقد ثبت أنّ تنسيق WebP يؤدي إلى حجم ملفات أصغر من الملفات المشابهة بتنسيق PNG وJPG، وذلك بجودة الصورة نفسها على الأقل. حتى في إعدادات فقدان البيانات، يمكن أن ينتج تنسيق WebP صورة مطابقة تقريبًا للصورة الأصلية. أتاح Android استخدام تنسيق WebP مع فقدان البيانات منذ نظام التشغيل Android 4.0 (المستوى 14 لواجهة برمجة التطبيقات: آيس كريم ساندويتش) وإمكانية استخدام تنسيق WebP بدون فقدان البيانات منذ إصدار Android 4.2 (المستوى 17 من واجهة برمجة التطبيقات: Jelly Bean).
  • إذا كان لديك العديد من الصور الكبيرة ذات الكثافات المتعددة، ننصحك باستخدام التوافق مع ملفات APK متعددة لتقسيم ملف APK حسب الكثافة. ويؤدي ذلك إلى إنشاء إصدارات ذات كثافات محدّدة، ما يعني أنّ المستخدمين الذين لديهم أجهزة منخفضة الكثافة لن عليهم تحمل عقوبة تنزيل مواد العرض العالية الكثافة غير المستخدَمة.
  • لمزيد من المعلومات حول تقليل حجم حزمة APK، يُرجى الاطّلاع على تقليل حجم حزمة APK وتقليص حجم الرمز والموارد. بالإضافة إلى ذلك، يمكنك العثور على دليل مفصّل حول تقليل حجم حزمة APK من خلال هذه السلسلة من المشاركات على Medium.

تقليل حجم الرمز

  • تضيف كل مكتبة في مشروع Android إلى حزمة APK يُحتمل أن تكون غير مستخدمة. يُرجى توخّي الحذر خاصةً عند استخدام المكتبات الخارجية، لأنّ بعض المكتبات ليست مصمّمة للاستخدام في التطبيقات المتوافقة مع الأجهزة الجوّالة. احرص على أن تكون المكتبات التي يستخدمها تطبيقك محسَّنة للاستخدام على الأجهزة الجوّالة.
  • ننصحك بتحسين الرمز البرمجي المجمَّع باستخدام أداة مثل ProGuard. يحدّد ProGuard الرمز الذي لا يتم استخدامه ويزيله من حزمة APK. بالإضافة إلى ذلك، فعِّل ميزة تقليص الموارد في وقت الإصدار من خلال ضبط minifyEnabled=true، shrinkResources=true في build.gradle، ما يؤدي تلقائيًا إلى إزالة الموارد غير المستخدَمة من حزمة APK.
  • عند استخدام "خدمات Google Play"، يجب تضمين واجهات برمجة التطبيقات اللازمة بشكل انتقائي في حزمة APK.
  • لمزيد من المعلومات حول تقليل حجم الرمز في حزمة APK، يُرجى الاطّلاع على تدريب Android حول كيفية تجنُّب أُطر عمل إضافة الاعتمادية.

السماح بنقل التطبيق إلى وحدة تخزين خارجية (SD)

  • غالبًا ما تتوفّر على الأجهزة منخفضة التكلفة مساحة تخزين صغيرة على الجهاز. ويمكن للمستخدمين توسيع نطاق هذه المدة باستخدام بطاقات SD، ولكن يجب أن تذكر التطبيقات صراحةً أنّها تتيح التثبيت على وحدة تخزين خارجية قبل أن يتمكّن المستخدمون من نقلها.
  • يمكنك السماح بتثبيت تطبيقك على وحدة تخزين خارجية باستخدام علامة android:installLocation في ملف AndroidManifest.xml. للحصول على مزيد من المعلومات حول تفعيل نقل تطبيقك إلى وحدة تخزين خارجية، يمكنك الاطّلاع على دليل Android حول موقع تثبيت التطبيقات.

تقليل استخدام قرص التطبيق بعد تثبيت التطبيق

  • في حال التقليل من استهلاك القرص، تقل احتمالية إلغاء المستخدمين لإلغاء تثبيت التطبيق عندما تكون المساحة الخالية في الجهاز منخفضة. من المهم تطبيق حدود حول ذاكرات التخزين المؤقت، لأنّ هذا يمنع زيادة حجم استخدام القرص في تطبيقك إلى أجل غير مسمى. تأكّد من وضع البيانات المخزّنة مؤقتًا في getCacheDir()، لأنّ النظام يمكنه حذف الملفات الموضوعة هنا حسب الحاجة، حتى لا تظهر كمساحة تخزين مخصّصة للتطبيق.

إتاحة إمكانية ضبط استخدام الشبكة

يتضمّن نظام Android الأساسي عددًا من الطرق التي يمكنك من خلالها منح المستخدمين إمكانية التحكّم في استخدام تطبيقك للشبكة، وتحسين ذلك وفقًا لاحتياجاتهم الخاصة. على سبيل المثال، عند الاستخدام لأول مرة، يمكن لتطبيقك إرشاد المستخدم من خلال مجموعة متنوعة من الإعدادات المتعلقة بالشبكة. ويمكنك أيضًا توفير شاشة إعدادات الشبكة المفضَّلة من خارج التطبيق.

توفير تجارب الإعداد لخيارات المستخدمين للشبكة

  • نتلقّى التطبيقات التي تتيح للمستخدمين تقليل استخدام البيانات بشكل جيد، حتى إذا كانت تتضمّن متطلبات بيانات ضخمة. إذا كان تطبيقك يستخدم قدرًا كبيرًا من معدل نقل البيانات (على سبيل المثال، تطبيقات بث الفيديو)، يمكنك توفير تجربة إعداد للمستخدمين لضبط استخدام الشبكة. على سبيل المثال، يمكنك السماح للمستخدم بفرض عمليات بث الفيديو بمعدل نقل بيانات أقل على الشبكات الخلوية.
  • هناك إعدادات إضافية للمستخدمين تتيح لهم التحكم في مزامنة البيانات والجلب المسبق وسلوك استخدام الشبكة (مثل الجلب المسبق لكل فئات الأخبار المميزة بنجمة على Wi-Fi فقط)، كما تساعد المستخدمين على تخصيص طريقة عمل تطبيقك وفقًا لاحتياجاتهم.
  • لمزيد من المعلومات حول إدارة استخدام الشبكة، يُرجى الاطّلاع على تدريب Android حول إدارة استخدام الشبكة.

قدم شاشة إعدادات الشبكة

  • يمكنك الانتقال إلى إعدادات الشبكة في التطبيق من خارج التطبيق باستخدام شاشة إعدادات الشبكة المفضّلة. يمكنك استدعاء هذه الشاشة من شاشة إعدادات النظام أو شاشة استخدام بيانات النظام.
  • لتوفير شاشة إعدادات الشبكة المفضّلة التي يمكن للمستخدمين الوصول إليها من داخل تطبيقك ومن إعدادات النظام أيضًا، يجب أن يتضمّن تطبيقك نشاطًا يتيح إجراء ACTION_MANAGE_NETWORK_USAGE.
  • لمزيد من المعلومات حول إضافة شاشة إعدادات الشبكة المفضّلة، يُرجى الاطّلاع على تدريب Android حول تنفيذ نشاط الإعدادات المفضّلة.

مراجع إضافية

لمعرفة المزيد من المعلومات عن هذا الموضوع، اطّلِع على المراجع الإضافية التالية:

مشاركات المدونة