إنشاء حِزمة تطبيق مفعّلة بشكل فوري

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

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

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

يمكنك إنشاء تجربة فورية للتطبيق على Google Play من خلال تضمينها كجزء من مجموعة حزمات تطبيق Android. تُعرف هذه الحزمة باسم حزمة تطبيقات تم تفعيل ميزة التطبيقات الفورية فيها. يوضّح هذا المستند كيفية إعداد بيئة التطوير لحِزم التطبيقات التي تم تفعيل ميزة التطبيقات الفورية فيها، بالإضافة إلى كيفية إعداد حزمة تطبيقات تم تفعيل ميزة التطبيقات الفورية فيها وإنشائها واختبارها ونشرها.

إذا كان لديك مشروع تطبيق فوري حالي يستخدم المكوّن الإضافي للميزة المتوقّفة نهائيًا (com.android.feature)، تعرَّف على كيفية نقل تطبيقك الفوري ليتوافق مع "مجموعات حزمات تطبيق Android".

إعداد بيئة التطوير

لتوفير تجربة فورية للتطبيق ضمن حِزمة تطبيق، يجب أن يكون لديك إذن الوصول إلى حزمة تطوير البرامج (SDK) الخاصة بـ تطبيقات Google Play الفورية. يمكنك تثبيت حزمة SDK باستخدام إحدى الطريقتَين التاليتَين:

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

مزيد من المعلومات حول شروط التنفيذ المطلوبة

تتيح "تطبيقات Google Play الفورية" تشغيل حِزم التطبيقات التي تم تفعيل ميزة التطبيقات الفورية فيها في نوع خاص من وضع الحماية SELinux لتعزيز الأمان. تسمح هذه البيئة التجريبية بمجموعة فرعية من الأذونات، بالإضافة إلى أنواع محدودة من التفاعلات مع التطبيقات الأخرى. توضّح الأقسام التالية خصائص هذه البيئة التجريبية بمزيد من التفصيل.

الأذونات والعمليات المتوافقة

يمكن لحِزم التطبيقات التي تم تفعيل ميزة التطبيقات الفورية فيها استخدام الأذونات من القائمة التالية فقط:

التعامل مع الأذونات الشائعة غير المتوافقة

في ما يلي قائمة بالأذونات الشائعة غير المتوافقة التي يجب إزالتها من تطبيقك، بالإضافة إلى مسار النقل المقترَح لكل منها:

  • ACCESS_WIFI_STATE: استخدِم ACCESS_NETWORK_STATE، الذي من المفترض أن يقدّم معلومات مشابهة لتلك التي يقدّمها ACCESS_WIFI_STATE.
  • BILLING: هذا إذن تم إيقافه نهائيًا. استخدِم Google Play Billing Library، التي لم تعُد تتطلّب الإذن com.android.vending.BILLING.
  • READ/WRITE_EXTERNAL_STORAGE: لا يمكن للتطبيقات الفورية الوصول إلى مساحة التخزين الخارجية، لذا يجب استخدام مساحة التخزين الداخلية بدلاً من ذلك.
  • com.google.android.c2dm.permission.RECEIVE وpermission.C2D_MESSAGE: تم إيقاف C2DM نهائيًا. انتقِل إلى خدمة "مراسلة Firebase السحابية" ‏ (FCM). لا يحتاج FCM إلى أي أذونات إضافية ليعمل.

بالإضافة إلى ذلك، لا يمكن لمجموعات حزمات تطبيق Android التي تم تفعيل ميزة التطبيقات الفورية فيها إجراء ما يلي:

الوصول إلى التطبيقات المثبَّتة

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

  • تم ضبط العنصر android:visibleToInstantApps في نشاط واحد أو أكثر ضمن تطبيق مثبَّت على القيمة true. يتوفّر هذا العنصر للتطبيقات التي تعمل بالإصدار 8.0 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 26) أو الإصدارات الأحدث.
  • يحتوي تطبيق مثبَّت على intent filter يتضمّن CATEGORY_BROWSABLE.
  • تتم تجربة فورية للتطبيق من خلال إرسال هدف باستخدام الإجراء ACTION_SEND أو ACTION_SENDTO أو ACTION_SEND_MULTIPLE.

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

لكي تكون حزمة تطبيقك التي تم تفعيل ميزة التطبيقات الفورية فيها متوافقة مع "تطبيقات Google Play الفورية"، يجب ضبط العديد من جوانبها بعناية. توضّح الأقسام التالية هذه الاعتبارات.

تحديد تبعيات المشروع

