ایجاد دسته برنامه با قابلیت فعال‌سازی آنی

هشدار: «Google Play فوری» دیگر دردسترس نخواهد بود. از دسامبر ۲۰۲۵، «برنامه‌های فوری» را نمی‌توان ازطریق Google Play منتشر کرد و همه میاناهای برنامه‌سازی کاربردی فوری خدمات Google Play دیگر کار نخواهند کرد. کاربران دیگر ازطریق هیچ سازوکاری «برنامه‌های فوری» را از Play دریافت نخواهند کرد.

این تغییر را براساس بازخورد توسعه‌دهندگان و سرمایه‌گذاری‌های مداوممان برای بهبود بوم‌سازگان از زمان معرفی «Google Play فوری» انجام می‌دهیم.

برای ادامه بهینه‌سازی رشد کاربر، توسعه‌دهندگان را تشویق می‌کنیم تا کاربران را به برنامه یا بازی معمول خود ارجاع دهند و بااستفاده از پیوندهای عمیق، آن‌ها را درصورت لزوم به سفرها یا ویژگی‌های خاص هدایت کنند.

با گنجاندن تجربه «Google Play فوری» به‌عنوان بخشی از بسته ترکیبی برنامه Android، آن را ایجاد می‌کنید. چنین دسته‌ای به‌عنوان دسته برنامه با قابلیت فوری شناخته می‌شود. این سند به شما نشان می‌دهد که چگونه محیط توسعه نرم‌افزار خود را برای دسته‌های برنامه با قابلیت فوری راه‌اندازی کنید، و همچنین چگونه یک دسته برنامه با قابلیت فوری را پیکربندی، ساخت، آزمایش و منتشر کنید.

اگر پروژه برنامه فوری موجودی دارید که از افزونه ویژگی منسوخ‌شده (com.android.feature) استفاده می‌کند، با نحوه انتقال برنامه فوری برای پشتیبانی از Android App Bundle آشنا شوید.

راه‌اندازی محیط توسعه نرم‌افزار

برای ارائه تجربه فوری در دسته برنامه، باید به Google Play Instant Development SDK دسترسی داشته باشید. می‌توانید کیت توسعه نرم‌افزار را بااستفاده از یکی از روش‌های زیر نصب کنید:

  • «استودیو Android» نسخه ۳.۶ یا بالاتر را نصب کنید. پس‌از باز کردن Android Studio، «کیت توسعه نرم‌افزار توسعه Google Play Instant» را از برگه ابزارهای کیت توسعه نرم‌افزار در مدیر کیت توسعه نرم‌افزار بارگیری کنید.
  • نصب از خط فرمان:

    cd path/to/android/sdk/tools/bin && \
      ./sdkmanager 'extras;google;instantapps'
    

علاوه‌براین، اگر می‌خواهید تجربه فوری‌تان را به‌صورت محلی آزمایش کنید، به دستگاه فیزیکی یا مجازی دسترسی پیدا کنید.

آشنایی با شرایط اجرایی لازم

Google Play Instant برای امنیت بیشتر، دسته‌های برنامه دارای فعال‌سازی آنی را در نوع خاصی از جعبه امن SELinux اجرا می‌کند. این جعبه امن زیرمجموعه‌ای از اجازه‌ها و همچنین انواع محدودی از تعاملات با برنامه‌های دیگر را مجاز می‌کند. بخش‌های زیر ویژگی‌های این محیط امن را با جزئیات بیشتری توضیح می‌دهند.

اجازه‌ها و عملیات‌های پشتیبانی‌شده

دسته‌های برنامه دارای فعال‌سازی آنی فقط می‌توانند از اجازه‌های فهرست زیر استفاده کنند:

رسیدگی به اجازه‌های پشتیبانی‌نشده رایج

در زیر فهرستی از اجازه‌های رایج و پشتیبانی‌نشده‌ای که باید از برنامه‌تان بردارید و مسیر انتقال توصیه‌شده برای هرکدام آمده است:

  • ACCESS_WIFI_STATE: از ACCESS_NETWORK_STATE استفاده کنید که باید اطلاعاتی مشابه ACCESS_WIFI_STATE ارائه دهد.
  • ‫BILLING: این اجازه منسوخ شده است. از کتابخانه خدمات صورت‌حساب Google Play استفاده کنید که دیگر به اجازه com.android.vending.BILLING نیاز ندارد.
  • READ/WRITE_EXTERNAL_STORAGE: برنامه‌های فوری به فضای ذخیره‌سازی خارجی دسترسی ندارند؛ به‌جای آن از فضای ذخیره‌سازی داخلی استفاده کنید.
  • ‫com.google.android.c2dm.permission.RECEIVE و permission.C2D_MESSAGE: C2DM منسوخ شده است. به «پیام‌رسانی ابریِ Firebase»‏ (FCM) منتقل شوید. FCM برای کار کردن به هیچ اجازه دیگری نیاز ندارد.

