בכל גרסה, יכול להיות שממשקי API ספציפיים של Android יוצאו משימוש או שיהיה צורך לבצע בהם שינוי כדי לספק חוויית פיתוח טובה יותר או לתמוך ביכולות חדשות בפלטפורמה. במקרים כאלה, מערכת Android תוציא משימוש באופן רשמי את ממשקי ה-API המיושנים, ותפנה את המפתחים לממשקי API חדשים כדי להשתמש בהם.
המשמעות של הוצאה משימוש היא שסיימנו את התמיכה הרשמית בממשקי ה-API, אבל הם ימשיכו להיות זמינים למפתחים. בדף הזה נדגיש חלק מההוצאה משימוש בגרסה הזו של Android. כדי לראות עוד פריטים שהוצאו משימוש, אפשר לעיין בדוח ההבדלים של ממשקי ה-API.
RenderScript
החל מ-Android 12, ממשקי ה-API של RenderScript הוצאו משימוש. הם ימשיכו לפעול, אבל אנחנו צופים שתעשיית המכשירים והרכיבים תפסיק לספק תמיכה בשיפור מהירות באמצעות חומרה עם הזמן. כדי לנצל את מלוא היתרונות של האצת 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();