منسوخ‌سازی‌ها

با هر نسخه پخش، میاناهای برنامه‌سازی کاربردی خاص Android ممکن است منسوخ شوند یا نیاز به بازسازی کد داشته باشند تا تجربه توسعه‌دهنده بهتری ارائه دهند یا از قابلیت‌های جدید پلاتفرم پشتیبانی کنند. در این موارد، Android رسماً میاناهای برنامه‌سازی کاربردی منسوخ‌شده را منسوخ می‌کند و توسعه‌دهندگان را به میاناهای برنامه‌سازی کاربردی جدید هدایت می‌کند تا از آن‌ها استفاده کنند.

منسوخ شدن به این معنی است که پشتیبانی رسمی از میاناهای برنامه‌سازی کاربردی را پایان داده‌ایم، اما این میاناهای برنامه‌سازی کاربردی همچنان برای توسعه‌دهندگان دردسترس خواهند بود. این صفحه برخی‌از موارد منسوخ‌شده در این نسخه Android را برجسته می‌کند. برای دیدن موارد منسوخ‌شده دیگر، به گزارش تفاوت میانای برنامه‌سازی کاربردی مراجعه کنید.

RenderScript

از Android 12، میاناهای برنامه‌سازی کاربردی RenderScript منسوخ شده‌اند. این دستگاه‌ها همچنان کار خواهند کرد، اما انتظار داریم که سازندگان دستگاه و قطعات به‌مرور زمان پشتیبانی از شتاب سخت‌افزاری را متوقف کنند. برای بهره‌مندی کامل از مزایای شتاب‌دهی GPU، توصیه می‌کنیم از RenderScript مهاجرت کنید.

فهرست‌های پخش Android

فهرست‌های پخش Android منسوخ شده‌اند. این میانای برنامه‌سازی کاربردی دیگر نگهداری نمی‌شود اما عملکرد فعلی برای سازگاری باقی می‌ماند.

توصیه می‌کنیم فهرست‌های پخش را به‌صورت فایل‌های m3u بخوانید و ذخیره کنید.

نمایش موارد منسوخ‌شده میانای برنامه‌سازی کاربردی

دستگاه‌های Android در ابعاد و شکل‌های مختلفی مانند صفحه‌نمایش‌های بزرگ، رایانه‌های لوحی، و دستگاه‌های تاشو دردسترس قرار می‌گیرند. برای اینکه محتوا به‌طور مناسب برای هر دستگاه پردازش شود، برنامه‌تان باید اندازه صفحه‌نمایش یا نمایشگر را تعیین کند. با گذشت زمان، Android میاناهای برنامه‌سازی کاربردی مختلفی برای بازیابی این اطلاعات ارائه کرده است. در Android 11، میانای برنامه‌سازی کاربردی WindowMetrics را معرفی کردیم و این روش‌ها را منسوخ کردیم:

در Android 12 همچنان توصیه می‌کنیم از WindowMetrics استفاده کنید و این روش‌ها را منسوخ می‌کنیم:

برنامه‌ها باید از میاناهای برنامه‌سازی کاربردی WindowMetrics برای پرسمان کردن حدود پنجره‌شان، یا از Configuration.densityDpi برای پرسمان کردن تراکم فعلی استفاده کنند.

توجه داشته باشید که کتابخانه Jetpack WindowManager شامل کلاس WindowMetrics است که از Android 4.0.1 (سطح میانای برنامه‌سازی کاربردی ۱۴) و بالاتر پشتیبانی می‌کند.

مثال‌ها

در اینجا چند مثال از نحوه استفاده از WindowMetrics آورده شده است.

ابتدا مطمئن شوید که برنامه‌تان می‌تواند فعالیت‌هایش را کاملاً تغییراندازه دهد.

یک فعالیت باید برای هر کار مرتبط با واسط کاربر، به‌ویژه WindowManager.getCurrentWindowMetrics()، به WindowMetrics از بافت فعالیت متکی باشد.

اگر برنامه‌تان MediaProjection ایجاد می‌کند، مرزها باید اندازه درستی داشته باشند چون طرح‌افکنی نمایشگر را ضبط می‌کند. اگر برنامه کاملاً قابل‌تغییر اندازه باشد، بافت فعالیت محدوده‌های صحیح را برمی‌گرداند.

کاتلین

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

جاوا

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

اگر برنامه کاملاً قابل‌تغییر اندازه نباشد، باید مرزها را از یک نمونه WindowContext پُرسمان کند و WindowMetrics حداکثر ناحیه نمایش دردسترس برای برنامه را بااستفاده از WindowManager.getMaximumWindowMetrics() بازیابی کند.

کاتلین

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

جاوا

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