علاوه‌براین، دسته‌های برنامه دارای فعال‌سازی آنی نمی‌توانند کارهای زیر را انجام دهند:

دسترسی به برنامه‌های نصب‌شده

هنگام توسعه تجربه فوری، به‌خاطر داشته باشید که نمی‌تواند با برنامه‌های نصب‌شده در دستگاه تعامل داشته باشد، مگراینکه یکی از موارد زیر درست باشد:

  • یک یا چند فعالیت در برنامه نصب‌شده، عنصر android:visibleToInstantApps خود را روی true تنظیم کرده است – این عنصر برای برنامه‌هایی که Android نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶) یا بالاتر را اجرا می‌کنند دردسترس است.
  • برنامه نصب‌شده‌ای حاوی فیلتر قصدی است که شامل CATEGORY_BROWSABLE است.
  • تجربه فوری بااستفاده از کنش ACTION_SEND، ACTION_SENDTO، یا ACTION_SEND_MULTIPLE هدف ارسال می‌کند.

پیکربندی پروژه برای تجربه‌های فوری

برای سازگار بودن با «Google Play فوری»، باید چندین جنبه از دسته برنامه دارای فعال‌سازی آنی را به‌دقت پیکربندی کنید. بخش‌های زیر این ملاحظات را شرح می‌دهند.

اعلام وابستگی‌های پروژه

برای استفاده از Google Play Instant API در برنامه‌تان، اعلامیه زیر را در فایل پیکربندی build.gradle ماژول برنامه‌تان اضافه کنید:

شیک

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

کاتلین

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

کدهای نسخه صحیح را تعریف کنید

کد نسخه تجربه فوری برنامه‌تان باید کمتر از کد نسخه برنامه نصب‌شدنی باشد. انتظار می‌رود کاربران از تجربه Google Play Instant به بارگیری و نصب برنامه در دستگاهشان بروند. چارچوب Android این انتقال را به‌روزرسانی برنامه درنظر می‌گیرد.

برای اطمینان از اینکه از طرح نسخه‌بندی موردانتظار کاربران پیروی می‌کنید، یکی از این استراتژی‌ها را دنبال کنید:

  • کدهای نسخه را برای تجربه Google Play Instant از ۱ بازراه‌اندازی کنید.
  • کد نسخه APK نصب‌شدنی را با عدد بزرگی، مثلاً ۱۰۰۰، افزایش دهید تا مطمئن شوید فضای کافی برای افزایش شماره نسخه تجربه فوری وجود دارد.

اشکالی ندارد که برنامه فوری و برنامه نصب‌شدنی‌تان را در دو پروژه Android Studio جداگانه توسعه دهید. اما اگر این کار را انجام دهید، برای انتشار برنامه‌تان در Google Play باید کارهای زیر را انجام دهید:

  1. از نام بسته یکسان در هر دو پروژه Android Studio استفاده کنید.
  2. در «کنسول Google Play»، هر دو گونه را در یک برنامه بارگذاری کنید.

برای جزئیات بیشتر درباره تنظیم نسخه برنامه‌تان، نسخه برنامه‌تان را ببینید.

به‌روزرسانی نسخه جعبه شنی هدف

فایل AndroidManifest.xml برنامه فوری شما باید به‌روزرسانی شود تا محیط جعبه امنی را که Google Play Instant پشتیبانی می‌کند هدف قرار دهد. می‌توانید این به‌روزرسانی را با افزودن مشخصه 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() را هم‌رسانی نکنید، که همان UID اختصاص‌یافته به هسته فرایند برنامه‌تان است.
  • اگر برنامه شما Android نسخه ۸.۱ (سطح میانای برنامه کاربردی ۲۷) یا پایین‌تر را هدف‌یابی می‌کند، فایل پیکربندی امنیتی شبکه ایجاد کنید و cleartextTrafficPermitted را روی false تنظیم کنید. تجربه‌های فوری از ترافیک HTTP پشتیبانی نمی‌کنند. برای برنامه‌هایی که Android نسخه ۹ یا بالاتر را هدف قرار می‌دهند، ترافیک متن ساده به‌طور پیش‌فرض غیرفعال است.
  • تجربه فوری شما تا زمانی که حافظه نهان تجربه فوری پاک نشود، در دستگاه کاربر بارگیری‌شده باقی می‌ماند. پاک شدن حافظه نهان در یکی از شرایط زیر رخ می‌دهد:

    • حافظه نهان تجربه فوری به‌دلیل کمبود حافظه دردسترس دستگاه، پاک‌سازی شد.
    • کاربر دستگاهش را بازراه‌اندازی می‌کند.

    اگر هرکدام از این فرایندها اتفاق بیفتد، کاربر باید تجربه فوری شما را دوباره بارگیری کند تا بتواند با آن تعامل داشته باشد.

  • اگر فضای ذخیره‌سازی سیستم بسیار کم باشد، ممکن است داده‌های کاربر تجربه فوری شما از حافظه داخلی برداشته شود. بنابراین، توصیه می‌شود به‌طور دوره‌ای داده‌های کاربر را با سرور برنامه‌تان همگام‌سازی کنید تا پیشرفت کاربر حفظ شود.

