با هر انتشار، API های خاص Android ممکن است منسوخ شوند یا برای ارائه یک تجربه توسعه دهنده بهتر یا پشتیبانی از قابلیت های پلتفرم جدید، نیاز به بازسازی مجدد داشته باشند. در این موارد، اندروید رسماً API های منسوخ شده را منسوخ می کند و توسعه دهندگان را به API های جدید هدایت می کند تا به جای آن از آنها استفاده کنند.
منسوخ شدن به این معنی است که ما به پشتیبانی رسمی از API ها پایان داده ایم، اما آنها همچنان در دسترس توسعه دهندگان خواهند بود. این صفحه برخی از موارد منسوخ شده در این نسخه از اندروید را برجسته می کند. برای مشاهده سایر موارد منسوخ، به گزارش تفاوت API مراجعه کنید.
RenderScript
با شروع Android 12، API های RenderScript منسوخ شده اند. آنها به کار خود ادامه خواهند داد، اما ما انتظار داریم که سازندگان دستگاه و قطعات به مرور زمان پشتیبانی از شتاب سخت افزاری را متوقف کنند. برای استفاده کامل از شتاب GPU، توصیه میکنیم از RenderScript خارج شوید .
لیست های پخش اندروید
لیست های پخش اندروید منسوخ شده است. API دیگر حفظ نمی شود اما عملکرد فعلی برای سازگاری باقی می ماند.
توصیه می کنیم لیست های پخش را به عنوان فایل های m3u بخوانید و ذخیره کنید.
نمایش حذف API
دستگاههای اندرویدی به شکلهای مختلفی در دسترس هستند، مانند صفحهنمایش بزرگ، تبلت و تاشو. به منظور ارائه محتوا به طور مناسب برای هر دستگاه، برنامه شما باید اندازه صفحه یا نمایشگر را تعیین کند. با گذشت زمان اندروید API های مختلفی برای بازیابی این اطلاعات ارائه کرد. در اندروید 11 ما WindowMetrics
API را معرفی کردیم و این روش ها را منسوخ کردیم:
در اندروید 12 ما همچنان استفاده از WindowMetrics
را توصیه می کنیم و این روش ها را منسوخ می کنیم:
برنامهها باید از APIهای WindowMetrics
برای پرسوجو کردن محدودههای پنجره خود یا Configuration.densityDpi
برای پرسوجو چگالی فعلی استفاده کنند.
توجه داشته باشید که کتابخانه Jetpack WindowManager
شامل یک کلاس WindowMetrics
است که از اندروید 4.0.1 (سطح API 14) و بالاتر پشتیبانی می کند.
نمونه ها
در اینجا چند نمونه از نحوه استفاده از WindowMetrics
آورده شده است.
ابتدا، مطمئن شوید که برنامه شما میتواند فعالیتهای خود را کاملاً قابل تغییر اندازه کند.
یک اکتیویتی باید به WindowMetrics
از یک زمینه فعالیت برای هر کار مرتبط با UI، به ویژه WindowManager.getCurrentWindowMetrics()
متکی باشد.
اگر برنامه شما 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();