אופטימיזציה של הביצועים וניהול הטמפרטורה הם אתגרים קריטיים למפתחי משחקים ב-Android. כדי ליצור את חוויית המשחק הטובה ביותר, מפתחים צריכים כלים שיאפשרו להם לאזן בין קצב פריימים גבוה לבין צריכת חשמל בת קיימא. ה-Android Dynamic Performance Framework (ADPF) מספק קבוצה חשובה של ממשקי API שמאפשרים למשחקים לבצע אינטראקציה ישירה עם מערכות החשמל והתרמיות של המכשיר, וכך לבצע אופטימיזציה מדויקת.
חברת UNISOC משתמשת בכלים האלה כדי לספק חוויית משחק מעולה במערכות על שבב שלה. החל מ-Android 14, מוצרי UNISOC תומכים באופן מלא בממשקי ה-API המרכזיים של ADPF, כולל Performance Hint, Thermal ו-Game Mode/State. כדי לשפר עוד יותר את הביצועים במערכות על שבב (SoC), UNISOC משתמשת בממשקי ה-API של ADPF בתוך מנוע המשחקים UNISOC Miracle שלה כדי לעקוב אחרי עומסי העבודה של המערכת ולשנות את הביצועים באופן דינמי, וכך להבטיח חוויית משחק חלקה ויציבה יותר.

אופטימיזציה של הביצועים ונתוני הטמפרטורה באמצעות ADPF
ההטמעה של ADPF ב-UNISOC מספקת למפתחים כלים עוצמתיים לניהול הביצועים של משחקים בזמן אמת.
הערה לגבי ביצועים:
PerformanceHintManager
מאפשר לאפליקציות להעביר מידע למערכת, וכך המערכת על שבב (SoC) יכולה להקצות את הכמות הנכונה של משאבים בזמן הנכון. המשחקים יכולים לעזור למערכת להאיץ באופן דינמי את הציור ואת הקומפוזיציה של השכבות, וכך לשפר את הביצועים. כדי לעשות את זה, הם מספקים רמזים לגבי עומסי העבודה ומדווחים על משך הזמן בפועל של הפריימים.Thermal API: כדי למנוע ויסות תרמי שמשבש את הפעולה, מפתחים יכולים להשתמש ב-API
getThermalHeadroom()
. הפונקציה הזו מספקת חיזוי של המצב התרמי של המכשיר, ומאפשרת לאפליקציה להתאים באופן יזום את עומס העבודה שלה לפני שהמכשיר מתחמם יתר על המידה. היכולת הזו חשובה כדי לייצב את קצב הפריימים של המשחק במהלך סשנים ארוכים ואינטנסיביים.Game Mode ו-Game State APIs: ממשקי ה-API האלה משפרים את התקשורת בין המשחק למערכת.
GameMode
מאפשר למשתמשים לסמן את הכוונה שלהם (לדוגמה, בחירת הגדרת 'ביצועים' במשחק), בעוד ש-GameState
מאפשר למשחק לעדכן את מערכת ההפעלה לגבי הסטטוס הנוכחי שלו (לדוגמה, טעינה, הפעלה וכו'). מתחת לפני השטח, המערכת יכולה להשתמש בהתערבויות כמו שינוי רזולוציית המשחק ושינוי קצב הפריימים של המשחק כדי לבצע אופטימיזציה של הביצועים על סמך ההקשר הזה.
שיפור קצב הפריימים ויעילות צריכת החשמל
השילוב של ADPF במערכות על שבב (SoC) של UNISOC מספק שיפורים מוחשיים בקצב הפריימים, בצריכת החשמל ובחוויית הגיימינג הכוללת. בבדיקות עם הכותרת הפופולרית LineageW של NCSOFT, היתרונות היו ברורים בהגדרות גרפיות שונות.
באיכות גרפיקה בינונית, המשחק השיג שיפור משמעותי של 28.1% בקצב הפריימים, ובמקביל הפחית את צריכת החשמל ב-3.7%. כך נהנים מיתרונות כפולים: חוויה חלקה יותר ויעילות משופרת.
התוצאות בהגדרות אחרות היו מרשימות גם כן:
בהגדרות גרפיקה גבוהות, קצב הפריימים עלה בשיעור מרשים של 50.1% עם עלייה קלה בלבד של 3.1% בצריכת החשמל, מה שממחיש את היכולת של ADPF לשפר את הביצועים בצורה משמעותית.
בהגדרות גרפיקה נמוכות, השחקנים נהנו מעלייה של 11.5% בקצב הפריימים עם עלייה מקבילה של 9.9% בצריכת החשמל, מה שמראה שיש שיפורים בביצועים גם בהגדרות פחות תובעניות.




בנוסף, UNISOC מציגה תכונה של 'אופטימיזציה אדפטיבית'. כשמשתמש מפעיל את האפשרות הזו, האפליקציה יכולה להתאים באופן אוטומטי רכיבים גרפיים כמו טקסטורה, עלווה ואיכות האפקט בתגובה למשוב מהמערכת, וכך לוודא שקצב הפריימים יהיה יציב יותר.
מה צפוי בהמשך בנוגע לביצועים דינמיים במערכות על שבב (SoC) של UNISOC
חברת UNISOC מחויבת להעמיק את השילוב שלה עם ADPF. ככל שהמסגרת מתפתחת, מנוע המשחקים UNISOC Miracle ימשיך לשלב את התכונות העדכניות ביותר של ADPF, כדי להבטיח שמפתחים ושחקנים ייהנו מהביצועים העדכניים ביותר ומהטכנולוגיות העדכניות ביותר לניהול תרמי במכשירים שמבוססים על UNISOC.
תחילת העבודה עם התאמה ב-Android
מסגרת הביצועים הדינמיים של Android זמינה עכשיו לכל מפתחי המשחקים ל-Android עבור מנועי המשחקים Unity, Unreal ו-Cocos Creator, וגם דרך ספריות C++ מקוריות.
מפתחים של Unity יכולים להתחיל להשתמש בספק הביצועים הדינמיים בגרסה 5.0.0. שימו לב ש-Thermal API נתמך ברוב מכשירי Android מ-Android 11 (רמת API 30), ו-Performance Hint API נתמך מ-Android 12 (רמת API 31).
מפתחים של Unreal יכולים להתחיל להשתמש בתוסף Android Dynamic Performance Unreal Engine ברוב מכשירי Android שמטרגטים את Android 12 (רמת API 31) ואילך.
ב-Cocos Creator, אפשר להתחיל להשתמש ב-Thermal API מגרסה v3.8.2 וב-Performance Hint API מגרסה v3.8.3.
למנועים בהתאמה אישית, אפשר לעיין בדוגמה מקורית של ADPF C++.