افزودن منطق برای گردش‌های کاری تجربه فوری

پس‌از پیکربندی دسته برنامه‌تان به‌گونه‌ای که از تجربه‌های فوری پشتیبانی کند، منطق نشان‌داده‌شده در بخش‌های زیر را اضافه کنید.

بررسی اینکه برنامه درحال اجرای تجربه فوری است یا نه

اگر برخی‌از منطق‌های برنامه‌تان به این بستگی دارد که کاربر با تجربه فوری شما تعامل داشته باشد یا نه، روش isInstantApp() را فراخوانی کنید. اگر فرایند درحال اجرا تجربه فوری باشد، این روش true را برمی‌گرداند.

نمایش پیام‌واره نصب

اگر درحال ساختن نسخه آزمایشی برنامه یا بازی‌تان هستید، «Google Play فوری» به شما امکان می‌دهد در تجربه فوری‌تان پیام‌واره‌ای نمایش دهید و از کاربران دعوت کنید نسخه کامل را در دستگاهشان نصب کنند. برای نمایش این پیام‌واره، از روش InstantApps.showInstallPrompt() استفاده کنید، همان‌طور که در تکه‌کد زیر نشان داده شده است:

کاتلین

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)
    }
}

جاوا

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 نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶) یا بالاتر را اجرا می‌کند، و اگر برنامه شما targetSandboxVersion 2 را مشخص می‌کند، داده‌های کاربر به‌طور خودکار به نسخه کامل برنامه‌تان منتقل می‌شود. درغیراین‌صورت، باید داده‌ها را به‌صورت دستی منتقل کنید. برای انجام این کار، از یکی از میاناهای برنامه‌سازی کاربردی زیر استفاده کنید:

  • برای کاربرانی که از دستگاه‌های دارای Android نسخه ۸.۰ (سطح میانای برنامه‌سازی کاربردی ۲۶) و بالاتر استفاده می‌کنند، از Cookie API - برنامه نمونه استفاده کنید
  • اگر کاربران می‌توانند با تجربه شما در دستگاه‌هایی که Android نسخه ۷.۱ (سطح میانای برنامه‌سازی کاربردی ۲۵) و پایین‌تر را اجرا می‌کنند تعامل داشته باشند، پشتیبانی از Storage API را اضافه کنید - برنامه نمونه

ساختن بسته برنامه

می‌توانید از «استودیو Android» یا میانای خط فرمان برای ساختن دسته برنامه دارای فعال‌سازی آنی استفاده کنید.

استودیو Android

بااستفاده از «استودیو Android»، می‌توانید با انتخاب ساختن > ساختن بسته(ها) / APK(ها) > ساختن بسته(ها)، بسته برنامه‌تان را بسازید. برای اطلاعات بیشتر درباره ساختن پروژه، به ساختن پروژه مراجعه کنید.

رابط خط فرمان

همچنین می‌توانید بااستفاده از Gradle، دسته برنامه را از خط فرمان بسازید.

پشتیبانی از معماری‌های ۶۴ بیتی

برنامه‌های منتشرشده در Google Play باید از معماری‌های ۶۴ بیتی پشتیبانی کنند. افزودن نسخه ۶۴ بیتی برنامه‌تان باعث بهبود عملکرد می‌شود و شما را برای دستگاه‌هایی که فقط سخت‌افزار ۶۴ بیتی دارند آماده می‌کند. درباره پشتیبانی از نسخه ۶۴ بیتی بیشتر بدانید.

امتحان کردن تجربه فوری

قبل‌از انتشار دسته برنامه دارای فعال‌سازی آنی، می‌توانید تجربه فوری را از یکی از مکان‌های زیر آزمایش کنید تا عملکرد آن را درستی‌سنجی کنید:

استودیو Android

