טיפול במפות סיביות

כדאי לנסות את הכתיבה
‫Jetpack Compose היא ערכת הכלים המומלצת לבניית ממשק משתמש ל-Android. איך מציגים גרפיקה בכלי הכתיבה

יש כמה סיבות לכך שטעינת מפות סיביות באפליקציית Android היא מסובכת:

  • קבצים מסוג Bitmap יכולים בקלות לגרום לאפליקציה לחרוג ממגבלת הזיכרון שהוקצתה לה. לדוגמה, המצלמה בטלפון Pixel מצלמת תמונות בגודל של עד ‎4048x3036 פיקסלים (12 מגה-פיקסלים). אם נעשה שימוש בהגדרת מפת הסיביות ARGB_8888, שהיא הגדרת ברירת המחדל ב-Android 2.3 (רמת API‏ 9) ואילך, טעינה של תמונה אחת לזיכרון תתפוס נפח זיכרון של כ-48MB ‏ (4048*3036*4 בייטים). דרישה כזו גדולה לזיכרון עלולה לנצל באופן מיידי את כל הזיכרון שזמין לאפליקציה.
  • טעינת מפות סיביות בשרשור של ממשק המשתמש עלולה לפגוע בביצועים של האפליקציה, ולגרום לתגובה איטית או אפילו להודעות ANR. לכן חשוב לנהל את השרשורים בצורה נכונה כשעובדים עם מפות סיביות.
  • אם האפליקציה טוענת כמה מפות סיביות לזיכרון, צריך לנהל את הזיכרון ואת מטמון הדיסק בצורה חכמה. אחרת, יכול להיות שתהיה פגיעה בתגובה ובגמישות של ממשק המשתמש של האפליקציה.

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

אפשר גם לבחור לעבוד ישירות עם ממשקי ה-API ברמה נמוכה יותר שמוטמעים ב-Android framework. מידע נוסף על האופן שבו עושים זאת זמין במאמרים טעינה יעילה של מפות סיביות גדולות, שמירה במטמון של מפות סיביות וניהול זיכרון של מפות סיביות.

משאבים נוספים