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

يمكنك إنشاء تجربة فورية على 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) تفعل خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" ولا يحتاجون إلى أي أذونات إضافية للعمل.

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

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

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

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

ضبط مشروعك للحصول على تجارب فورية

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

تعريف تبعيات المشروع

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

Groovy

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. افتح لوحة المشروع من خلال اختيار عرض > نوافذ الأدوات > المشروع من شريط القوائم.
    2. انقر بزر الماوس الأيمن على الوحدة الأساسية التي تُعرف عادةً باسم "التطبيق"، واختَر إعادة ضبط الإعدادات > تفعيل دعم التطبيقات الفورية
    3. في مربّع الحوار الذي يظهر، اختَر الوحدة الأساسية من القائمة المنسدلة.
    4. انقر على موافق.

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

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

إضافة إمكانية تسجيل الدخول

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

دعم بيئة التنفيذ

ولكي تكون متوافقًا مع وضع الحماية SELinux الذي يتم فيه تشغيل التجارب الفورية، ضع يجب أخذ النقاط التالية في الاعتبار عند إنشاء حِزمة تطبيق تم تفعيل ميزة التطبيقات الفورية فيها:

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

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

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

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

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

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

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

وإذا كان بعض منطق تطبيقك يعتمد على ما إذا كان المستخدم يشارك في تجربة فورية، فقم باستدعاء 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);
    }
}

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

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

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

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

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

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

استوديو Android

وباستخدام "استوديو Android"، يمكنك إنشاء حِزمة تطبيقك من خلال اختيار إنشاء > إنشاء حِزم / حِزم APK > إنشاء حِزم لمزيد من المعلومات حول إنشاء مشروعك، راجِع إنشاء مشروعك.

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

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

التوافق مع بُنى 64 بت

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

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

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

استوديو Android

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

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

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

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

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

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

لاختبار التجربة الفورية لتطبيقك من "متجر Play" أو إعلان بانر على الموقع الإلكتروني، انشر التطبيق في الاختبار الداخلي أغنية على 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" لأحد التطبيقات حزمة من رمز التطبيق وموارده.