برای آزمایش تجربه فوری برنامه‌تان در دستگاه محلی بااستفاده از Android Studio، مراحل زیر را تکمیل کنید:

  1. اگر نسخه‌ای از برنامه‌تان را در دستگاه آزمایشی نصب کرده‌اید، آن را حذف نصب کنید.
  2. در «استودیو Android»، از گزینه‌های نصب که در برگه عمومی کادر گفتگوی پیکربندی‌های اجرا/اشکال‌زدایی ظاهر می‌شود، چارگوش انتخاب استقرار به‌عنوان برنامه فوری را فعال کنید.
  3. در نوار منو، اجرا > اجرا را انتخاب کنید یا در نوار ابزار روی اجرا کلیک کنید، سپس دستگاهی را که می‌خواهید تجربه‌های فوری برنامه‌تان را در آن آزمایش کنید انتخاب کنید. تجربه فوری برنامه‌تان در دستگاه آزمایشی‌ای که انتخاب کرده‌اید بار می‌شود.

رابط خط فرمان

برای آزمایش تجربه فوری برنامه‌تان در دستگاه محلی بااستفاده از خط فرمان، مراحل زیر را تکمیل کنید:

  1. اگر نسخه‌ای از برنامه‌تان را در دستگاه آزمایشی نصب کرده‌اید، آن را حذف نصب کنید.
  2. با وارد کردن فرمان زیر، برنامه فوری‌تان را در دستگاه آزمایشی‌تان جانبی‌گذاری و اجرا کنید:
ia run output-from-build-command

دسته هدف آزمایشی داخلی

برای آزمایش تجربه فوری برنامه‌تان از «فروشگاه Play» یا برنمایی در وب‌سایتتان، برنامه را در دسته هدف آزمایشی داخلی در «کنسول Play» منتشر کنید.

برای انتشار برنامه‌تان در دسته هدف آزمایشی داخلی، مراحل زیر را تکمیل کنید:

  1. با دنبال کردن مراحل راهنمای بارگذاری دسته برنامه در «کنسول Play»، دسته برنامه‌تان را بارگذاری کنید.
  2. بسته بارگذاری‌شده را برای انتشار در دسته هدف آزمایشی داخلی آماده کنید. برای کسب اطلاعات بیشتر، مقاله پشتیبانی درباره نحوه آماده‌سازی و عرضه نسخه‌های پخش را ببینید.
  3. در دستگاهی به سیستم حساب آزمایش‌کننده داخلی وارد شوید، سپس تجربه فوری‌تان را از یکی از سطوح زیر راه‌اندازی کنید:

    • دکمه اکنون امتحان کنید از فهرستگان «فروشگاه Play» برنامه‌تان.
    • پیوندی از برنمای وب‌سایت برنامه‌تان.

بسته برنامه را در دسته هدف تولید منتشر کنید

برای انتشار دسته برنامه دارای فعال‌سازی آنی، مراحل زیر را تکمیل کنید:

  1. اگر قبلاً این کار را نکرده‌اید، دسته برنامه‌تان را با کلید انتشار امضا کنید و دسته برنامه را در «کنسول Play» بارگذاری کنید.
  2. در «کنسول Play»، مدیریت انتشار > برنامه‌های فوری Android را باز کنید، سپس به دسته هدف تولید برنامه فوری بروید.
  3. به‌روزرسانی از کتابخانه را انتخاب کنید، سپس دسته برنامه دارای فعال‌سازی آنی را که بارگذاری کرده‌اید انتخاب کنید.

انتخاب کنید تجربه فوری‌تان کجا منتشر شود

می‌توانید تجربه فوری برنامه‌تان را در زیرمجموعه‌ای از کشورها و مناطقی که افراد می‌توانند برنامه‌تان را نصب کنند راه‌اندازی کنید. این قابلیت در مواردی مفید است که می‌خواهید تجربه فوری برنامه‌تان را برای کاربرانی که در مجموعه خاصی از کشورها و مناطق ساکن هستند تبلیغ کنید.

منابع بیشتر

برای کسب اطلاعات بیشتر درباره ایجاد تجربه‌های فوری و «بسته‌های ترکیبی برنامه Android»، منابع زیر را ببینید:

ویدیو: بسته‌بندی کردن برنامه در یک لحظه
در این جلسه از «نشست تولیدکنندگان نرم‌افزار Android» در سال ۲۰۱۸، با نحوه افزودن تجربه فوری به «بسته ترکیبی برنامه Android» آشنا شوید.
ویدیو: انتشار برنامه‌های کوچک‌تر با Android App Bundle
ببینید دسته‌های برنامه چگونه به شما کمک می‌کنند برنامه‌تان را سریع‌تر توسعه دهید و فایل‌های APK کوچک‌تری برای کاربرانتان ایجاد کنید.
Codelab: اولین بسته ترکیبی برنامه Android شما
راهنمای گام‌به‌گام برای ایجاد «بسته ترکیبی برنامه Android» و افزودن ویژگی به آن.
قالب بسته ترکیبی برنامه Android
درباره نحوه سازمان‌دهی کردن دسته برنامه از کد و منابع برنامه‌تان توسط برنامه خط فرمان bundletool بیشتر بدانید.