יצירת App Bundle שמופעלת ללא התקנה

כדי ליצור חוויית Google Play ללא התקנה צריך לכלול אותה כחלק מ קובץ Android App Bundle. חבילה כזו נקראת App Bundle שמופעל באופן מיידי. במסמך הזה מוסבר איך להגדיר סביבת פיתוח לקובצי App Bundle שמופעלים ללא התקנה, וגם איך להגדיר, לפתח, לבדוק ולפרסם App Bundle שמופעל ללא התקנה.

אם יש לכם פרויקט קיים של אפליקציה ללא התקנה שנעשה בו שימוש בתכונה שהוצאה משימוש יישומי פלאגין (com.android.feature), למד כיצד צריך להעביר את האפליקציה ללא התקנה לתמיכה בקובצי Android App Bundle.

הגדרה של סביבת פיתוח

כדי לספק חוויה ללא התקנה בתוך App Bundle, צריך גישה אל SDK לפיתוח מיידי של Google Play. תוכלו להתקין את ה-SDK באמצעות באחת מהשיטות הבאות:

  • מתקינים את Android Studio 3.6 ואילך. אחרי שפותחים את Android Studio, להוריד את ה-SDK של Google Play לפיתוח מיידי מכלי ה-SDK במנהל ה-SDK.
  • התקנה משורת הפקודה:

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

בנוסף, אם רוצים לבדוק את החוויה המיידית באופן מקומי, מקבלים גישה אל מכשיר פיזי או וירטואלי.

מידע על תנאי הביצוע הנדרשים

Google Play ללא התקנה מפעיל קובצי App Bundle שמופעלים ללא התקנה בסוג מיוחד של להגביר את האבטחה ב-Sandbox של SELinux. ארגז החול הזה מאפשר קבוצת משנה של הרשאות, וכן סוגים מסוימים של אינטראקציות עם אפליקציות אחרות. בקטעים הבאים נסביר בצורה מפורטת יותר את המאפיינים של ארגז החול הזה.

ההרשאות והפעולות הנתמכות

קובצי App Bundle שמופעלים ללא התקנה יכולים להשתמש רק בהרשאות מהרשימה הבאה:

טיפול בהרשאות נפוצות שלא נתמכות

בהמשך מופיעה רשימה של הרשאות נפוצות שאינן נתמכות שצריך להסיר מהאפליקציה שלכם ומנתיב ההעברה המומלץ לכל:

  • 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 Cloud Messaging (FCM). FCM עושה אין צורך בהרשאות נוספות כדי לעבוד.

בנוסף, קובצי App Bundle שמופעלים ללא התקנה לא יכולים לבצע את הפעולות הבאות:

גישה לאפליקציות המותקנות

כשאתם מפתחים חוויה מיידית, חשוב לזכור שהיא לא יכולה לקיים אינטראקציה איתה מותקנות במכשיר, אלא אם מתקיים אחד מהתנאים הבאים:

  • פעילות אחת או יותר בתוך אפליקציה מותקנת קבעה רכיב android:visibleToInstantApps אל trueהרכיב הזה זמין לאפליקציות עם Android בגרסה 8.0 (רמת API 26) ואילך.
  • אפליקציה מותקנת מכילה מסנן Intent שכולל CATEGORY_BROWSABLE
  • החוויה המיידית שולחת כוונה באמצעות ACTION_SEND ACTION_SENDTO, או ACTION_SEND_MULTIPLE פעולה.

הגדרת הפרויקט לחוויות מיידיות

כדי להתאים את Google Play ללא התקנה, צריך להגדיר כמה חשוב להפעיל שיקול דעת בעת השימוש ב-App Bundle שמופעלת ללא התקנה. הקטעים הבאים נתאר את השיקולים האלה.

הצהרה על יחסי תלות של פרויקטים

כדי להשתמש בממשקי ה-API של 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 Studio. אם תעשו זאת, תצטרכו לבצע את הפעולות הבאות כדי פרסום האפליקציה ב-Google Play:

  1. להשתמש באותו שם חבילה בשני הפרויקטים של Android Studio.
  2. ב-Google Play Console, מעלים את שתי הווריאציות לאותה האפליקציה.

פרטים נוספים על הגדרת גרסת האפליקציה זמינים במאמר גרסה app.

עדכון גרסת היעד של ה-Sandbox

צריך לעדכן את הקובץ AndroidManifest.xml של האפליקציה ללא התקנה כדי לטרגט אל סביבת ארגז החול שנתמכת ב-'Google Play ללא התקנה'. אפשר להשלים העדכון הזה על ידי הוספת המאפיין android:targetSandboxVersion <manifest> רכיב, כפי שמוצג בקטע הקוד הבא:

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

מידע נוסף זמין במשאבי העזרה של targetSandboxVersion .

הצהרה על מודולים של אפליקציות ללא התקנה

