تقليل حجم تطبيقك الفوري

تحذير: لن تكون "تطبيقات Google Play الفورية" متاحة بعد الآن. اعتبارًا من ديسمبر 2025، لن يكون بإمكانك نشر التطبيقات الفورية من خلال Google Play، كما أنّ جميع واجهات برمجة التطبيقات الفورية في "خدمات Google Play" ستتوقف عن العمل. لن يعرض Play "التطبيقات الفورية" للمستخدمين بعد الآن باستخدام أي آلية.

نُجري هذا التغيير استنادًا إلى ملاحظات المطوّرين واستثماراتنا المستمرة لتحسين المنظومة المتكاملة منذ طرح ميزة "تطبيقات Google Play الفورية".

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

توفّر "تطبيقات Google Play الفورية" تجارب غنية ومحلية بنقرة واحدة على رابط ويب. يمكن للمستخدمين تجربة تطبيقك بدون تثبيته مسبقًا، ما يتيح مستوى أعلى من التفاعل وبجودة أفضل. ولكن لكي يتم تحميل تطبيقك الفوري بالسرعة نفسها التي يتم بها تحميل صفحة ويب عادية على الأجهزة الجوّالة، عليك إنشاء تطبيق فوري منظَّم جيدًا وفعّال. وكلما كان حجم الرمز الثنائي لتطبيقك الفوري أصغر، زادت سرعة تحميله وتحسّنت تجربة المستخدم.

يوضّح هذا المستند أفضل الممارسات لإدارة بنية تطبيقك وحجم ملفاته الثنائية من أجل توفير تجربة سلسة للتطبيق الفوري. يمكنك تطبيق هذه الممارسات نفسها للاستفادة من تطبيقك القابل للتثبيت أيضًا.

إعادة تصميم التطبيق إلى وحدات ميزات متعدّدة

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

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

أفضل الممارسات

عند إعادة تصميم تطبيقك، يُرجى مراعاة أفضل الممارسات التالية:

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

تعديل موارد التطبيق

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

تقليل حجم ملفات الصور

يمكنك تقليل الحجم الإجمالي للعناصر القابلة للرسم في تطبيقك بشكل كبير من خلال استخدام تنسيق الملفات WebP بدلاً من PNG. توفّر "تطبيقات Google Play الفورية" توافقًا كاملاً مع WebP، بما في ذلك الشفافية والضغط بدون فقدان أي تفاصيل، وبالتالي تظل جودة الصورة كما هي.

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

إزالة اللغات غير المستخدَمة

إذا كان تطبيقك يتيح استخدام لغات متعددة، حاوِل تقليل عدد الموارد المترجمة قدر الإمكان. تكون هذه الخطوة مفيدة بشكل خاص إذا كنت تستخدم مكتبة "توافق التطبيق"، مثل android.support.v7.appcompat. تتضمّن هذه المكتبة رسائل بلغات عديدة، وقد لا يدعم تطبيقك بعضها.

لمزيد من المعلومات، اطّلِع على كيفية إزالة الموارد البديلة غير المستخدَمة، خاصةً اللغات غير المستخدَمة.

إزالة الملفات الإضافية

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

  1. اضغط على Control+Alt+Shift+I (Command+Alt+Shift+I على نظام التشغيل Mac).
  2. في مربّع الحوار الذي يظهر، اكتب "unused resources".
  3. اختَر الخيار الموارد غير المستخدَمة لبدء عملية فحص استخدام الموارد.

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

إزالة المكتبات غير المستخدَمة

مع توسّع نطاق التطبيق، يمكن أن يتضمّن عددًا كبيرًا من التبعيات، خاصةً أحد الأنواع التالية:

  • المكتبات المجمّعة من رموز برمجية أصلية: هي المكتبات التي تحتوي على رموز برمجية أصلية لا يشغّلها تطبيقك الفوري مطلقًا.
  • التبعيات غير المباشرة: هي المكتبات التي تعتمد عليها المكتبات التي تم استيرادها في تطبيقك.

يتضمّن "استوديو Android" العديد من الأدوات المفيدة لتحديد أي تبعيات غير ضرورية في مشروع تطبيقك، وهي:

المكتبات الخارجية

يتضمّن عرض المشروع في "استوديو Android" قسم المكتبات الخارجية.

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

أداة تحليل حِزم APK

يمكنك استخدام أداة محلّل حِزم APK لمقارنة الإصدارات المختلفة، بما في ذلك إصدارات التطبيقات الفورية.

بعد تحديد المكتبات التي لا يحتاجها تطبيقك، استبعِدها من خلال إضافة أسطر مشابهة لما يلي إلى ملف الإصدار في Gradle:

<feature_module>/build.gradle

Groovy

dependencies {
    implementation('some-important-but-large-library') {
        exclude group: 'com.example.imgtools', module: 'native'
    }
}

Kotlin

dependencies {
    implementation('some-important-but-large-library') {
        exclude(group = "com.example.imgtools", module = "native")
    }
}

لمزيد من المعلومات حول تقليل الحجم الإجمالي لاستيراد التبعيات في تطبيقك، راجِع دليل Gradle حول إدارة التبعيات.

تنفيذ عملية تسليم مواد العرض من السحابة الإلكترونية

إذا كنت بحاجة إلى تقليل الحجم أكثر، قد تحتاج إلى الاعتماد على تسليم مواد العرض من السحابة الإلكترونية.