אזהרה: התכונה 'Google Play ללא התקנה' לא תהיה זמינה יותר. החל מדצמבר 2025, לא תהיה אפשרות לפרסם אפליקציות ללא התקנה דרך Google Play, וכל ממשקי Instant API של Google Play Services יפסיקו לפעול. המשתמשים לא יקבלו יותר אפליקציות מיידיות מ-Play באמצעות מנגנון כלשהו.
אנחנו מבצעים את השינוי הזה על סמך משוב שקיבלנו ממפתחים וההשקעות המתמשכות שלנו בשיפור הסביבה העסקית מאז השקת Google Play ללא התקנה.
כדי להמשיך לבצע אופטימיזציה לצמיחת מספר המשתמשים, אנחנו ממליצים למפתחים להפנות את המשתמשים לגרסה הרגילה של האפליקציה או המשחק באמצעות קישורי עומק, כדי להפנות אותם למסלולים או לתכונות ספציפיים כשזה רלוונטי.
Google Play ללא התקנה מספק חוויה עשירה וטבעית בלחיצה על קישור לאתר. אנשים יכולים להשתמש באפליקציה שלכם בלי להתקין אותה מראש, וכך אתם יכולים לשפר את רמת האינטראקציה עם המשתמשים. כדי שאפליקציה מיידית תיטען במהירות כמו דף אינטרנט רגיל לנייד, צריך ליצור אפליקציה מיידית יעילה ומובנית היטב. ככל שהקובץ הבינארי של האפליקציה המיידית קטן יותר, כך היא נטענת מהר יותר וחוויית המשתמש חלקה יותר.
במאמר הזה מפורטות שיטות מומלצות לניהול המבנה של האפליקציה וגודל הקובץ הבינארי שלה, כדי לאפשר חוויה חלקה של אפליקציה מיידית. אפשר ליישם את אותן שיטות מומלצות גם באפליקציה שניתנת להתקנה.
שינוי מבנה הקוד למודולים מרובים של תכונות
השיפור הכי גדול בגודל הבינארי של האפליקציה מתרחש כשמבצעים רפקטורינג של האפליקציה לכמה מודולים של תכונות. מתחילים עם מודול תכונות בסיס, ואז מחלצים תהליכי עבודה שקשורים לנושא מסוים למודולי תכונות משלהם. מקצים פעילות התחלתית וכתובת URL ייחודית לכל מודול תכונות, כדי שהמשתמשים יוכלו להשלים את תהליך העבודה של המודול בהצלחה.
כשיוצרים מודולים של תכונות, חשוב שמודול התכונות הבסיסי יהיה קטן ככל האפשר. חשוב במיוחד לשים לב לחלקים באפליקציה שנדרשת בהם גישה לספריות התלויות. אם רק מודול תכונה אחד משתמש בספרייה מסוימת, צריך לייבא את הספרייה הזו במודול התכונה עצמו, ולא במודול התכונה הבסיסי. חשוב לזכור שכדי לפרסם אפליקציה מיידית למודול תכונות מסוים, הגודל הכולל של מודול התכונות הזה ומודול התכונות הבסיסי צריך להיות קטן מ-15 MB.
שיטות מומלצות
כשמבצעים רפקטורינג באפליקציה, כדאי לזכור את השיטות המומלצות הבאות:
- שימוש באותו בסיס קוד לשני סוגי האפליקציות
- אתם יכולים לפשט את תהליך ניהול הפרויקט של האפליקציה באמצעות אותו בסיס קוד מודולרי כדי ליצור גם את האפליקציה המותקנת וגם את האפליקציות המיידיות.
- תכנון למודולים מרובים של תכונות
- גם אם באפליקציה יש רק תהליך עבודה אחד ונדרש רק מודול תכונות אחד כרגע, עדיין מומלץ לתכנן את האפליקציה כך שתתמוך בכמה מודולים של תכונות. כך תוכלו להוסיף מודולים קיימים לאפליקציה בלי להשפיע על גודל מודול התכונות המקורי.
- לא להתמקד במגבלת הגודל של מודול התכונות בהתחלה
- המגבלות על גודל מודול התכונות לא חלות על קבצים בינאריים שנוצרו באופן מקומי. אפשר גם לפרסם אפליקציה מיידית דרך מסלול הבדיקה הפנימית, שבו יש מגבלה של 15 MB על הגודל של מודולי התכונות. רק במסלולים אלפא וסביבת ייצור יש מגבלה של 15 MB.
עדכון משאבי אפליקציות
חלק מהאפליקציות, במיוחד אלה עם היסטוריה ארוכה של בסיס הקוד, מכילות משאבים שהקבצים הבינאריים של האפליקציה כבר לא משתמשים בהם. כשמחפשים דרכים להקטין את המודולים של האפליקציה, כדאי לשים לב למקורות הנפוצים הבאים של קוד מיותר.
הקטנת גודל הקובץ של תמונות
אפשר להקטין באופן משמעותי את הגודל הכולל של משאבי הציור של האפליקציה באמצעות הפורמט WebP במקום PNG. Google Play Instant מספק תמיכה מלאה בפורמט WebP, כולל שקיפות ודחיסה ללא אובדן נתונים, כך שאיכות התמונה נשארת זהה.
אם אפשר, כדאי להסיר את כל הדרישות לתאימות לאחור לשימוש בתמונות PNG אחרות. אם אתם חייבים להשתמש בתמונות PNG, אתם יכולים למקם אותן במודול שמשמש לבנייה ולהתקנה של האפליקציה.
הסרה של שפות שלא בשימוש
אם האפליקציה שלכם תומכת בכמה שפות, כדאי לצמצם כמה שיותר משאבים מותאמים לשפות שונות. השלב הזה שימושי במיוחד אם אתם משתמשים בספרייה של "תאימות לאפליקציות", כמו android.support.v7.appcompat
.
הספרייה הזו כוללת הודעות בשפות רבות, שחלקן לא נתמכות באפליקציה שלכם.
מידע נוסף זמין במאמר בנושא הסרת משאבים חלופיים שלא נמצאים בשימוש, במיוחד שפות שלא נמצאות בשימוש.
הסרת קבצים מיותרים
יכול להיות שהאפליקציה שלכם כבר לא משתמשת בחלק מהמשאבים שיובאו לפרויקט. כדי לעזור להסיר את המשאבים האלה, ב-Android Studio יש בדיקת Lint למצב הספציפי הזה. כדי להשתמש בכלי, מבצעים את השלבים הבאים:
- מקישים על Control+Alt+Shift+I (Command+Alt+Shift+I ב-Mac OS).
- בתיבת הדו-שיח שמופיעה, מקלידים
"unused resources"
. - בוחרים באפשרות Unused resources (משאבים שלא נעשה בהם שימוש) כדי להתחיל בתהליך הבדיקה של השימוש במשאבים.
אם יש באפליקציה משאבים גדולים, כדאי לשקול אם אפשר לבטל את האריזה שלהם מהאפליקציה ולהוריד אותם כקבצים עצמאיים אחרי שהמשתמש מתחיל לקיים אינטראקציה עם האפליקציה. בדרך כלל, דחיית טעינה כזו של תמונות דורשת שינוי בקוד, אבל היא יכולה להקטין באופן משמעותי את גודל הקובץ של האפליקציה המיידית, כי רק המשאבים שהמשתמש מבקש במפורש יורדים.
הסרה של ספריות שלא בשימוש
ככל שההיקף של האפליקציה גדל, היא יכולה לקבל מספר מפתיע של תלות, במיוחד באחד מהסוגים הבאים:
- ספריות מקוריות: ספריות שמכילות קוד מקורי שאפליקציית ה-Instant שלכם אף פעם לא מפעילה.
- תלויות טרנזיטיביות: ספריות שהספריות המיובאות של האפליקציה תלויות בהן.
ב-Android Studio יש כמה כלים שימושיים לזיהוי תלות חיצונית בפרויקט של האפליקציה:
- ספריות חיצוניות
התצוגה Project ב-Android Studio כוללת את הקטע External Libraries.
בקטע הזה מופיעה כל ספרייה שהאפליקציה משתמשת בה, כולל קוד מקורי וכל יחסי התלות המעבריים. בתצוגה הזו, מחפשים ספריות כפולות או ספריות שלא נמצאות בשימוש, שלא נדרשות לאפליקציה.
- הכלי לניתוח APK
אתם יכולים להשתמש בכלי APK Analyzer כדי להשוות בין גרסאות build שונות, כולל גרסאות build של אפליקציות ללא התקנה.
אחרי שמזהים את הספריות שהאפליקציה לא צריכה, מוסיפים לקובץ Gradle build שורות דומות לאלה כדי להחריג אותן:
<feature_module>/build.gradle
מגניב
dependencies { implementation('some-important-but-large-library') { exclude group: 'com.example.imgtools', module: 'native' } }
Kotlin
dependencies { implementation('some-important-but-large-library') { exclude(group = "com.example.imgtools", module = "native") } }
מידע נוסף על צמצום הגודל הכולל של יבוא התלות של האפליקציה זמין במדריך של Gradle בנושא ניהול תלות.
הטמעה של העברת נכסים בענן
אם אתם צריכים להקטין עוד יותר את הגודל, יכול להיות שתצטרכו להסתמך על העברת נכסים בענן.