שימו לב: התכונה 'Google Play ללא התקנה' לא תהיה זמינה יותר. החל מדצמבר 2025, לא תהיה אפשרות לפרסם אפליקציות ללא התקנה דרך Google Play, וכל ממשקי Instant API של Google Play Services יפסיקו לפעול. המשתמשים לא יקבלו יותר אפליקציות מיידיות מ-Play באמצעות מנגנון כלשהו.
אנחנו מבצעים את השינוי הזה על סמך משוב שקיבלנו ממפתחים וההשקעות המתמשכות שלנו בשיפור הסביבה העסקית מאז השקת Google Play ללא התקנה.
כדי להמשיך לבצע אופטימיזציה לצמיחת מספר המשתמשים, אנחנו ממליצים למפתחים להפנות את המשתמשים לאפליקציה או למשחק הרגילים שלהם באמצעות קישורי עומק, כדי להפנות אותם למסלולים או לתכונות ספציפיים כשזה רלוונטי.
השלבים להגדרת אפליקציות להפעלה ב-Google Play ללא התקנה, כפי שמוסבר במאמר יצירת האפליקציה הראשונה ללא התקנה, רלוונטיים גם למשחקים. במדריך הזה אנחנו מדגישים כמה שלבי הגדרה שספציפיים למשחקים.
אפשר לפתח משחקים ל-Google Play ללא התקנה באמצעות Unity (עם או בלי התוסף Google Play ללא התקנה Unity), Cocos2D, Android Studio או מנוע מותאם אישית משלכם.
במדריך הזה אנחנו יוצאים מנקודת הנחה שכבר יש לכם מושג לגבי חוויית המשחק שאתם רוצים לספק. כדי לקבל רעיונות ושיטות מומלצות ליצירת משחקים באיכות גבוהה, אפשר לקרוא את המאמר שיטות מומלצות לשיפור חוויית המשתמש במשחקים ב-Google Play ללא התקנה.
בנוסף, לפני שמפרסמים משחק שאפשר להפעיל ב-Google Play ללא התקנה, כדאי לעיין ברשימת המשימות של הדרישות הטכניות.
ציון נקודת כניסה
Activity שכוללת את מסנן 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. אפשר גם להפעיל את הפעילות הזו ישירות באמצעות deep link API.
הגדרת קודי הגרסה הנכונים
קוד הגרסה של חוויית השימוש המיידית במשחק צריך להיות נמוך מקוד הגרסה של המשחק שניתן להתקנה. השיטה הזו של ניהול גרסאות מאפשרת לשחקנים לעבור מחוויית השימוש ב-Google Play ללא התקנה להורדה ולהתקנה של המשחק במכשיר שלהם. מסגרת Android מחשיבה את המעבר הזה כעדכון אפליקציה.
כדי לוודא שאתם פועלים לפי תוכנית ניהול הגרסאות המומלצת, כדאי לפעול לפי אחת מהאסטרטגיות הבאות:
- מפעילים מחדש את קודי הגרסאות של Google Play ללא התקנה, החל מ-1.
- כדי לוודא שיש מספיק מקום למספר הגרסה של חוויית השימוש המיידי, צריך להגדיל את קוד הגרסה של האפליקציה הניתנת להתקנה במספר גדול, כמו 1,000.
אפשר לפתח את המשחק המיידי ואת המשחק שניתן להתקנה בשני פרויקטים נפרדים ב-Android Studio. עם זאת, אם תעשו זאת, תצטרכו לבצע את הפעולות הבאות כדי לפרסם את המשחק ב-Google Play:
- משתמשים באותו שם חבילה בשני הפרויקטים של Android Studio.
- ב-Google Play Console, מעלים את שני הווריאנטים לאותה אפליקציה.
פרטים נוספים על הגדרת הגרסה של המשחק זמינים במאמר בנושא הגדרת גרסה לאפליקציה.
תמיכה בסביבת ההפעלה
בדומה לאפליקציות אחרות, משחקים ב-Google Play ללא התקנה פועלים בארגז חול מוגבל במכשיר. כדי לתמוך בסביבת ההפעלה הזו, צריך לבצע את השלבים שמפורטים בקטעים הבאים.
ביטול ההסכמה לשימוש בתנועה בטקסט גלוי
משחקים ב-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>
עדכון גרסת ארגז החול של היעד
מעדכנים את קובץ AndroidManifest.xml של המשחק ללא התקנה כך שיכוון לסביבת הארגז חול שנתמכת על ידי Google Play ללא התקנה. כדי להשלים את העדכון, מוסיפים את מאפיין android:targetSandboxVersion לרכיב <manifest> של המשחקים, כמו בקטע הקוד הבא:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
מידע נוסף מופיע במאמר בנושא מאפיין targetSandboxVersion.
לא להסתמך על נוכחות של מטמון או נתוני אפליקציה
החוויה המיידית תישאר במכשיר של המשתמש עד שהמטמון של החוויה המיידית יימחק. זה קורה באחד מהמקרים הבאים:
- המטמון של חוויית השימוש המיידי עובר איסוף אשפה כי הזיכרון הזמין במכשיר נמוך.
- המשתמש מפעיל מחדש את המכשיר.
אם אחד מהתהליכים האלה מתרחש, המשתמש צריך להוריד מחדש את חוויית השימוש המיידי כדי להשתמש בה.
אם נפח האחסון במערכת נמוך מאוד, יכול להיות שנתוני המשתמשים של'החוויה המיידית' יוסרו מהאחסון הפנימי. לכן, מומלץ לסנכרן מעת לעת את נתוני המשתמשים עם השרת של המשחק כדי לשמור את ההתקדמות של המשתמש.
צמצום גודל האפליקציה
בניגוד לסוגים אחרים של אפליקציות, למשחקים ב-Google Play ללא התקנה יש מגבלת גודל להורדה של 15 MB. כדי ליצור משחק בגודל כזה, יכול להיות שתצטרכו לשנות את מבנה הלוגיקה של המשחק. בקטע הזה מתוארים כמה כלים וטכניקות שיעזרו לכם לבצע אופטימיזציה של גודל המשחק.
כלים
רשימת הכלים הבאה יכולה לעזור לכם לקבוע מה תורם לגודל המשחק:
- הכלי לניתוח APK: מספק תצוגה הוליסטית של התוכן של קובץ APK שעבר קומפילציה. בתצוגה הזו אפשר לראות את מספר הבייטים שכל רכיב תורם לגודל הכולל. אפשר להשתמש בכלי הזה כדי לבדוק במהירות את הגודל של משאבים, נכסים, לוגיקה וספריות מקוריות שבהם נעשה שימוש במשחק.
- Bloaty McBloatface: מציג את פרופיל הגודל של קבצים בינאריים.
- Android GPU Inspector: אפשר לראות את ההשפעה של הקטנת גודל הטקסטורה על גודל הקובץ בלי לקמפל מחדש את המשחק.
טכניקות
ריכזנו כאן כמה שיטות שיעזרו לכם להקטין את הגודל של המשחק:
- כדאי לחלץ חלק מהלוגיקה של המשחק ולהציב אותה במודולים של תכונות, שלא נכללים במגבלת הגודל.
- מפחיתים את הרזולוציה של הטקסטורות במשחק.
- כדאי להשתמש בפורמט WebP, במיוחד אם אתם משתמשים בטקסטורות לא דחוסות ב-GPU. פורמט WebP יוצר תמונות באיכות זהה לתמונות JPEG, אבל קטנות ב-15% עד 30%. למרות שלוקח יותר זמן לבטל את הדחיסה של תמונות WebP, זמן ביטול הדחיסה הזה עדיין קצר משמעותית מזמן ההורדה של הטקסטורות במשחק. בנוסף, Google שילבה את הפורמט במנוע משחקים בקוד פתוח.
- דחיסה או שימוש חוזר בצלילים ובמוזיקה.
- כדי להקטין את הקובץ הבינארי, אפשר להשתמש בדגלי קומפילציה שונים:
-
-fvisibility=hidden– הכי חשוב. ב-cmake, אפשר לציין את זה באופן הבא:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-
-Oz– חשוב גם להקטנת הגודל. אם אתם מבצעים קומפילציה באמצעותgcc, אתם צריכים להשתמש ב--Os. -
-flto– לפעמים מקטין את גודל הקובץ. - דגלי מקשר – משתמשים בדגל
--gc-sectionsבשילוב עם דגלי קומפיילר, כמו-ffunction-sectionsו--fdata-sections.
-
- אפשר להשתמש ב-Proguard כדי לצמצם את הקוד והמשאבים.
- כדי ליצור קובצי DEX קטנים יותר, צריך להשתמש ב-Gradle גרסה 4.4 ואילך.
- הטמעה של העברת נכסים בענן.
חלוקת משחק גדול לכמה קובצי APK
יכול להיות שיהיה קשה לבצע אופטימיזציה של חוויית השימוש המיידי ב-Google Play כדי שהמשחק יתאים לקובץ APK יחיד בגודל 15 MB, גם אחרי שמיישמים את ההמלצות להקטנת גודל ה-APK. כדי להתמודד עם הבעיה הזו, אפשר לחלק את המשחק לכמה חבילות APK. השחקנים מתחילים בהורדה של חבילת ה-APK הראשית והבסיסית. בזמן שהם משחקים, חבילות ה-APK המפוצלות שנותרו זמינות למשחק ברקע.
לדוגמה, קובץ ה-APK הבסיסי יכול להכיל את מנוע המשחק המרכזי ואת הנכסים שנדרשים להצגת מסך טעינה. כשחבילת ה-APK הבסיסית מופעלת, מוצג מסך הטעינה ומיד נשלחת בקשה לחבילת APK מפוצלת נוספת שמכילה את המשחק ואת נתוני השלב. אחרי שקובץ ה-APK המפוצל יהיה זמין, אפשר יהיה לטעון את הנכסים שלו למנוע המשחק ולספק לשחקן את התוכן שהוא צריך כדי להתחיל את המשחק.
אימוץ שיטות מומלצות לחוויית משתמש
אחרי שמגדירים את המשחק כך שיתמוך בחוויות מיידיות, מוסיפים את הלוגיקה שמוצגת בקטעים הבאים כדי לספק חוויית משתמש טובה.
תמיכה בארכיטקטורות של 64 ביט
אפליקציות שמתפרסמות ב-Google Play צריכות לתמוך בארכיטקטורות של 64 ביט. הוספה של גרסת 64 ביט לאפליקציה משפרת את הביצועים ומכינה אתכם למכשירים עם חומרה שתומכת ב-64 ביט בלבד. מידע נוסף על תמיכה ב-64 ביט
בודקים אם המשחק מפעיל חוויית שימוש מיידי
אם חלק מהלוגיקה של המשחק תלויה בשאלה אם המשתמש משתתף בחוויית שימוש מיידי, צריך להפעיל את השיטה isInstantApp(). השיטה הזו מחזירה true אם התהליך שפועל כרגע הוא חוויית שימוש מיידי.
הבדיקה הזו מאפשרת לכם לקבוע אם האפליקציה צריכה לפעול בסביבת הרצה מוגבלת או אם היא יכולה לנצל את התכונות של הפלטפורמה.
הצגת בקשה להתקנה
אם יצרתם חוויית שימוש מיידי ב-Google Play ללא התקנה, בשלב מסוים המשחק צריך להציג לשחקן הנחיה להתקין את הגרסה המלאה במכשיר. כדי לעשות את זה, משתמשים ב-method showInstallPrompt() ב-Google APIs for Android.
במאמר שיטות מומלצות לחוויית משתמש במשחקים ב-Google Play ללא התקנה מוסבר איך ומתי כדאי להציג לשחקן בקשה להתקנה.
העברת נתונים לחוויה מותקנת
אם שחקן נהנה מחוויית השימוש בגרסת הניסיון, הוא עשוי להחליט להתקין את הגרסה המלאה של המשחק. כדי לספק חוויית משתמש טובה, חשוב שההתקדמות של השחקן תועבר מחוויית השימוש המיידי לגרסה המלאה של המשחק.
אם המשחק שלכם מציין targetSandboxVersionבסך 2, ההתקדמות של השחקן מועברת אוטומטית לגרסה המלאה של המשחק. אחרת, תצטרכו להעביר את הנתונים שקשורים להתקדמות השחקן באופן ידני. כדי לעשות זאת, משתמשים ב-Cookie API – אפליקציה לדוגמה
מקורות מידע נוספים
מידע נוסף על Google Play ללא התקנה זמין במקורות הבאים:
- Codelab: בניית האפליקציה הראשונה ללא התקנה
- הוספת תמיכה ב-Google Play ללא התקנה לאפליקציה קיימת.
- Codelab: בניית אפליקציה ללא התקנה עם כמה תכונות
- הפיכת אפליקציה עם כמה תכונות למודולרית.