لاستخدام واجهات برمجة التطبيقات "تطبيقات Google Play الفورية" في تطبيقك، عليك تضمين البيان التالي في ملف إعداد build.gradle لوحدة تطبيقك:

أنيق

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

Kotlin

implementation("com.google.android.gms:play-services-instantapps:17.0.0")

تحديد رموز الإصدار الصحيحة

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

لضمان اتّباع نظام تحديد الإصدارات الذي يتوقّعه المستخدمون، اتّبِع إحدى الاستراتيجيتَين التاليتَين:

  • أعِد بدء رموز الإصدارات لتطبيقات Google Play الفورية من 1.
  • يمكنك زيادة رمز إصدار حزمة APK القابلة للتثبيت برقم كبير، مثل 1000، لضمان توفّر مساحة كافية لزيادة رقم إصدار التجربة الفورية.

لا بأس بتطوير تطبيقك الفوري وتطبيقك القابل للتثبيت في مشروعَين منفصلَين على استوديو Android. ومع ذلك، إذا اخترت ذلك، عليك اتّخاذ الخطوات التالية لنشر تطبيقك على Google Play:

  1. استخدِم اسم الحزمة نفسه في كلا مشروعي "استوديو Android".
  2. في Google Play Console، حمِّل كلا الصيغتين إلى التطبيق نفسه.

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

تعديل إصدار وضع الحماية المستهدف

يجب تعديل ملف AndroidManifest.xml الخاص بتطبيقك الفوري ليناسب بيئة وضع الحماية التي تتيحها "تطبيقات Google Play الفورية". يمكنك إكمال هذا التعديل عن طريق إضافة السمة android:targetSandboxVersion إلى العنصر <manifest> في تطبيقك، كما هو موضّح في مقتطف الرمز التالي:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

لمزيد من المعلومات، راجِع المستندات حول السمة targetSandboxVersion.

تضمين وحدات التطبيق التي تم تفعيل ميزة التطبيقات الفورية فيها

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

  • إذا كانت لديك حِزمة تطبيق حالية تحتوي على وحدة أساسية فقط، يمكنك تفعيل ميزة التطبيقات الفورية في حِزمة التطبيق باتّباع الخطوات التالية:

    1. افتح لوحة المشروع (Project) من خلال اختيار عرض (View) > نوافذ الأدوات (Tool Windows) > المشروع (Project) من شريط القوائم.
    2. انقر بزر الماوس الأيمن على الوحدة الأساسية، والتي يُطلق عليها عادةً اسم "التطبيق"، ثم اختَر إعادة تصميم > تفعيل دعم التطبيقات الفورية.
    3. في مربّع الحوار الذي يظهر، اختَر الوحدة الأساسية من القائمة المنسدلة.
    4. انقر على موافق.

    يضيف "استوديو Android" التعريف التالي إلى بيان الوحدة:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • إذا كانت لديك حِزمة تطبيق حالية تحتوي على وحدات متعددة، يمكنك إنشاء وحدة ميزات تم تفعيل ميزة التطبيقات الفورية فيها. تتيح لك هذه العملية أيضًا تفعيل الوحدة الأساسية في تطبيقك على الفور، ما يمنحك خيار إتاحة نقاط دخول متعددة للتطبيق الفوري داخل تطبيقك.

إتاحة تسجيل الدخول

إذا كانت التجربة الفورية للتطبيق تتيح للمستخدمين تسجيل الدخول، يجب أن تتوافق حزمة التطبيق التي تم تفعيل ميزة التطبيقات الفورية فيها مع ميزة "Smart Lock لكلمات المرور على Android". إذا كنت بصدد إنشاء لعبة"تشغيل فوري"، عليك استخدام ميزة تسجيل الدخول في خدمات ألعاب Google Play بدلاً من ذلك.

توفير بيئة التنفيذ

لضمان التوافق مع بيئة الاختبار المعزولة SELinux التي يتم فيها تشغيل التجارب الفورية، يُرجى مراعاة ما يلي عند إنشاء حزمة تطبيق تم تفعيل ميزة التطبيقات الفورية فيها:

  • لا تشارك قيمة myUid()، وهي معرّف UID الذي يحدّده نظام التشغيل لعملية تطبيقك.
  • إذا كان تطبيقك يستهدف الإصدار 8.1 من نظام التشغيل Android (المستوى 27 لواجهة برمجة التطبيقات) أو الإصدارات الأقدم، عليك إنشاء ملف إعداد أمان الشبكة وضبط cleartextTrafficPermitted على false. لا تتوافق التجارب الفورية للتطبيق مع زيارات HTTP. بالنسبة إلى التطبيقات التي تستهدف الإصدار 9 من نظام التشغيل Android أو الإصدارات الأحدث، يتم إيقاف حركة البيانات غير المشفرة تلقائيًا.
  • تظلّ تجربة التطبيق الفورية مثبّتة على جهاز المستخدم إلى أن يتم محو ذاكرة التخزين المؤقت للتجربة الفورية، ويحدث ذلك في إحدى الحالات التالية:

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

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

  • إذا كانت مساحة التخزين المتبقية في النظام قليلة جدًا، من المحتمل أن تتم إزالة بيانات المستخدم الخاصة بـ &quot;التجربة الفورية&quot; من مساحة التخزين الداخلية. لذلك، ننصحك بمزامنة بيانات المستخدمين بشكل دوري مع خادم تطبيقك للحفاظ على مستوى تقدّم المستخدم.

