הוספת תמיכה בגישה מיידית

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

אפשר לפתח משחקים ל-'Google Play ללא התקנה' באמצעות Unity (עם או בלי Google Play ללא התקנה Unity יישומי פלאגין), Cocos2D, Android Studio או מנוע מותאם אישית משלכם.

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

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

פעילות שכוללת את מסנן Intent הבא הופכת לנקודת הכניסה. לחוויית 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 Games. אפשר גם להתחיל את הפעילות ישירות דרך API לקישורי עומק.

הגדרת קודי הגרסאות הנכונים

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

כדי לוודא שאתם פועלים לפי סכמת ניהול הגרסאות המומלצת, פועלים לפי אחת מהאפשרויות האסטרטגיות האלה:

  • צריך להפעיל מחדש את קודי הגרסאות של Google Play ללא התקנה לגרסה 1.
  • הגדלת קוד הגרסה של האפליקציה שניתנת להתקנה במספר גדול, כמו 1000, כדי להבטיח שיש מספיק מקום לגרסת החוויה המיידית במספר גדול יותר.

מותר לפתח את המשחק ללא התקנה ואת המשחק שניתן להתקנה בשני שלבים נפרדים פרויקטים של Android Studio. אם תעשו זאת, תצטרכו לבצע את הפעולות הבאות כדי פרסום המשחק ב-Google Play:

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

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

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

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

ביטול ההסכמה לתנועת טקסט ללא הצפנה

משחקים ב-'Google Play ללא התקנה' לא תומכים בתנועת HTTP. אם המשחק שלך מטרגטת את Android 9 (רמת API 28) ואילך, Android משביתה את התמיכה בטקסט ללא הצפנה במשחק כברירת מחדל.

אם המשחק מטרגט את Android 8.1 (רמת API 27) ומטה, צריך יוצרים קובץ Network Security Config. בקובץ הזה, מגדירים את 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>

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

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

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

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

לא להסתמך על הנוכחות של מטמון או נתוני אפליקציה

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

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

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

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

צמצום גודל האפליקציה

בניגוד לסוגים אחרים של אפליקציות, למשחקים ב-'Google Play ללא התקנה' יש מגבלת גודל הורדה של 15MB. כדי ליצור משחק בגודל הזה: אולי תצטרכו לארגן מחדש את לוגיקת המשחק. בקטע הזה מתוארים כמה כלים שיעזרו לך לבצע אופטימיזציה לגודל המשחק.

כלים

רשימת הכלים הבאה יכולה לעזור לכם לקבוע מה תורם גודל המשחק:

  • הכלי לניתוח APK: מספק תמונה מקיפה של תוכן של APK שעבר הידור. בעזרת התצוגה הזו אפשר לקבוע כמה בייטים שכל רכיב תורם לגודל הכולל. הכלי הזה מאפשר לכם לבדוק במהירות את גודל המשאבים, הנכסים, הלוגיקה וספריות ה-Native שבו המשחק משתמש.
  • Bloaty McBloatface: הצגת פרופיל הגודל של קבצים בינאריים.
  • Android GPU Inspector: הצגת ההשפעה של גודל הקובץ להקטנת המרקם בלי שיהיה צורך להדר את המשחק מחדש.

טכניקות

הנה רשימה של טכניקות שאפשר להשתמש בהן כדי להקטין את הגודל של המשחק שלך:

  • צריך לחלץ חלק מהלוגיקה של המשחק ולמקם אותו בתכונה אחת או יותר מודולים, נכללים במגבלת הגודל.
  • צריך להוריד את הרזולוציה של המרקמים של המשחק.
  • מומלץ להשתמש WebP , במיוחד אם אתם משתמשים במרקמים לא דחוסים ב-GPU. ה-WebP יוצר תמונות באיכות זהה לזו של תמונות JPEG, אך הן 15% עד קטן ב-30%. למרות שלוקח יותר זמן לבטל את הדחיסה של תמונות WebP, זמן ביטול הדחיסה עדיין קצר משמעותית מזמן ההורדה של של המשחק. Google גם שילבה את הפורמט במשחק בקוד פתוח של מנוע החיפוש.
  • לדחוס את הצלילים והמוזיקה או להשתמש בהם שוב.
  • השתמשו בדגלים שונים של הידור (compilation) כדי להקטין את הקובץ הבינארי:
    • -fvisibility=hidden – הכי חשוב. ב-cmake אפשר לציין אותה כך:
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
      
    • -Oz – חשוב גם להקטין את הגודל. אם אתם הידור באמצעות gcc, השתמשו -Os במקום זאת.
    • -flto – לפעמים מקטין את גודל הקובץ.
    • דגלים מסוג Linker – השתמשו ב---gc-sections יחד עם דגלי מהדר, כמו בתור -ffunction-sections ו--fdata-sections.
  • משתמשים ב-ProGuard כדי לכווץ את הקוד והמשאבים.
  • אפשר להשתמש ב-Gradle מגרסה 4.4 ואילך כדי ליצור קובצי DEX קטנים יותר.
  • הטמעת העברת נכסים בענן.

חלוקת משחק גדול לכמה חבילות APK

יכול להיות קשה לבצע אופטימיזציה של החוויה ב-'Google Play ללא התקנה' מתאימים את המשחק לחבילת APK אחת בגודל 15MB, גם אחרי שמחילים את המלצות להקטנת גודל ה-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 API – אפליקציה לדוגמה

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

מידע נוסף על 'Google Play ללא התקנה' זמין במקורות הנוספים הבאים:

Codelab: איך יוצרים אפליקציה ללא התקנה ראשונה
הוספת תמיכה ב-'Google Play ללא התקנה' לאפליקציה קיימת.
Codelab: פיתוח אפליקציה ללא התקנה מרובת תכונות
מודולריזציה של אפליקציה עם כמה תכונות.