בדפים הבאים מוסבר איך לשפר את השימוש של האפליקציה בזיכרון.
הנחיות כלליות לגבי זיכרון
- סקירה כללית על זיכרונות
- הסבר על ארכיטקטורת הזיכרון הבסיסית של 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 מתוך סשנים פעילים של משתמשים.
מקורות מידע נוספים
למידע נוסף על זיכרון, אפשר לעיין במקורות המידע הבאים: