זיכרון ב-Android

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

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

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

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

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

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

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

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

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

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

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

סרטונים

פיתוח אפליקציות ל-Android עם ביצועים טובים של זיכרון