Android Pie מוסיף תכונה כדי למנוע הרג של משחקים כבדי זיכרון RAM אם תצא בטעות

Android Pie מתגלגל היום ואחת התכונות הנסתרות המגניבות היא היכולת למנוע ממשחקים עתירי זיכרון RAM להיהרג אם תצא בטעות.

מוקדם יותר היום, גוגל הוכרז רשמית Android Pie עבור Google Pixel ו- Google Pixel 2. מיד לאחר מכן, חיוני שוחרר עדכון אנדרואיד 9 עבור ה-Essential Phone. מכשירים נוספים שהשתתפו בתוכנית הבטא של אנדרואיד P אמור לקבל בקרוב את העדכון, כך שלמשתמשים שדילגו על התצוגה המקדימה של מפתחים יש כעת הרבה להתעדכן. כשאנחנו חופרים במהדורה האחרונה, כולל ה ירידה בקוד המקור ב-AOSP ואת מסמך הגדרת התאימות האחרון (CDD), אנו נעדכן אותך מעת לעת בכל מידע חדש שנגלה. משהו מעניין שמצאנו ב-CDD הוא קטע עבור אפליקציות ומשחקים "כבדים" (כבדי RAM) שבו Android Pie ייתן עדיפות לשמירה על אפליקציות אלה ב-RAM אם המשתמש יצא בטעות אוֹתָם.

אפליקציות ומשחקים "כבדי משקל" ב-Android Pie

קטע חדש נוסף ל- CDD שמתאר תכונה זו. הנה מה שכתוב:

3.17. אפליקציות במשקל כבד

אם יישומי מכשירים מצהירים על התכונה FEATURE_CANT_SAVE_STATE, אז הם:

  • [C-1-1] חייבת להיות מותקנת רק אפליקציה אחת המציינת את ההפעלה של cantSaveState במערכת בכל פעם. אם המשתמש עוזב אפליקציה כזו מבלי לצאת ממנה באופן מפורש (לדוגמה על ידי לחיצה על בית בזמן יציאה מפעילות פעילה המערכת, במקום ללחוץ חזרה ללא שמירה פעילויות פעילות במערכת), ואז יישומי מכשירים חייבים לתעדף את האפליקציה ב-RAM כפי שהם עושים עבור דברים אחרים שצפויים להישאר פועלים, כגון חזית שירותים. בעוד שאפליקציה כזו נמצאת ברקע, המערכת עדיין יכולה להחיל עליה תכונות ניהול צריכת חשמל, כמו הגבלת מעבד וגישה לרשת.
  • [C-1-2] חייב לספק אישור ממשק משתמש כדי לבחור את האפליקציה שלא תשתתף במנגנון השמירה/שחזור של מצב רגיל ברגע שהמשתמש ישיק אפליקציה שנייה המוצהרת עם תכונת cantSaveState.
  • [C-1-3] אסור להחיל שינויים אחרים במדיניות על יישומים המציינים cantSaveState, כגון שינוי ביצועי CPU או שינוי תעדוף תזמון.

אם יישומי המכשיר אינם מצהירים על התכונה FEATURE_CANT_SAVE_STATE , אז הם:

  • [C-1-1] חייב להתעלם מתכונת cantSaveState שהוגדרה על ידי אפליקציות ואסור לשנות את התנהגות האפליקציה על סמך תכונה זו.

בעיקרון, זה אומר שאם מכשיר תומך ב FEATURE_CANT_SAVE_STATE תכונה, אז עליהם לתעדף לשמור ב-RAM את האפליקציה הפועלת שמציינת את cantSaveState תְכוּנָה. סדר עדיפויות RAM זה מתחיל אם המשתמש יוצא מהאפליקציה או המשחק על ידי לחיצה על כפתור הבית או עזיבת האפליקציה או המשחק מבלי לצאת ממנו במפורש (כמו בלחיצת כפתור חזרה או כפתור יציאה.) יתר על כן, המערכת עדיין יכולה לחסוך בחשמל על ידי הגבלת גישה למעבד ולרשת באפליקציות האלה, אבל הם פשוט לא יכולים לפנות זיכרון RAM על ידי הרג אותם אלא אם כן נחוץ. לבסוף, שים לב שרק אפליקציה אחת עם התכונה cantSaveState שהוגדרה מותרת לפעול. אם תנסה להפעיל אפליקציה אחרת עם תכונה זו מוגדרת בזמן שאחרת פועלת, Android Pie יבקש ממך לבחור איזה משחק תרצה להמשיך לפעול.

אתה יכול לבדוק אם המכשיר שלך תומך ב-FEATURE_CANT_SAVE_STATE על ידי הפעלת שתי הפקודות הבאות באמצעות ADB:

adb shell
dumpsys package | grep "cant_save_state"

כדי לבדוק אם אפליקציה מציינת את התכונה cantSaveState תצטרך לפרק את האפליקציה ולהסתכל במניפסט שלה או להשתמש ב- dumpsys package package.name.here פקודה במעטפת ADB. זכור שהתכונה הזו נוספה רק ב-API ברמה 28 (Android 9 Pie), כך שלא סביר שהרבה אפליקציות או משחקים ינצלו זאת כרגע.

תכונה זו תהיה שימושית להפליא עבור מכשירים עם כמויות קטנות של זיכרון RAM ו/או אפליקציות שגוזלות המון זיכרון RAM. לדוגמה, Fortnite Mobile באנדרואיד דורש מינימום של 3GBs של זיכרון RAM בגלל כמה זיכרון RAM הוא אוכל (בלי להשיק אפילו משחק, Fortnite Mobile שמרה 1.6GBs של זיכרון RAM ב-Google Pixel 2 XL שלי.) אם Fortnite היה מכוון ל-SDK רמה 28 והשתמש בתכונה זו, אז זה אומר שיציאה בטעות מהמשחק תמנע בתקווה להרוג אותו מיד אם המכשיר שלך נגמר זיכרון RAM פנוי. למרבה הצער, Fortnite ממקד רק לרמה 21 של SDK בשלב זה (אנדרואיד 5.0 Lollipop) כך שלמרבה הצער היא אינה מנצלת את ממשקי ה-API העדכניים ביותר שגוגל מציעה ב-Android Pie, שלא לדבר על Android Oreo, Android Nougat או Android Marshmallow. אני מקווה שמשחקים אחרים מתעדכנים כדי לנצל את התכונה הזו. עד שנה הבאה, גוגל ידרוש אותם כדי לעדכן אם הם רוצים להיות מסוגלים להמשיך לשלוח עדכונים בחנות Google Play.