הפחתת עלויות הנתונים למיליארדים

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

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

הקטנת גודל האפליקציה

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

הקטנת הגודל של נכסים גרפיים ב-APK

  • נכסים גרפיים הם בדרך כלל המרכיב הכבד ביותר במשקל של קובץ ה-APK. אופטימיזציה של הנכסים האלה יכולה להקטין את גודל ההורדות וכך לקצר את זמני ההתקנה למשתמשים.
  • לנכסים גרפיים כמו סמלים, צריך להשתמש בפורמט Scalable Vector Graphics ‏ (SVG). הגודל של תמונות SVG קטן מאוד בהשוואה לגרפיקת מפת סיביות, ואפשר לעבד אותן בזמן ריצה בכל רזולוציה. ספריית התמיכה של Android מספקת הטמעה עם תאימות לאחור של משאבי וקטור ל-Android 2.1 (רמת API‏ 7). במאמר הזה ב-Medium מוסבר איך מתחילים להשתמש בווקטורים.
  • לתמונות שאינן וקטוריות, כמו תמונות, כדאי להשתמש בפורמט WebP כדי לקצר את זמני הטעינה של התמונות ולחסוך ברוחב הפס של הרשת. הוכח שפורמט WebP יוצר קבצים קטנים יותר מאלה של PNG ו-JPG, עם איכות תמונה זהה לפחות. גם בהגדרות עם אובדן נתונים, WebP יכול ליצור תמונה כמעט זהה למקור. ‫Android כולל תמיכה ב-WebP עם דחיסה אובדת נתונים מאז Android 4.0 (רמת API‏ 14: Ice Cream Sandwich) ותמיכה ב-WebP ללא דחיסה אובדת נתונים ושקוף מאז Android 4.2 (רמת API‏ 17: Jelly Bean).
  • אם יש לכם הרבה תמונות גדולות בכמה צפיפויות, כדאי להשתמש בתמיכה בכמה חבילות APK כדי לפצל את חבילת ה-APK לפי צפיפות. כתוצאה מכך, נוצרים קובצי build שמיועדים לצפיפויות מסוימות, כך שמשתמשים עם מכשירים בצפיפות נמוכה לא יצטרכו לשלם את המחיר של הורדת נכסים בצפיפות גבוהה שלא נמצאים בשימוש.
  • מידע נוסף על הקטנת גודל ה-APK זמין במאמרים הקטנת גודל ה-APK והקטנת הקוד והמשאבים. בנוסף, בסדרת הפוסטים הזו ב-Medium יש מדריך מפורט לצמצום הגודל של קובץ APK.

הקטנת גודל הקוד

  • כל ספרייה בפרויקט Android מוסיפה קוד שלא בשימוש לחבילת ה-APK. כדאי להיזהר במיוחד כשמשתמשים בספריות חיצוניות, כי לא כל הספריות מיועדות לשימוש באפליקציות לנייד. מוודאים שהספריות שבהן האפליקציה משתמשת מותאמות לשימוש בנייד.
  • כדאי לבצע אופטימיזציה של הקוד המהודר באמצעות כלי כמו ProGuard. ‫ProGuard מזהה קוד שלא נמצא בשימוש ומסיר אותו מחבילת ה-APK. בנוסף, מפעילים כיווץ משאבים בזמן ה-build על ידי הגדרת minifyEnabled=true, shrinkResources=true ב-build.gradle – כך המערכת מסירה אוטומטית משאבים שלא נמצאים בשימוש מה-APK.
  • כשמשתמשים בשירותי Google Play, צריך לכלול באופן סלקטיבי רק את ממשקי ה-API הדרושים ב-APK.
  • מידע נוסף על צמצום גודל הקוד בחבילת ה-APK זמין בהדרכה בנושא Android איך להימנע משימוש במסגרות להזרקת תלות.

אפשר להעביר את האפליקציה לאחסון חיצוני (SD)

  • במכשירים זולים יש לרוב נפח אחסון קטן. המשתמשים יכולים להרחיב את האחסון באמצעות כרטיסי SD, אבל האפליקציות צריכות להצהיר במפורש שהן תומכות בהתקנה באחסון חיצוני לפני שהמשתמשים יוכלו להעביר אותן.
  • כדי לאפשר התקנה של האפליקציה באחסון חיצוני, צריך להשתמש בדגל android:installLocation בקובץ AndroidManifest.xml. מידע נוסף על הפעלת האפשרות להעברת האפליקציה לאחסון חיצוני זמין במדריך Android בנושא מיקום התקנת האפליקציה.

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

  • אם האפליקציה שלכם לא תתפוס הרבה מקום בדיסק, יש סיכוי נמוך יותר שהמשתמשים יסירו אותה כשהמכשיר שלהם יתמלא. חשוב להגדיר גבולות למטמון כדי למנוע את הגדלת השימוש בדיסק של האפליקציה ללא הגבלה. חשוב להקפיד להכניס את הנתונים שבמטמון לתיקייה getCacheDir() – המערכת יכולה למחוק קבצים שמוצבים כאן לפי הצורך, כך שהם לא יופיעו כנתונים שנשמרו באפליקציה.

הצעת שימוש ברשת שניתן להגדרה

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

יצירת חוויות הצטרפות לרשתות של המשתמשים

  • אפליקציות שמאפשרות למשתמשים לצמצם את השימוש בנתונים מתקבלות בברכה, גם אם יש להן דרישות גבוהות לנתונים. אם האפליקציה שלכם משתמשת ברוחב פס משמעותי (לדוגמה, אפליקציות להזרמת וידאו), אתם יכולים לספק למשתמשים חוויה של התחלת שימוש שתאפשר להם להגדיר את השימוש ברשת. לדוגמה, אתם יכולים לאפשר למשתמש להפעיל בכוח סטרימינג של סרטונים עם קצב העברת נתונים נמוך יותר ברשתות סלולריות.
  • הגדרות נוספות שמאפשרות למשתמשים לשלוט בסנכרון הנתונים, באחזור מראש ובאופן השימוש ברשת (למשל, אחזור מראש של כל קטגוריות החדשות המסומנות בכוכב רק ב-Wi-Fi) עוזרות למשתמשים להתאים את אופן הפעולה של האפליקציה לצרכים שלהם.
  • מידע נוסף על ניהול השימוש ברשת זמין בהדרכה בנושא Android ניהול השימוש ברשת.

הצגת מסך העדפות רשת

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

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

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

פוסטים בבלוג