تحذير: لن تتوفّر "تطبيقات Google Play الفورية" بعد الآن. اعتبارًا من ديسمبر 2025، لن يكون بالإمكان نشر "التطبيقات الفورية" من خلال Google Play، وستتوقف جميع واجهات برمجة التطبيقات الفورية لخدمات Google Play عن العمل. لن يعود بإمكان Play عرض "التطبيقات الفورية" على المستخدمين باستخدام أي آلية.
نُجري هذا التغيير استجابةً لملاحظات المطوّرين وفي إطار استثماراتنا المستمرة لتحسين المنظومة المتكاملة منذ طرح "تطبيقات Google Play الفورية".
لتوفير تحسينات تزيد من عدد المستخدمين، ننصح المطوّرين بتوجيه المستخدمين إلى تطبيقاتهم أو ألعابهم العادية، باستخدام الروابط العميقة لإعادة توجيههم إلى رحلات أو ميزات محدّدة عند الاقتضاء.
تنطبق أيضًا خطوات إعداد التطبيقات لتشغيلها على تطبيقات Google Play الفورية، كما هو موضّح في إنشاء أول تطبيق فوري، على الألعاب. ويُركّز هذا الدليل على بعض خطوات الإعداد الخاصة بالألعاب.
يمكنك تطوير ألعاب لتشغيلها على "تطبيقات Google Play الفورية" باستخدام Unity (مع أو بدون مكوّن Google Play Instant Unity الإضافي) أو Cocos2D أو "استوديو Android" أو محرّك مخصّص من تصميمك.
يفترض هذا الدليل أنّك تعرف نوع تجربة اللعب التي تريد تقديمها. إذا أردت الاطّلاع على أفكار وأفضل الممارسات لإنشاء ألعاب عالية الجودة، يمكنك قراءة أفضل ممارسات تجربة المستخدم للألعاب على "تطبيقات Google Play الفورية".
بالإضافة إلى ذلك، قبل نشر لعبة يمكن تشغيلها على تطبيقات Google Play الفورية، عليك مراجعة قائمة التحقّق من المتطلبات الفنية.
تحديد نقطة دخول
يصبح النشاط الذي يتضمّن intent filter التالي نقطة الدخول إلى تجربة فورية للتطبيق في Google Play:
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
يتم تشغيل هذا النشاط عندما ينقر المستخدم على الزر تجربة الآن في "متجر Play" أو الزر اللعب الفوري في تطبيق "ألعاب Google Play". يمكنك أيضًا تشغيل هذا النشاط مباشرةً باستخدام واجهة برمجة تطبيقات الروابط العميقة.
تحديد رموز الإصدار الصحيحة
يجب أن يكون رمز إصدار التجربة الفورية للعبتك أقل من رمز إصدار اللعبة القابلة للتثبيت. يسمح تحديد إصدار تطبيقك بهذه الطريقة للاعبين بالانتقال من تجربة "تطبيقات Google Play الفورية" إلى تنزيل اللعبة وتثبيتها على أجهزتهم. يعتبر إطار عمل Android هذا الانتقال بمثابة تحديث للتطبيق.
للتأكّد من اتّباع نظام تحديد الإصدارات المقترَح، اتّبِع إحدى الاستراتيجيتَين التاليتَين:
- أعِد ضبط رموز الإصدار لتجربة "تطبيقات Google Play الفورية" على 1.
- زِد رمز إصدار التطبيق القابل للتثبيت بعدد كبير، مثل 1000، لضمان توفّر مساحة كافية لزيادة رقم إصدار تجربتك الفورية.
لا بأس بتطوير لعبتك الفورية ولعبتك القابلة للتثبيت في مشروعَين منفصلَين على "استوديو Android". إذا فعلت ذلك، عليك اتّخاذ الإجراءات التالية لنشر لعبتك على Google Play:
- استخدِم اسم الحزمة نفسه في كلا مشروعَي "استوديو Android".
- في Google Play Console، حمِّل كلا الإصدارَين إلى التطبيق نفسه.
لمزيد من التفاصيل حول ضبط إصدار لعبتك، يُرجى الاطّلاع على مقالة تحديد إصدار تطبيقك.
دعم بيئة التنفيذ
مثل التطبيقات الأخرى، يتم تشغيل الألعاب على "تطبيقات Google Play الفورية" ضمن بيئة وضع الحماية محدودة على الجهاز. لدعم بيئة التنفيذ هذه، أكمل الخطوات الموضّحة في الأقسام التالية.
إيقاف البيانات غير المشفّرة
لا تتوافق الألعاب على "تطبيقات Google Play الفورية" مع بيانات HTTP. إذا كانت لعبتك تستهدف الإصدار 9 من نظام Android (المستوى 28 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث، يوقف Android تلقائيًا دعم البيانات غير المشفّرة في لعبتك.
إذا كانت لعبتك تستهدف الإصدار 8.1 من نظام Android (مستوى واجهة برمجة التطبيقات 27) أو الإصدارات الأقدم، عليك
إنشاء ملف إعدادات أمان الشبكة.
في هذا الملف، اضبط cleartextTrafficPermitted على false، كما هو موضّح في مقتطف الرمز التالي:
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
تعديل إصدار بيئة وضع الحماية المستهدَفة
عدِّل ملف AndroidManifest.xml للعبتك الفورية بحيث يستهدف بيئة وضع الحماية التي تتوافق مع "تطبيقات Google Play الفورية". يمكنك إكمال
هذا التعديل عن طريق إضافة السمة android:targetSandboxVersion إلى عنصر <manifest> في لعبتك، كما هو موضّح في مقتطف الرمز التالي:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات السمة
targetSandboxVersion.
عدم الاعتماد على ذاكرة التخزين المؤقت أو بيانات التطبيق
تظل تجربة التطبيق الفورية التي تم تنزيلها على جهاز المستخدم إلى أن يتم محو ذاكرة التخزين المؤقت للتجربة الفورية، ويحدث ذلك في إحدى الحالات التالية:
- يتم جمع بيانات ذاكرة التخزين المؤقت لتجربة التطبيق الفورية غير الضرورية لأنّ ذاكرة الجهاز المتاحة منخفضة.
- يعيد المستخدم تشغيل جهازه.
إذا حدث أي من هذين الإجراءَين، على المستخدم إعادة تنزيل تجربتك الفورية للتطبيق للتفاعل معها.
إذا كانت مساحة التخزين منخفضة جدًا على النظام، من المحتمل أن تتم إزالة بيانات المستخدم لتجربتك الفورية من مساحة التخزين الداخلية. لذلك، ننصح بمزامنة بيانات المستخدم بشكل دوري مع خادم لعبتك للحفاظ على مستوى تقدّم المستخدم.
تقليل حجم تطبيقك
على عكس الأنواع الأخرى من التطبيقات، هناك حد أقصى لحجم تنزيل الألعاب على "تطبيقات Google Play الفورية"، وهو 15 ميغابايت. لإنشاء لعبة بهذا الحجم، قد تحتاج إلى إعادة تصميم منطق لعبتك. يصف هذا القسم بعض الأدوات والتقنيات التي تساعدك في تحسين حجم لعبتك.
الأدوات
يمكن أن تساعدك قائمة الأدوات التالية في تحديد العوامل التي تساهم في حجم لعبتك:
- أداة تحليل ملفات APK: تقدّم عرضًا شاملاً لـ محتويات حزمة APK مجمَّعة. باستخدام هذا العرض، يمكنك تحديد عدد البايتات التي يساهم بها كل عنصر في الحجم الإجمالي. استخدِم هذه الأداة للتحقّق بسرعة من حجم الموارد ومواد العرض والمنطق والمكتبات الأصلية التي تستخدمها لعبتك.
- Bloaty McBloatface: يعرض ملف حجم الملفات الثنائية.
- Android GPU Inspector: يمكنك الاطّلاع على تأثير حجم الملف الناتج عن تقليل حجم البنية بدون الحاجة إلى إعادة تجميع لعبتك.
التقنيات
في ما يلي قائمة بالتقنيات التي يمكنك استخدامها لتقليل حجم لعبتك:
- استخرِج بعض منطق لعبتك وضعه في وحدة ميزات واحدة أو أكثر، ولا يتم احتسابها ضمن الحد الأقصى للحجم.
- قلِّل دقة البِنى في لعبتك.
- ننصحك باستخدام تنسيق WebP ، خاصةً إذا كنت تستخدم بُنى غير مضغوطة على وحدة معالجة الرسومات. ينشئ تنسيق WebP صورًا بنفس جودة صور JPEG ولكن بحجم أصغر بنسبة تتراوح بين 15% و30%. على الرغم من أنّ فك ضغط صور WebP يستغرق وقتًا أطول، يظل وقت فك الضغط هذا أقصر بكثير من وقت تنزيل بُنى لعبتك. دمجت Google أيضًا التنسيق في محرّك ألعاب مفتوح المصدر engine.
- اضغط الأصوات والموسيقى أو أعِد استخدامها.
- استخدِم علامات تجميع مختلفة للمساعدة في تصغير ملفك الثنائي:
-fvisibility=hidden: هذه العلامة هي الأهم. فيcmake، يمكنك تحديدها على النحو التالي:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Oz: هذه العلامة مهمة أيضًا لتقليل الحجم. إذا كنت تُجمِّع باستخدامgcc، استخدِم-Osبدلاً من ذلك.-flto: يؤدي ذلك أحيانًا إلى تقليل حجم الملف.- علامات الرابط: استخدِم
--gc-sectionsمع علامات المُجمِّع، مثل-ffunction-sectionsو-fdata-sections.
- استخدِم Proguard لـ تقليل حجم الرمز والموارد.
- استخدِم Gradle 4.4 أو إصدارًا أحدث لإنشاء ملفات DEX أصغر حجمًا.
- استخدِم ميزة عرض مواد العرض من السحابة الإلكترونية .
تقسيم لعبة كبيرة إلى حِزم APK متعددة
قد يكون من الصعب تحسين تجربة فورية للتطبيق في Google Play لـ جعل لعبتك تتناسب مع حزمة APK واحدة بحجم 15 ميغابايت، حتى بعد تطبيق الـ اقتراحات لـ تقليل حجم حزمة APK. لمواجهة هذا التحدي، يمكنك تقسيم لعبتك إلى حِزم APK متعددة. يبدأ اللاعبون بتنزيل حزمة APK الأساسية الرئيسية، وأثناء اللعب، يتم إتاحة حِزم APK المجزّأة المتبقية للعبة في الخلفية.
على سبيل المثال، يمكن أن تحتوي حزمة APK الأساسية على محرّك اللعبة الأساسي ومواد العرض المطلوبة لعرض شاشة التحميل. عند تشغيل حزمة APK الأساسية، يتم عرض شاشة التحميل ويتم على الفور طلب حزمة APK مجزّأة إضافية تحتوي على بيانات اللعبة والمستوى. بعد أن تصبح حزمة APK المجزّأة هذه متاحة، يمكنها تحميل مواد العرض الخاصة بها في محرّك اللعبة ومنح اللاعب المحتوى الذي يحتاج إليه لبدء اللعبة.
اتّباع أفضل ممارسات تجربة المستخدم
بعد ضبط لعبتك بحيث تتوافق مع التجارب الفورية، أضِف المنطق الموضّح في الأقسام التالية لتقديم تجربة مستخدم جيدة.
دعم بنية 64 بت
يجب أن تتوافق التطبيقات المنشورة على Google Play مع بنية 64 بت. تؤدي إضافة إصدار 64 بت من تطبيقك إلى تحسين الأداء وإعداده للأجهزة التي تستخدم أجهزة 64 بت فقط. مزيد من المعلومات حول دعم بنية 64 بت.
التحقّق مما إذا كانت اللعبة تشغّل تجربة فورية للتطبيق
إذا كان بعض منطق لعبتك يعتمد على ما إذا كان المستخدم يتفاعل مع تجربتك الفورية للتطبيق، استخدِم طريقة
isInstantApp(). تعرض هذه الطريقة القيمة true إذا كانت العملية قيد التشغيل حاليًا هي تجربة فورية للتطبيق.
عرض طلب التثبيت
إذا أنشأت تجربة فورية لتطبيق Google Play، يجب أن تطلب اللعبة من اللاعب في مرحلة ما تثبيت الإصدار الكامل على جهازه. لإجراء ذلك، استخدِم طريقة
showInstallPrompt()
في واجهات Google APIs لنظام Android.
لمزيد من المعلومات حول كيفية وموعد مطالبة اللاعب بالتثبيت، يُرجى الاطّلاع على أفضل ممارسات تجربة المستخدم للألعاب على "تطبيقات Google Play الفورية".
نقل البيانات إلى تجربة مثبَّتة
إذا أعجب اللاعب تجربتك التجريبية، قد يقرّر تثبيت الإصدار الكامل من لعبتك. لتقديم تجربة مستخدم جيدة، من المهم نقل مستوى تقدّم اللاعب من تجربتك الفورية للتطبيق إلى الإصدار الكامل من لعبتك.
إذا كانت لعبتك تحدّد targetSandboxVersion
بالقيمة 2، يتم نقل مستوى تقدّم اللاعب
تلقائيًا إلى الإصدار الكامل من لعبتك. بخلاف ذلك، عليك نقل البيانات المتعلقة بمستوى تقدّم اللاعب يدويًا. لإجراء ذلك، استخدِم واجهة برمجة التطبيقات Cookie - نموذج التطبيق
مراجع إضافية
مزيد من المعلومات حول "تطبيقات Google Play الفورية" من خلال هذه المراجع الإضافية:
- درس تطبيقي: إنشاء أول تطبيق فوري
- إضافة دعم "تطبيقات Google Play الفورية" في تطبيق حالي
- درس تطبيقي: إنشاء تطبيق فوري متعدد الميزات
- تقسيم تطبيق متعدد الميزات إلى وحدات