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