إضافة منطق لسير عمل التجربة الفورية للتطبيق

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

التحقّق مما إذا كان التطبيق يوفّر تجربة فورية للتطبيق

إذا كانت بعض منطق تطبيقك يعتمد على ما إذا كان المستخدم يتفاعل مع تجربة فورية للتطبيق، عليك استدعاء الطريقة isInstantApp(). تعرض هذه الطريقة true إذا كانت العملية الجارية حاليًا هي تجربة فورية للتطبيق.

عرض طلب تثبيت

إذا كنت بصدد إنشاء نسخة تجريبية من تطبيقك أو لعبتك، تتيح لك تطبيقات Google Play الفورية عرض طلب ضمن تجربة فورية للتطبيق يدعو المستخدمين إلى تثبيت التجربة الكاملة على أجهزتهم. لعرض هذا الطلب، استخدِم طريقة InstantApps.showInstallPrompt() كما هو موضّح في مقتطف الرمز التالي:

Kotlin

class MyInstantExperienceActivity : AppCompatActivity {
    // ...
    private fun showInstallPrompt() {
        val postInstall = Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name)

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(this@MyInstantExperienceActivity,
                postInstall, request-code, /* referrer= */ null)
    }
}

Java

public class MyInstantExperienceActivity extends AppCompatActivity {
    // ...
    private void showInstallPrompt() {
        Intent postInstall = new Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name);

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(MyInstantExperienceActivity.this,
                postInstall, request-code, /* referrer= */ null);
    }
}

نقل البيانات إلى تجربة مثبَّتة

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

إذا كان المستخدم يستخدم جهازًا يعمل بنظام التشغيل Android 8.0 (مستوى واجهة برمجة التطبيقات 26) أو إصدار أحدث، وإذا كان تطبيقك يحدّد targetSandboxVersion بالقيمة 2، سيتم نقل بيانات المستخدم تلقائيًا إلى الإصدار الكامل من تطبيقك. وفي ما عدا ذلك، عليك نقل البيانات يدويًا. لإجراء ذلك، استخدِم إحدى واجهات برمجة التطبيقات التالية:

  • بالنسبة إلى المستخدمين الذين لديهم أجهزة تعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) والإصدارات الأحدث، استخدِم واجهة برمجة التطبيقات الخاصة بملفات تعريف الارتباط - تطبيق نموذجي
  • إذا كان بإمكان المستخدمين التفاعل مع تجربتك على الأجهزة التي تعمل بالإصدار 7.1 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 25) والإصدارات الأقدم، أضِف توافقًا مع Storage API - نموذج تطبيق

إنشاء حِزمة التطبيق

يمكنك استخدام "استوديو Android" أو واجهة سطر الأوامر لإنشاء حزمة تطبيقك التي تم تفعيل ميزة التطبيقات الفورية فيها.

استوديو Android

باستخدام &quot;استوديو Android&quot;، يمكنك إنشاء حِزم تطبيقك من خلال النقر على إنشاء (Build) > إنشاء حِزم/حِزم APK (Build Bundle(s) / APK(s)) > إنشاء حِزم (Build Bundle(s)). لمزيد من المعلومات حول إنشاء مشروعك، يُرجى الاطّلاع على إنشاء مشروعك.

واجهة سطر الأوامر

يمكنك أيضًا إنشاء حِزمة التطبيق من سطر الأوامر باستخدام Gradle.

توافُق البِنى 64 بت

يجب أن تتوافق التطبيقات المنشورة على Google Play مع بنية 64 بت. تؤدي إضافة إصدار 64 بت من تطبيقك إلى تحسين الأداء وتجهيز تطبيقك للأجهزة التي تتضمّن أجهزة تعمل بالإصدار 64 بت فقط. مزيد من المعلومات حول توافق التطبيقات مع إصدار 64 بت

اختبار التجربة الفورية للتطبيق

