הפסקת תמיכה

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

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

RenderScript

החל מ-Android 12, ממשקי RenderScript API הוצאו משימוש. הם ימשיכו לפעול, אבל אנחנו צופים שיצרני המכשירים והרכיבים יפסיקו לספק תמיכה בשיפור מהירות באמצעות חומרה לאורך זמן. כדי לנצל את היתרונות של האצת GPU, מומלץ להפסיק להשתמש ב-RenderScript.

פלייליסטים ב-Android

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

מומלץ לקרוא ולשמור פלייליסטים כקבצים מסוג m3u.

הוצאה משימוש של Display API

מכשירי Android זמינים במגוון רחב של גדלים וסוגים, כמו מסכים גדולים, טאבלטים ומכשירים מתקפלים. כדי שהתוכן יוצג בצורה מתאימה בכל מכשיר, האפליקציה צריכה לקבוע את גודל המסך או גודל התצוגה. עם הזמן, מערכת Android סיפקה ממשקי API שונים לאחזור המידע הזה. ב-Android 11 השקנו את API‏ WindowMetrics והוצאנו משימוש את השיטות הבאות:

ב-Android 12 אנחנו ממשיכים להמליץ על שימוש ב-WindowMetrics ומפסיקים את התמיכה בשיטות האלה:

באפליקציות צריך להשתמש בממשקי ה-API‏ WindowMetrics כדי לשאול על הגבולות של החלון, או ב-Configuration.densityDpi כדי לשאול על הצפיפות הנוכחית.

שימו לב: ספריית Jetpack‏ WindowManager כוללת מחלקה WindowMetrics שתומכת ב-Android מגרסה 4.0.1 (רמת API‏ 14) ואילך.

דוגמאות

ריכזנו כאן כמה דוגמאות לשימוש ב-WindowMetrics.

קודם כול, צריך לוודא שאפשר לשנות את הגודל של הפעילויות באפליקציה באופן מלא.

פעילות צריכה להסתמך על WindowMetrics מהקשר של פעילות לכל עבודה שקשורה לממשק המשתמש, במיוחד WindowManager.getCurrentWindowMetrics().

אם האפליקציה שלכם יוצרת MediaProjection, הגודל של הגבולות צריך להיות נכון כי ההטלה מתעדת את התצוגה. אם אפשר לשנות את הגודל של האפליקציה באופן מלא, ההקשר של הפעילות מחזיר את הגבולות הנכונים.

Kotlin

val projectionMetrics = activityContext
        .getSystemService(WindowManager::class.java).maximumWindowMetrics

Java

WindowMetrics projectionMetrics = activityContext
        .getSystemService(WindowManager.class).getMaximumWindowMetrics();

אם האפליקציה לא ניתנת לשינוי גודל באופן מלא, היא צריכה לשלוח שאילתה לגבי הגבולות ממופע של WindowContext ולאחזר את WindowMetrics של אזור התצוגה המקסימלי שזמין לאפליקציה באמצעות WindowManager.getMaximumWindowMetrics()

Kotlin

val windowContext = context.createWindowContext(mContext.display!!,
      WindowManager.LayoutParams.TYPE_APPLICATION, null)
val projectionMetrics = windowContext.getSystemService(WindowManager::class.java)
      .maximumWindowMetrics

Java

Context windowContext = mContext.createWindowContext(mContext.getDisplay(),
      WindowManager.LayoutParams.TYPE_APPLICATION, null;
WindowMetrics projectionMetrics = windowContext.getWindowManager()
      .getMaximumWindowMetrics();