ניתן להצהיר שה-App Bundle שלך תומך בחוויות ללא התקנה באמצעות אחד אחת מהשיטות הבאות:

  • אם יש לך App Bundle קיים שמכיל רק את הפרמטר base, של המודול, אפשר להפעיל באופן מיידי את ה-App Bundle באופן הזה:

    1. כדי לפתוח את החלונית פרויקט, בוחרים באפשרות תצוגה > Windows בכלי > פרויקט מסרגל התפריטים.
    2. לוחצים לחיצה ימנית על המודול הבסיסי, שנקרא בדרך כלל 'אפליקציה', ובוחרים ארגון מחדש > הפעלת תמיכה באפליקציות ללא התקנה.
    3. בתיבת הדו-שיח שמופיעה, בוחרים את המודול הבסיסי מהתפריט הנפתח.
    4. לוחצים על אישור.

    מערכת Android Studio מוסיפה את ההצהרה הבאה למניפסט של המודול:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • אם יש לכם App Bundle קיים שמכיל כמה מודולים, אפשר יצירת תכונה להפעלה ללא התקנה . התהליך הזה גם מפעיל באופן מיידי את המודול הבסיסי של האפליקציה, ומאפשר לך לתמוך כניסה מיידית מרובות נקודות בטווח אפליקציה.

הוספת תמיכה בכניסה לחשבון

אם החוויה ללא התקנה מאפשרת למשתמשים להיכנס לחשבון, האפליקציה המותאמת ללא התקנה מאפשרת למשתמשים להיכנס לחשבון החבילה חייבת לתמוך ב-Smart Lock לסיסמאות מופעלת ב-Android. אם אתם "הפעלה ללא התקנה" game, במקום זאת, עליך להשתמש בכניסה ל-Google Play Games Services.

תמיכה בסביבת הביצוע

כדי להיות תואם לארגז החול של SELinux שבו פועלות חוויות מיידיות, צריך לשמור חשוב לזכור את הנקודות הבאות כשיוצרים קובץ App Bundle שמופעל ללא התקנה:

  • לא לשתף את הערך של myUid(), שהליבה מוקצית ליבה (kernel) של תהליך האפליקציה UID.
  • אם האפליקציה מטרגטת את Android 8.1 (רמת API 27) ומטה, צריך ליצור קובץ התצורה של אבטחת הרשת, ומגדירים cleartextTrafficPermitted עד false. אי אפשר להשתמש בחוויות השימוש ב-HTTP . באפליקציות שמטרגטות ל-Android מגרסה 9 ואילך, התנועה בטקסט ללא הצפנה היא מושבת כברירת מחדל.
  • ההורדה של חוויית המשתמש המיידית במכשיר של המשתמש מתבצעת עד המטמון של חוויית השימוש המיידית נמחק, באחת מהאפשרויות הבאות מצבים:

    • המטמון של החוויה המיידית נאסף באשפה כי המכשיר עומד להיגמר הזיכרון הזמין.
    • המשתמש מפעיל מחדש את המכשיר.

    במקרה כזה, המשתמש צריך להוריד מחדש את הגרסה המיידית כדי לקיים אינטראקציה איתו.

  • אם נפח האחסון במערכת עומד להיגמר, יכול להיות נתוני המשתמש של חוויית השימוש המיידית יוסרו מהאחסון הפנימי. לכן, מומלץ לסנכרן מדי פעם נתוני משתמש עם שרת האפליקציה כדי ההתקדמות של המשתמש נשמרת.

הוספת לוגיקה לתהליכי עבודה של ניסיון מיידי

אחרי שמגדירים את ה-App Bundle כך שיתמוך בחוויות השימוש המיידיות, מוסיפים של הלוגיקה שמוצגת בקטעים הבאים.

בדיקה אם האפליקציה מפעילה חוויה ללא התקנה

אם חלק מהלוגיקה של האפליקציה תלויה במעורבות של המשתמש לחוויה המיידית, מפעילים 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 (API ברמה 26) ומעלה, ואם האפליקציה שלך מציינת targetSandboxVersion מתוך 2, ואז נתוני המשתמש יועברו באופן אוטומטי לגרסה המלאה של האפליקציה. אחרת, צריך להעביר את את הנתונים ידנית. כדי לעשות את זה, צריך להשתמש באחד מממשקי ה-API הבאים:

  • למשתמשים עם Android בגרסה 8.0 (רמת API 26) ואילך, משתמשים ב-Cookie API – אפליקציה לדוגמה
  • אם המשתמשים יכולים ליצור אינטראקציה עם החוויה שלכם במכשירים שבהם פועלת מערכת Android 7.1 (API ברמה 25) ומטה, הוספת תמיכה ב-Storage API – אפליקציה לדוגמה

יצירת ה-App Bundle

אתם יכולים להשתמש ב-Android Studio או בממשק שורת הפקודה כדי ליצור App Bundle שמופעלת ללא התקנה.

סטודיו ל-Android

ב-Android Studio, אפשר ליצור את ה-App Bundle על ידי בחירה באפשרות פיתוח > בניית חבילות / חבילות APK > יצירת חבילות. אפשר לקבל מידע נוסף על בניית פרויקט, ראו בניית פרויקט.

ממשק שורת הפקודה (CLI)

אפשר גם ליצור את ה-App Bundle באמצעות הפקודה קו באמצעות Gradle.

תמיכה בארכיטקטורות של 64 ביט