قبل نشر حزمة تطبيقك التي تم تفعيل ميزة التطبيقات الفورية فيها، يمكنك اختبار تجربة التطبيق الفوري من أحد المواقع الجغرافية التالية للتحقّق من الوظائف:

استوديو Android

لاختبار تجربة التطبيق الفوري على جهاز محلي باستخدام "استوديو Android"، عليك إكمال الخطوات التالية:

  1. إذا كان لديك إصدار مثبَّت من تطبيقك على جهاز الاختبار، عليك إلغاء تثبيته.
  2. في "استوديو Android"، ضَع علامة في مربّع الاختيار نشر كتطبيق فوري من خيارات التثبيت التي تظهر في علامة التبويب عام ضمن مربّع حوار إعدادات التشغيل/تصحيح الأخطاء.
  3. انقر على تشغيل > تشغيل في شريط القوائم، أو انقر على تشغيل في شريط الأدوات، ثم اختَر الجهاز الذي تريد اختبار تجارب التطبيق الفوري عليه. يتم تحميل التجربة الفورية لتطبيقك على جهاز الاختبار الذي اخترته.

واجهة سطر الأوامر

لاختبار تجربة التطبيق الفوري على جهاز محلي باستخدام سطر الأوامر، أكمِل الخطوات التالية:

  1. إذا كان لديك إصدار مثبَّت من تطبيقك على جهاز الاختبار، عليك إلغاء تثبيته.
  2. حمِّل تطبيقك الفوري بشكل جانبي وشغِّله على جهازك الاختباري عن طريق إدخال الأمر التالي:
ia run output-from-build-command

مسار الاختبار الداخلي

لاختبار التجربة الفورية لتطبيقك من &quot;متجر Play&quot; أو من بانر على موقعك الإلكتروني، عليك نشر التطبيق في مسار الاختبار الداخلي على Play Console.

لنشر تطبيقك في مسار الاختبار الداخلي، أكمِل الخطوات التالية:

  1. حمِّل حِزمة تطبيقك باتّباع الخطوات الواردة في دليل تحميل حِزمة تطبيقك إلى Play Console.
  2. جهِّز الحِزمة التي تم تحميلها لإصدار سيتم طرحه في مسار الاختبار الداخلي. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة الدعم حول كيفية إعداد الإصدارات وطرحها.
  3. سجِّل الدخول إلى حساب أحد المختبِرين الداخليين على جهاز، ثم شغِّل تجربة التطبيق الفوري من إحدى المساحات التالية:

    • زر التجربة الآن من بطاقة بيانات تطبيقك على "متجر Play"
    • رابط من بانر على الموقع الإلكتروني لتطبيقك

نشر حِزمة التطبيق في قناة الإصدار العلني

لنشر حِزمة تطبيقك التي تم تفعيل ميزة التطبيقات الفورية فيها، أكمِل الخطوات التالية:

  1. إذا لم يسبق لك ذلك، وقِّع حزمة تطبيقك باستخدام مفتاح إصدار وحمِّل حزمة التطبيق إلى Play Console.
  2. في Play Console، افتح إدارة الإصدار > تطبيقات Android الفورية، ثم انتقِل إلى مسار الإصدار العلني للتطبيق الفوري.
  3. انقر على التحديث من المكتبة، ثم اختَر حِزمة التطبيق التي تم تفعيل ميزة التطبيقات الفورية فيها والتي حمّلتها.

اختيار مكان نشر التجربة الفورية للتطبيق

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

مراجع إضافية

لمزيد من المعلومات حول إنشاء تجارب فورية و"مجموعات حزمات تطبيق Android"، راجِع المراجع التالية:

فيديو: تجميع تطبيق في تطبيق فوري
تعرَّف على كيفية إضافة تجربة فورية للتطبيق إلى "مجموعة حزمات تطبيق Android" في هذه الجلسة من مؤتمر Android Dev Summit لعام 2018.
فيديو: نشر تطبيقات أصغر حجمًا باستخدام "مجموعة حزمات تطبيق Android"
تعرَّف على كيف تساعدك حِزم التطبيقات في تطوير تطبيقك بشكل أسرع وإنشاء حِزم APK أصغر حجمًا للمستخدمين.
درس تطبيقي حول الترميز: مجموعة حزمات تطبيق Android الأولى
دليل مفصّل حول إنشاء "مجموعة حزمات تطبيق Android" وإضافة ميزات إليها
تنسيق "مجموعة حزمات تطبيق Android"
مزيد من المعلومات حول كيفية تنظيم برنامج سطر الأوامر bundletool لحِزم التطبيقات من رموز تطبيقك وموارده