חוויית משתמש מעולה היא מרכזית למשימה של Android, וכדי לעמוד בהבטחה הזו צריך לוודא שהמכשירים מהירים, רספונסיביים ואמינים. לכן, אופטימיזציה של הזיכרון חשובה יותר מתמיד. בכל הסביבה העסקית, מכשירים חדשים שומרים על קיבולת הזיכרון הפיזי שלהם או אפילו מקטינים אותה בתגובה לעליית המחירים של הזיכרון, אבל המשתמשים ממשיכים לצפות לחוויית שימוש חלקה באפליקציות עם ביצועים גבוהים.
ב-Android 17, הצגנו מגבלות זיכרון לכל אפליקציה, החל ממכשירי Pixel, כדי לעזור להגן על חוויית המשתמש הכוללת מפני אפליקציות שמשתמשות בזיכרון עודף וגורמות להאטה במערכת כולה. בשנה הקרובה, מספר הולך וגדל של יצרנים ינצלו את מגבלות הזיכרון לכל אפליקציה ב-Android במגוון תצורות של זיכרון RAM במכשירים שלהם, מ-4GB ועד 16GB ומעלה. אם האפליקציה חורגת מהמגבלות האלה, היא תפעל לאט יותר ויכול להיות שהיא תושבת. אופטימיזציה של הזיכרון שבשימוש של האפליקציה חיונית כדי למנוע הגבלת רוחב פס על ידי מערכת ההפעלה ולשמור על חוויית משתמש חלקה.
במאמר הזה נסביר איך המגבלות האלה פועלות, איך אפשר למדוד את הזיכרון שבשימוש באמצעות מדדים חדשים של תפקוד האפליקציה, ומהם השלבים המעשיים לאופטימיזציה של האפליקציה או המשחק.
הסבר על מגבלות הזיכרון
כשהאפליקציה חורגת ממגבלת הזיכרון שלה, מערכת Android נוקטת פעולות הדרגתיות כדי להגן על מהירות התגובה של המכשיר:
- החלפת zRAM: אם האפליקציה מגיעה למגבלה שהוקצתה לה, המערכת מכריחה את הדפים של האפליקציה להיכנס ל-zRAM (זיכרון RAM דחוס). למרות ש-zRAM מונע פינוי מיידי, דחיסה וביטול דחיסה של דפים מוסיפים עומס יתר על המעבד, מה שעלול לגרום לבעיות ניכרות בממשק המשתמש ולהאטה בחוויית השימוש.
- סיום התהליך: אם השימוש בזיכרון של האפליקציה ממשיך לגדול מעבר לסף של zRAM, המערכת תסיים את התהליך. כדי לבדוק אם הסשן באפליקציה הושפע מהמגבלות האלה בשטח, אפשר להתקשר אל
getDescription()תוךApplicationExitInfo. אם המערכת החילה מגבלה, סיבת היציאה תדווח כ-REASON_OTHERומחרוזת התיאור תכיל את הערך MemoryLimiter:AnonSwap. אפשר גם להשתמש בפרופילים מבוססי טריגר באמצעותTRIGGER_TYPE_ANOMALYכדי לתעד באופן אוטומטי dump ערימה כשמגיעים למגבלת הזיכרון.
מידע נוסף על מגבלות זיכרון לכל אפליקציה ועל אכיפה של המערכת זמין בתיעוד בנושא מגבלות זיכרון לאפליקציות ב-Android 17. כדי לבדוק את האפליקציה בתצורות שונות של מכשירים, משתמשים בפקודות adb של Memory Limiter.
מעקב אחרי בעיות בזיכרון ואבחון שלהן
אי אפשר לבצע אופטימיזציה של מה שלא ניתן למדוד. כדי לזהות דליפות זיכרון, הקצאות מוגזמות של ערימה וקריסות של חוסר בזיכרון (OOM) בסביבה העסקית של Android, צריך להשתמש בכלים משלימים למעקב:
- תמונת מצב ברמת המאקרו באמצעות נתוני תפקוד האפליקציה ב-Android: כדי לקבל תמונה רחבה ברמת האוכלוסייה בלי להוסיף עומס, נתוני תפקוד האפליקציה ב-Android ב-Google Play Console מספקים מדדים חיוניים כמו שימוש בזיכרון (RSS אנונימי + החלפה) ושימוש בזיכרון של מפת סיביות. כך מקבלים תמונה ברורה של חלוקת הזיכרון בין מצבי תהליך שונים (חזיתי, רקע, שירותים שהמשתמשים רואים וזיכרון מטמון) ובין טווחי סיווג RAM, מה שעוזר לזהות חריגות בזיכרון.
- יציאות של Memory Limiter ומעקב אחר OOM באמצעות Firebase Crashlytics: כדי לקבל מידע על ירידה חמורה בזיכרון לפני שהיא משפיעה על המדדים העיקריים, ב-Crashlytics גרסה 20.1.0 נוספו נתוני ניפוי באגים שיעזרו לכם לזהות חריגות של Out-Of-Memory (OOM) וסגירות של Memory Limiter, לתת להן עדיפות ולתקן אותן. מעקב אחרי האירועים האלה לצד יומנים בהתאמה אישית ומטא-נתונים של מפתח/ערך מספק לכם הקשר מיידי לגבי סטטוס התהליך כשמתרחש כשל בזיכרון.
- מעקב בשדה באמצעות ProfilingManager: לצוותים שיכולים לתחזק מסגרת של יכולת מעקב אחר ביצועים, ה-API
ProfilingManagerשהוצג ב-Android 15 (רמת API 35) מאפשר לאפליקציה לבקש ולאסוף באופן פרוגרמטי פריטי מידע מפורטים לניפוי באגים בזיכרון, כמו Java heap dumps ופרופילי heap, ישירות ממכשירי ייצור. אפשר גם להפעיל צילום של תמונת מצב של הזיכרון על סמך אותות ספציפיים של המערכת, כמוTRIGGER_TYPE_OOMו-TRIGGER_TYPE_ANOMALY.
מידע נוסף על טכניקות אחרות למעקב אחרי הזיכרון זמין בתיעוד שלנו.
סיכום והשלבים הבאים
מערכת Android מרחיבה את מגבלות הזיכרון לכל אפליקציה בכל סוגי ה-RAM, ולכן עכשיו זה הזמן לבדוק את הזיכרון שבשימוש:
- קובעים עדיפות לאופטימיזציות של הזיכרון: כדי למנוע השפעה על האפליקציה בגלל מגבלות הזיכרון שלה, כדאי להשתמש בשיטות מומלצות.
- מעקב אחרי השימוש בזיכרון: עוקבים אחרי התנהגות הזיכרון של האפליקציה כדי לזהות ולפתור התנהגות חריגה.
- אופטימיזציה של המשחק: כדאי לפעול לפי ההנחיות העדכניות למשחקים ולאפליקציות מולטימדיה מורכבות כדי למקסם את החיסכון בזיכרון בכל מצבי התהליך.
מקורות מידע וחומרי עזר שימושיים
- שינויים בהתנהגות ב-Android 17: מגבלות על זיכרון האפליקציה
- Android Vitals: Memory Usage (RSS + swap metric) ו-Bitmap Memory Usage
- בלוג המפתחים של Android: הגדרת עדיפות לשלבים של יעילות הזיכרון ב-Android 17
- מדריך למפתחים: ניהול הזיכרון של האפליקציה
-
חדשות על מוצריםהיום אנחנו משיקים את Android 17 ומאפשרים להשתמש בו ברוב מכשירי Pixel הנתמכים. בחודשים הקרובים יושקו מכשירים חדשים עם Android 17.
Matthew McCullough • 13 min read -
חדשות על מוצריםב-Google I/O 2026, הצגנו איך החידושים האחרונים בסביבה העסקית של Android יכולים לעזור לכם לשפר את איכות האפליקציה ולמקסם את יעילות הפיתוח.
Ataul Munim • משך הקריאה: 3 דקות -
חדשות על מוצריםאחד מעמודי התווך של הסביבה העסקית של Android הוא המחויבות המשותפת שלנו לאמון המשתמשים. הנוף של המכשירים הניידים השתנה, וכך גם הגישה שלנו להגנה על מידע רגיש.
Robert Clifford • משך הקריאה: 3 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?