מערכת Wear OS משפרת את חיי הסוללה על ידי מעקב אחר השימוש בזיכרון. לתצוגות שעון ב-Watch Face Format יש מגבלות זיכרון, בהתאם להנחיות האיכות לאפליקציות ל-Wear OS:
- מצב תאורת אווירה: שימוש מקסימלי בזיכרון של 10 MB.
- מצב אינטראקטיבי: שימוש מקסימלי בזיכרון של 100 MB.
חישוב השימוש בזיכרון
כדי לחשב את השימוש בזיכרון של תמונה או של גופן מפת סיביות בתצוגת שעון באמצעות פורמט תצוגת השעון, המערכת מבצעת את הפעולות הבאות:
- מבטלים את הדחיסה של התמונה או הגופן.
- בודקים אם האופטימיזציות הבאות רלוונטיות:
- שינוי הגודל כדי להתאים טוב יותר למסך
- חיתוך של פיקסלים שקופים
- דגימת יתר ל-RGB565, ללא אובדן נאמנות
על סמך תיבת התוחמת שמתקבלת, הגודל מחושב באופן הבא:
- עבור תמונות וגופנים בפורמט RGBA8888: 4 x רוחב x גובה
- לתמונות ולגופנים בפורמט RGB565: 2 x רוחב x גובה
- עבור תמונות וגופנים שמשתמשים בהגדרת מפת הסיביות ALPHA_8: רוחב x גובה
מצב אינטראקטיבי
כדי לחשב את השימוש בזיכרון במצב האינטראקטיבי, המערכת מסכמת את הערכים הבאים:
- הגודל של גופנים וקטוריים לפני העיבוד
- השימוש המשוער בגופן ברירת המחדל של המערכת
- הגודל הכולל של התמונות וגופני המפה הביטים אחרי החיתוך, שינוי הגודל והפורמט
הגדרות אישיות
בתצוגות שעון עם הגדרות, המערכת מנסה לחשב את הגודל הכולל של משאבי תצוגת השעון בהגדרות שונות. אם מספר השילובים גדול מאוד, יכול להיות שהמערכת תעריך יתר על המידה את מספר המשאבים שנעשה בהם שימוש בו-זמנית.
מצב רגישות לסביבה ושכבות
המערכת מניחה שמצב הסביבה משתמש בשלוש שכבות במסך מלא לכל היותר, שתיים מהן סטטיות. השכבות כוללות:
- הרקע של תצוגת השעון. המערכת מתייחסת לזה כתמונה אחת, בלי קשר למספר התמונות שמרכיבות את הרקע.
- חלקים נעים כמו ידיים, תצוגות דיגיטליות או אלמנטים דינמיים.
- רכיבים שנותרו מקובץ ה-XML של המקור.
גופני מפת סיביות גדולים בדרך כלל משתמשים ברוב הזיכרון במצב סביבה.
שיטות לצמצום השימוש בזיכרון
כדי להקטין את השימוש בזיכרון, אפשר להשתמש באופטימיזציות הבאות.
חיתוך ושינוי גודל של גופני מפת סיביות
חיתוך התמונות וBitmapFont האובייקטים כך שיתאימו לגודל התצוגה.
מערכת Wear OS מציירת את תצוגות השעון עם כל התמונות שחולצו. תמונה של מסך מלא עם רוב השטח ריק יכולה לתפוס 3 KB בדיסק, אבל 750 KB או יותר במסך בגודל 450 פיקסלים על 450 פיקסלים.
שימוש בגבהים עקביים של גופני מפת סיביות
כשמשתמשים ב-BitmapFont, צריך לוודא שכל התמונות של הדמות הן באותו גובה. באופן דומה, צריך לוודא שכל התמונות של המילים הן באותו גובה.
שימוש בגדלים עקביים של מסגרות באנימציות
במקום להזיז תמונה בתצוגת השעון, מעדכנים את הרכיבים בתמונה ושומרים על המיקום הקבוע של תיבת התוחמת. לדוגמה, כדי להנפיש עיגול בתצוגת השעון, משנים את הצבע שלו במקום לגלגל אותו.
הטכניקה הזו מקטינה את הגודל של תיבת התוחמת המחושבת של האנימציה.
הסרת כפילויות בתמונות
כדי להציג תמונה כמה פעמים, צריך לכלול רק משאב תמונה אחד ולהפנות אליו כמה פעמים.
הצגת ההתקדמות באמצעות קשתות
כדי לדמות סרגל התקדמות שמגיע לסיום אחרי דקה או שעה, אל תשתמשו ב-60
תמונות. אפשר להשתמש באובייקט Arc עם ביטוי ששולט באורך שלו, כמו בדוגמה הבאה:
<PartDraw angle="0" width="400" height="400" name="ProgressBar" pivotX="0.5" pivotY="0.5" x="25" y="25"> <Arc centerX="200" centerY="200" width="400" height="400" startAngle="0" endAngle="360"> <!-- Completes a "progress loop" every minute. --> <Transform target="endAngle" value="0 + (clamp([SECOND], 0, 60) - 0) * 6" /> <Stroke cap="ROUND" color="#654456" thickness="10" /> </Arc> </PartDraw>
כדי להציג קו לא רציף, למשל כדי ליצור מראה של שעון דיגיטלי רטרו, משתמשים במאפיין מקף לאובייקט Stroke או בשכבת-על של תמונה עם מסכה שקופה למחצה.
הצבת המחוגים והתכונות הנוספות של השעון בסוף קובץ המקור
צמתי ה-XML מצוירים לפי הסדר שבו הם מופיעים בקובץ ה-XML של המקור. אם מציבים את המחוגים והסיבוכים בסוף, המערכת יכולה להסיר שכבה שלמה מחישוב הזיכרון של מצב הסביבה.
בדיקת השימוש בזיכרון של תצוגת השעון
כדי למדוד את השימוש בזיכרון של תצוגת השעון, אפשר להשתמש בכלי להערכת טביעת הרגל של הזיכרון, שזמין במאגר watchface ב-GitHub.