תצוגת שעון ב-Wear OS פועלת באופן רציף, ולכן היא צריכה לנצל את האנרגיה בצורה יעילה.
אופטימיזציה לביצועים של תצוגת השעון עד כמה שאפשר. בדף הזה מפורטות שיטות מומלצות לאופטימיזציה כללית של תצוגת השעון, וגם שיטות מומלצות לאופטימיזציה של אנימציות ותמונות.
אופטימיזציה בסיסית
הקטע הזה כולל שיטות מומלצות לשיפור היעילות הכוללת של תצוגת השעון.
הצבע והבהירות של תצוגת השעון
שימוש בצבעים כהים בתצוגת השעון צורך פחות אנרגיה בשעון של המשתמש. כדי לשפר את אופטימיזציית השימוש בסוללה של תצוגת השעון, מומלץ להגדיר את הרקע שלה באופן הבא:
- צבע: כשהדבר אפשרי, כדאי להשתמש ברקע שחור.
- בהירות: אם אי אפשר להשתמש ברקע שחור, יש לשמור על בהירות צבע הרקע ברמה של 25% או פחות בסולם של גוון, רוויה, ערך (HSV) או גוון, רוויה, בהירות (HSB). לדוגמה, אם משתמשים בכיתה
Color
כדי להגדיר צבע רקע שמוגדר באמצעות סולם HSV, צריך להשתמש בערך 25 או נמוך יותר בהגדרת הערך, שמאפשרת לשלוט בהירות.
שימוש ביכולות דינמיות כדי לבצע פעולות בטלפון
אם נדרשת פעולה כדי להריץ תצוגת שעון בטלפון, הקוד ירוץ רק כשתצוגת השעון פעילה. כדי לעדכן את האפליקציה בטלפון שהתצוגה המתאימה של השעון פעילה, מומלץ להשתמש ב- CapabilityClient API.
מעקב אחרי צריכת החשמל
אפליקציית התמיכה של Wear OS מאפשרת למפתחים ולמשתמשים לראות את כמות החשמל שנצרכת בתהליכים שונים במכשיר לביש. כדי לראות את הנתונים האלה, עוברים אל הגדרות > סוללת השעון.
רישום תצוגות שעון שתומכות בהצפנה
בגרסה 7.0 ואילך של Android יש תמיכה בהצפנה מבוססת-קבצים, והיא מאפשרת להריץ אפליקציות עם תמיכה בהצפנה לפני שהמשתמש מזין את קוד הפתיחה לפענוח בזמן האתחול. הפעולה הזו יכולה לקצר את משך המעבר מאנימציית האתחול ללוח השעון בעד 30 שניות.
כדי להפעיל את ההפעלה המהירה יותר, מוסיפים את android:directBootAware="true"
למניפסט של תצוגת השעון.
הערה: אפשר להשתמש בתכונה הזו עם תצוגות שעון שלא משתמשות באחסון מוצפן של פרטי הכניסה.
שיטות מומלצות לשימוש באנימציות
השיטות המומלצות בקטע הזה עוזרות לצמצם את צריכת החשמל שקשורה לאנימציות.
הפחתת קצב הפריימים של האנימציות
אנימציות הן בדרך כלל יקרות מבחינה חישובית וצורכות כמות משמעותית של חשמל. רוב האנימציות נראות חלקות בקצב של 30 פריימים לשנייה, לכן מומלץ להימנע מהפעלת האנימציות בקצב פריימים גבוה יותר. במקום זאת, אפשר להשתמש בקצבי פריימים דינמיים. מידע נוסף זמין בדוגמה של תצוגת שעון על קנבס.
השבתת המעבד (CPU) בין אנימציות
כדי להאריך את חיי הסוללה, מומלץ להשתמש באנימציות במשורה. גם נקודתיים מהבהבת משתמשת בסוללה בכל המצמוץ.
אנימציות ושינויים קלים בתוכן של תצוגת השעון מוציאים את המעבד (CPU) ממצב שינה. אפשר לאפשר ל-CPU לעבור למצב שינה בין אנימציות, לדוגמה, באמצעות התפרצויות קצרות של אנימציה בכל שנייה במצב אינטראקטיבי, ולאחר מכן לאפשר ל-CPU לעבור למצב שינה עד השנייה הבאה. השבתה תכופה של המעבד, גם אם לזמן קצר, יכולה להפחית משמעותית את צריכת החשמל.
שיטות מומלצות לשימוש בתמונות
השיטות המומלצות בקטע הזה עוזרות לצמצם את צריכת החשמל שמשויכת לתמונות.
צמצום הגודל של נכסי הבייטמאפ
תצוגות שעון רבות מורכבות מתמונת רקע ונכסי גרפיקה אחרים שעוברים טרנספורמציה ומתווספים לתמונה הרקע, כמו מחוגים של שעון ורכיבים אחרים שזזים לאורך זמן. ככל שהנכסים הגרפיים האלה גדולים יותר, כך הטרנספורמציה שלהם
גבוהה יותר. בדרך כלל, המערכת מסובבת את הרכיבים הגרפיים האלה, ולפעמים משנה את קנה המידה שלהם, בתוך השיטה
Render.CanvasRenderer.render()
בכל פעם שהיא מצייר מחדש את תצוגת השעון, כפי שמתואר בקטע ציור תצוגת שעון.
צמצום הגודל של נכסי הבימפ (bitmap) משפר את הביצועים של האנימציות וגם חוסך בחשמל. כדי לשפר את הביצועים של תצוגת השעון, כדאי לפעול לפי הטיפים הבאים:
- אל תשתמשו באלמנטים גרפיים שגדולים יותר מהרצוי.
- מסירים פיקסלים שקופים מיותרים סביב הקצוות.
לדוגמה, אפשר להקטין את גודל התמונה של שעון היד בצד ימין באיור 1 ב-97% על ידי הסרת הפיקסלים השקופים הנוספים, כפי שמוצג בצד ימין של האיור.
שילוב של נכסי bitmap
אם יש לכם קובצי bitmap שמופיעים לעיתים קרובות יחד, כדאי לשקול לשלב אותם לנכס גרפי אחד. לדוגמה, לרוב אפשר לשלב את תמונת הרקע במצב אינטראקטיבי עם סימני הווי כדי להימנע משיוך של שני בימפטים במסך מלא בכל פעם שהמערכת מצייר מחדש את לוח השעון.
השבתת החלקת קצוות בזמן ציור של בימפטים מותאמים
כשמשרטטים מפת סיביות מותאמת אישית על האובייקט Canvas
באמצעות ה-method
Canvas.drawBitmap()
, אפשר לספק מכונה של Paint
כדי להגדיר כמה אפשרויות. כדי לשפר את הביצועים, משביתים את החלקת הקצוות באמצעות השיטה setAntiAlias()
, כי לאפשרות הזו אין השפעה על קובצי bitmap.
שימוש בסינון של קובצי bitmap
בנכסי bitmap שציירתם מעל אלמנטים אחרים, מפעילים סינון bitmap באותה מופע של Paint
באמצעות השיטה setFilterBitmap()
. באיור 2 מוצגת תצוגה מוגדלת של שעון עם יד שעון, עם סינון של קובץ בייטמאפ ובלי סינון.
הערה: כשמצב האווירה פעיל, צריך להשבית את סינון הבימפס. במצב אווירה באיכות נמוכה, המערכת לא מרינדרת את הצבעים בתמונה בצורה מהימנה כדי שסינון הבייטמאפ יוכל להתבצע בהצלחה.
העברת פעולות יקרות מחוץ לשיטת השרטוט
המערכת קוראת לשיטה Render.CanvasRenderer.render()
בכל פעם שהיא מצייר מחדש את תצוגת השעון. כדי לשפר את הביצועים, כדאי לכלול ב-method הזה רק פעולות שנדרשות באופן מוחלט לעדכון שללוח השעון.
כשהדבר אפשרי, כדאי להימנע מהפעלת הפעולות הבאות בתוך השיטה Render.CanvasRenderer.render()
:
- מתבצעת טעינה של תמונות ומשאבים אחרים
- שינוי הגודל של תמונות
- הקצאת אובייקטים
- חישובים שהתוצאות שלהם לא משתנות בין הפריימים
כדי לנתח את הביצועים של תצוגת השעון, אפשר להשתמש בכלי לניתוח ביצועי ה-CPU. באופן ספציפי, צריך לוודא שזמן הביצוע של ההטמעה של Render.CanvasRenderer.render()
הוא קצר ועקבי בהפעלות. למידע נוסף, קראו את המאמר בדיקת פעילות המעבד באמצעות כלי לניתוחי מעבדים.
מקורות מידע שקשורים לנושא
אפליקציית הדוגמה של תצוגת השעון מדגימה את השיטות המומלצות להגדרת תצוגת שעון.