זיכרון ב-Android

בדפים הבאים מוסבר איך לשפר את השימוש של האפליקציה בזיכרון.

הנחיות כלליות לגבי זיכרון

סקירה כללית על זיכרונות
הסבר על ארכיטקטורת הזיכרון הבסיסית של Android, על מגבלות ה-RAM ועל האופן שבו מערכת ההפעלה מאזנת בין תהליכים באמצעות Low Memory Killer (LMK).
ניהול הזיכרון
המאמר מפרט שיטות מומלצות למפתחים לשחרור משאבים במהלך מחזור החיים של רכיבים, למניעת דליפות ולניהול הזיכרון במהלך מעבר בין מצבי תהליך.
הסבר על הזיכרון ב-Android ופתרון בעיות שקשורות אליו
סקירה מקיפה של ארכיטקטורת הזיכרון ב-Android, הכלים שזמינים לניתוח ותרגילים מעשיים שיעזרו לכם לזהות ולפתור בעיות שקשורות לזיכרון.
הגדרת תקציבי זיכרון לאפליקציות
הסבר על הצהרה וניהול של תקציבי זיכרון באפליקציה כדי לצמצם את השימוש בזיכרון לסט העבודה הפעיל של האפליקציה.

אופטימיזציות ספציפיות לאזור

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

כלים לניפוי באגים בזיכרון המקומי

כלים של Android Studio
מספק בדיקה של ה-heap בזמן אמת, מעקב אחר הקצאת הזיכרון ותהליכי עבודה לזיהוי דליפות ישירות בתוך ה-IDE.
Perfetto Heap Dump Explorer
מציע ניתוח ויזואלי מעמיק של קובצי dump של heap מקוריים ושל Java או Kotlin, כדי לבודד עצי אובייקטים שנשמרו והקצאות זיכרון אנונימיות.
תיעוד עקבות המערכת במכשיר
המאמר הזה מסביר איך להקליט עקבות ברמת המערכת במכשיר כדי לטפל בבאגים שקשורים לביצועים באפליקציה.
ניפוי באגים בשימוש בזיכרון ב-Android
הסבר על ניהול הזיכרון ב-Linux ועל שימוש בכלים כמו dumpsys meminfo,‏ Perfetto, פרופילים של ערימה מקומית ו-heap dumps כדי לעקוב אחרי השימוש בזיכרון ולזהות דליפות.

כלי זיכרון ברמת הייצור

תפקוד האפליקציה ל-Android: שימוש בזיכרון (RSS אנונימי + שטח החלפה)
ב-Android vitals אפשר לראות את השימוש בזיכרון של האפליקציה בייצור, עם פירוט לפי מצבי התהליך: פעולה בחזית, שירות שפועל בחזית ושירות שפועל ברקע.
נתוני תפקוד האפליקציה: שימוש בזיכרון של מפת הסיביות (bitmap)
בתכונה 'תפקוד האפליקציה' מוצגים מדדים לגבי הזיכרון שבשימוש של מפת הסיביות של האפליקציה, על ידי צבירת נתונים ממכשירי Android.
תפקוד האפליקציה: אופטימיזציה של קוד DEX
הנתונים של תפקוד האפליקציה יכולים להתריע אם רמות האופטימיזציה של קוד ה-DEX של האפליקציה נמוכות. האופטימיזציה הזו כוללת טשטוש, צמצום ואופטימיזציה של אפליקציות ומשחקים שמשתמשים ב-R8.
Crashlytics 20.1.0
הצגת חריגות של חוסר זיכרון (OOM) בסביבת הייצור וסגירות של מגביל הזיכרון עם הקשר אבחוני כדי לתעדף ולתקן קריסות בשדה.
ProfilingManager
API מתקדם שמאפשר לאפליקציות לאסוף ולהעלות באופן פרוגרמטי קובצי dump של זיכרון heap ופרופילים של זיכרון heap מתוך סשנים פעילים של משתמשים.

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

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

פוסטים בבלוגים

סרטונים