אפליקציות שמתפרסמות ב-Google Play צריכות לתמוך בארכיטקטורות של 64 ביט. הוספת גרסת 64 ביט של האפליקציה משפרת את הביצועים ומגדירה אותך למכשירים עם חומרה של 64 ביט בלבד. מידע נוסף על תמיכה ב-64 ביט

בדיקת החוויה ללא התקנה

לפני פרסום ה-App Bundle המותאם ללא התקנה, אפשר לבדוק את באחד מהמיקומים הבאים כדי לאמת את הפונקציונליות:

סטודיו ל-Android

כדי לבדוק את חוויית השימוש ללא התקנה במחשב מקומי באמצעות Android Studio: מבצעים את השלבים הבאים:

  1. אם מותקנת במכשיר הבדיקה גרסה של האפליקציה, צריך להסיר את הגרסה את זה.
  2. ב-Android Studio, מאפשרויות ההתקנה שמופיעות כללי של הכרטיסייה הפעלה/ניפוי באגים תיבת הדו-שיח פריסה מיידית. app.
  3. בוחרים באפשרות הפעלה > הפעלה בסרגל התפריטים, או לחיצה על הפעלה בסרגל הכלים, ולאחר מכן לבחור את המכשיר שבו ברצונך לבדוק את הגרסה המיידית של האפליקציה לחוויות שונות. חוויית השימוש ללא התקנה של האפליקציה נטענת במכשיר הבדיקה נבחר.

ממשק שורת הפקודה (CLI)

כדי לבדוק את חוויית השימוש המיידית של האפליקציה במחשב מקומי באמצעות שורת הפקודה, מבצעים את השלבים הבאים:

  1. אם מותקנת במכשיר הבדיקה גרסה של האפליקציה, צריך להסיר את הגרסה את זה.
  2. מפעילים את האפליקציה ללא התקנה במכשיר הבדיקה ומריצים אותה בצד ימין. לשם כך, מזינים את הפקודה הבאה:
ia run output-from-build-command

מסלול לבדיקה פנימית

כדי לבדוק את חוויית השימוש המיידית של האפליקציה בחנות Play או בבאנר לפרסם את האפליקציה בבדיקה הפנימית טראק ב-Play Console.

כדי לפרסם את האפליקציה במסלול הבדיקה הפנימית, צריך לפעול לפי השלבים הבאים:

  1. כדי להעלות את ה-App Bundle, פועלים לפי השלבים שמפורטים בקטע העלאת App Bundle למדריך של Play Console.
  2. מכינים את החבילה שהועלתה עבור גרסה למסלול הבדיקה הפנימי. עבור מידע נוסף זמין במאמר התמיכה שמסביר איך להכין השקה גרסאות חדשות.
  3. נכנסים לחשבון של בודק פנימי במכשיר ואז מפעילים את ההגדרה המיידית באחת מהפלטפורמות הבאות:

    • הלחצן אני רוצה לנסות בדף האפליקציה בחנות Play.
    • קישור מבאנר באתר של האפליקציה.

פרסום ה-App Bundle במסלול לסביבת הייצור

כדי לפרסם את קובץ ה-App Bundle שתומך ללא התקנה, צריך לבצע את השלבים הבאים:

  1. אם עדיין לא עשית זאת, צריך לחתום על ה-App Bundle באמצעות גרסה המפתח ומעלים את ה-App Bundle אל Play Console.
  2. ב-Play Console, פותחים את ניהול גרסאות > אפליקציות ללא התקנה ל-Android, ואז עוברים אל המסלול ליצירת אפליקציה מיידית.
  3. בוחרים באפשרות עדכון מהספרייה ואז בוחרים את קובץ ה-App Bundle שמופעל ללא התקנה. שהעליתם.

בוחרים איפה לפרסם את חוויית השימוש ללא התקנה

אפשר להפעיל חוויית שימוש ללא התקנה באפליקציה בקבוצת משנה של המדינות והאזורים שבהם אנשים יכולים להתקין את האפליקציה שלך. היכולת הזו שימושי במקרים שבהם רוצים לקדם את החוויה המיידית של האפליקציה משתמשים שמתגוררים בקבוצה מסוימת של מדינות ואזורים.

מקורות מידע נוספים

מידע נוסף על יצירת חוויות ללא התקנה וקובצי Android App Bundle זמין בכתובת במקורות המידע הבאים:

סרטון: צירוף אפליקציה ברגע
כך מוסיפים חוויה ללא התקנה לקובץ Android App Bundle מכנס המפתחים של Android לשנת 2018.
סרטון: פרסום אפליקציות קטנות יותר באמצעות קובץ Android App Bundle
איך קובצי App Bundle עוזרים לכם לפתח את האפליקציה וליצור מהר יותר חבילות APK קטנות יותר למשתמשים.
Codelab: קובץ Android App Bundle הראשון שלך
מדריך מפורט ליצירת קובץ Android App Bundle ולהוספת תכונות אותו.
הפורמט של קובץ Android App Bundle
מידע נוסף על האופן שבו תוכנת שורת הפקודה bundletool מארגנת אפליקציה מהקוד ומהמשאבים של האפליקציה.