نمای کلی ویژگی ها و API ها

اندروید 13 ویژگی های جدید و API های عالی را برای توسعه دهندگان معرفی می کند. بخش‌های زیر به شما کمک می‌کند تا با ویژگی‌های برنامه‌های خود آشنا شوید و با APIهای مرتبط شروع کنید.

برای فهرست دقیق APIهای جدید، اصلاح شده و حذف شده، گزارش تفاوت API را بخوانید. برای جزئیات بیشتر در مورد APIهای جدید به مرجع Android API مراجعه کنید - APIهای جدید برای مشاهده برجسته شده اند. همچنین، برای اطلاع از مناطقی که تغییرات پلتفرم ممکن است بر برنامه‌های شما تأثیر بگذارد، حتماً تغییرات رفتار Android 13 را برای برنامه‌هایی که Android 13 را هدف قرار می‌دهند و برای همه برنامه‌ها بررسی کنید.

بهره وری توسعه دهندگان و ابزار

نمادهای برنامه با موضوع

انتخاب کاربر از نمادهای برنامه با موضوع
انتخاب نمادهای برنامه با موضوع در Android 13

با شروع Android 13، می‌توانید نمادهای برنامه‌های موضوعی را انتخاب کنید. با استفاده از این ویژگی، آیکون‌های برنامه در لانچرهای اندرویدی پشتیبانی‌شده برای به ارث بردن رنگ‌های کاغذدیواری انتخابی کاربر و تم‌های دیگر رنگ می‌شوند.

برای پشتیبانی از این ویژگی، برنامه شما باید هم یک نماد تطبیقی ​​و هم یک نماد برنامه تک رنگ ارائه کند و از عنصر <adaptive-icon> در مانیفست به نماد برنامه تک رنگ اشاره کند. اگر کاربر آیکون‌های برنامه‌های مضمونی را فعال کرده باشد (به عبارت دیگر، نمادهای Themed را در تنظیمات سیستم روشن کرده باشد)، و راه‌انداز از این ویژگی پشتیبانی کند، سیستم از رنگ‌آمیزی تصویر زمینه و تم انتخابی کاربر برای تعیین رنگ استفاده می‌کند. سپس بر روی نماد برنامه تک رنگ اعمال می شود.

صفحه اصلی نماد برنامه مضمون را نمایش نمی دهد - و در عوض نماد برنامه تطبیقی ​​یا استاندارد را در هر یک از حالات زیر نمایش می دهد:

  • اگر کاربر نمادهای برنامه مضمون را فعال نکرده باشد
  • اگر برنامه شما نماد برنامه تک رنگ ارائه نمی کند
  • اگر راه‌انداز از نمادهای برنامه مضمون پشتیبانی نمی‌کند

برای جزئیات و دستورالعمل‌های بیشتر، نمادهای تطبیقی ​​را ببینید.

ترجیحات زبان برای هر برنامه

زبان های هر برنامه در تنظیمات سیستم

در بسیاری از موارد، کاربران چند زبانه، زبان سیستم خود را روی یک زبان - مانند انگلیسی - تنظیم می‌کنند، اما می‌خواهند زبان‌های دیگری را برای برنامه‌های خاص مانند هلندی، چینی یا هندی انتخاب کنند. برای کمک به برنامه‌ها برای ارائه تجربه بهتر برای این کاربران، Android 13 ویژگی‌های زیر را برای برنامه‌هایی که از چندین زبان پشتیبانی می‌کنند معرفی می‌کند:

  • تنظیمات سیستم : یک مکان متمرکز که در آن کاربران می توانند زبان مورد نظر را برای هر برنامه انتخاب کنند.

    برنامه شما باید ویژگی android:localeConfig در مانیفست برنامه شما اعلام کند تا به سیستم بگوید که از چندین زبان پشتیبانی می کند. برای کسب اطلاعات بیشتر، دستورالعمل‌های ایجاد یک فایل منبع و اعلام آن را در فایل مانیفست برنامه خود ببینید.

  • APIهای اضافی : این APIهای عمومی، مانند متدهای setApplicationLocales() و getApplicationLocales() در LocaleManager ، به برنامه ها اجازه می دهند زبانی متفاوت از زبان سیستم را در زمان اجرا تنظیم کنند.

    این APIها به طور خودکار با تنظیمات سیستم همگام می شوند. بنابراین، برنامه‌هایی که از این APIها برای ایجاد انتخاب‌کننده‌های زبان درون‌برنامه‌ای سفارشی استفاده می‌کنند، اطمینان حاصل می‌کنند که کاربرانشان بدون توجه به جایی که ترجیحات زبان خود را انتخاب می‌کنند، تجربه کاربری ثابتی دارند. APIهای عمومی همچنین به شما کمک می‌کنند تا مقدار کد دیگ بخار را کاهش دهید، از APK‌های تقسیم‌شده پشتیبانی می‌کنند، و از پشتیبان‌گیری خودکار برای برنامه‌ها برای ذخیره تنظیمات زبان کاربر در سطح برنامه پشتیبانی می‌کنند.

    برای سازگاری با نسخه های قبلی اندروید، API های معادل در AndroidX نیز موجود است. توصیه می کنیم از API های اضافه شده در Appcompat 1.6.0-beta01 یا بالاتر استفاده کنید.

برنامه هایی که از چندین زبان پشتیبانی نمی کنند تحت تأثیر این تغییرات قرار نمی گیرند.

پشتیبانی از متن و زبان بهبود یافته است

Android 13 شامل چندین ویژگی بهبود متن و زبان است که به شما کمک می‌کند تجربه بهتری ارائه دهید که در بخش‌های زیر توضیح داده می‌شود:

خط خطی سریعتر

خط فاصله خواندن متن پیچیده شده را آسان‌تر می‌کند و به سازگاری بیشتر رابط کاربری شما کمک می‌کند. با شروع اندروید 13، عملکرد خط فاصله تا 200 درصد بهینه شده است، بنابراین می توانید آن را در TextView خود فعال کنید و تقریباً هیچ تأثیری بر عملکرد رندر ندارید. برای فعال کردن خط خطی سریعتر، از فرکانس fullFast یا normalFast در setHyphenationFrequency() استفاده کنید.

APIهای تبدیل متن

افرادی که به زبان‌هایی مانند ژاپنی و چینی صحبت می‌کنند از روش‌های ورودی حروف آوایی استفاده می‌کنند که اغلب جستجو را کند می‌کند و ویژگی‌هایی مانند تکمیل خودکار را کاهش می‌دهد. در Android 13، برنامه‌ها می‌توانند API تبدیل متن جدید را فراخوانی کنند تا کاربران بتوانند آنچه را که به دنبال آن هستند سریع‌تر و آسان‌تر پیدا کنند. پیش از این، برای مثال، جستجو به یک کاربر ژاپنی نیاز داشت که این مراحل را انجام دهد:

  1. هیراگانا را به عنوان تلفظ آوایی عبارت جستجوی آنها وارد کنید (مانند مکان یا نام برنامه)
  2. از صفحه کلید برای تبدیل کاراکترهای هیراگانا به کانجی استفاده کنید
  3. با استفاده از کاراکترهای کانجی دوباره جستجو کنید
  4. در نهایت نتایج جستجوی آنها را دریافت کنید

با API تبدیل متن جدید، کاربران ژاپنی می توانند در Hiragana تایپ کنند و بلافاصله نتایج جستجوی Kanji را به صورت زنده مشاهده کنند و مراحل 2 و 3 را رد کنند.

ارتفاع خط بهبود یافته برای اسکریپت های غیر لاتین

اندروید 13 نمایش اسکریپت های غیر لاتین (مانند تامیل، برمه، تلوگو و تبتی) را با استفاده از ارتفاع خطی که برای هر زبان تطبیق داده شده است، بهبود می بخشد. ارتفاع خط جدید مانع از بریدن می شود و موقعیت کاراکترها را بهبود می بخشد. برنامه شما فقط با هدف قرار دادن Android 13 می‌تواند از این پیشرفت‌ها استفاده کند. هنگام استفاده از فاصله خطوط جدید، حتماً برنامه‌های خود را آزمایش کنید زیرا تغییرات ممکن است بر رابط کاربری شما در زبان‌های غیر لاتین تأثیر بگذارد.

ارتفاع‌های خطی که در اندروید 12 (بالا) بریده شده‌اند، اکنون بهتر قرار گرفته‌اند و در اندروید 13 (در زیر) بریده نشده‌اند.

بسته بندی متن ژاپنی بهبود یافته است

از Android 13، TextViews می‌تواند متن را با Bunsetsu (کوچکترین واحد کلماتی که طبیعی به نظر می‌رسد) یا عبارات را برای برنامه‌های کاربردی ژاپنی صیقلی‌تر و خوانا بپیچد. شما می توانید با استفاده از android:lineBreakWordStyle="phrase" با TextViews از این بسته بندی استفاده کنید.

بسته بندی متن ژاپنی با سبک عبارت فعال (در زیر) و بدون (بالا).

به روز رسانی کتابخانه یونیکد

Android 13 جدیدترین بهبودها، اصلاحات و تغییراتی را اضافه می‌کند که در Unicode ICU 70 ، Unicode CLDR 40 و Unicode 14.0 گنجانده شده‌اند.

در اینجا چند تغییر قابل توجه وجود دارد:

  • انگلیسی (کانادا) en‑CA و انگلیسی (جمهوری فیلیپین) en‑PH هر دو از انگلیسی (ایالات متحده) en منابع ترجمه استفاده می‌کنند، زمانی که به جای انگلیسی (بریتانیا) en‑GB منابع ترجمه موجود نباشد.
  • دسته جمع many برای es اسپانیایی، ایتالیایی it ، پرتغالی pt و پرتغالی (پرتغالی) pt‑PT معرفی شده است. مشابه فرانسوی معرفی شده در CLDR v38 ، برای تعداد زیاد استفاده می شود.

فونت های وکتور رنگی

شکلک وکتور COLRv1 (چپ) و شکلک بیت مپ (راست)

از Android 13، این سیستم شامل پشتیبانی از فونت‌های COLR نسخه 1 (COLRv1) و به‌روزرسانی ایموجی‌های سیستم به فرمت COLRv1 است. COLRv1 یک فرمت فونت بسیار فشرده است که در هر اندازه ای به سرعت و واضح ارائه می شود.

برای اکثر برنامه ها، سیستم همه چیز را مدیریت می کند و COLRv1 فقط کار می کند. با این حال، اگر برنامه شما رندر متن خود را پیاده سازی می کند و از فونت های سیستم استفاده می کند، توصیه می کنیم رندر ایموجی را آزمایش کنید.

برای کسب اطلاعات بیشتر در مورد COLRv1، به منابع زیر مراجعه کنید:

API قرار دادن تنظیمات سریع

تنظیمات سریع در سایه اعلان راهی مناسب برای کاربران برای تغییر تنظیمات یا انجام اقدامات سریع بدون خروج از زمینه یک برنامه است. برای برنامه‌هایی که کاشی‌های سفارشی ارائه می‌کنند، ما کشف و افزودن کاشی‌های شما را به تنظیمات سریع برای کاربران آسان‌تر می‌کنیم. با استفاده از یک API قرار دادن کاشی جدید، برنامه شما اکنون می‌تواند از کاربر بخواهد که کاشی سفارشی شما را مستقیماً به مجموعه کاشی‌های فعال تنظیمات سریع اضافه کند. یک گفتگوی سیستم جدید به کاربر اجازه می دهد تا کاشی را در یک مرحله، بدون خروج از برنامه خود، به جای رفتن به تنظیمات سریع برای افزودن کاشی اضافه کند.

گفتگویی که از کاربر می‌پرسد آیا می‌خواهد یک کاشی به تنظیمات سریع خود اضافه کند یا خیر.

پیش نمایش کلیپ بورد

از اندروید 13 شروع می شود، زمانی که محتوا به کلیپ بورد اضافه می شود، سیستم یک تایید بصری استاندارد را نمایش می دهد. تأییدیه جدید موارد زیر را انجام می دهد:

  • تأیید می کند که محتوا با موفقیت کپی شده است.
  • پیش نمایشی از محتوای کپی شده ارائه می دهد.

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

ویجت را کپی/پیست کنید
هنگام ورود محتوا به کلیپ بورد، رابط کاربری جدید نشان داده می شود.

ژست پیش بینی کننده عقب

اندروید 13 یک حرکت پیش بینی کننده برگشت را برای دستگاه های اندرویدی مانند گوشی ها، صفحه نمایش های بزرگ و تاشوها معرفی می کند. پشتیبانی از این ویژگی مستلزم به روز رسانی برنامه خود است.

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

بلوتوث LE صوتی

صدای کم انرژی (LE) یک صدای بی سیم است که برای جایگزینی بلوتوث کلاسیک ساخته شده است و موارد استفاده خاص و توپولوژی های اتصال را فعال می کند. این به کاربران اجازه می دهد تا صدای خود را برای دوستان و خانواده به اشتراک بگذارند و پخش کنند، یا برای اطلاعات، سرگرمی یا دسترسی در برنامه های عمومی مشترک شوند. طراحی شده است تا اطمینان حاصل شود که کاربران می توانند صدایی با وفاداری بالا را بدون کاهش عمر باتری دریافت کنند، و می توانند به طور یکپارچه بین موارد استفاده مختلف که با بلوتوث کلاسیک امکان پذیر نیست جابجا شوند. با شروع اندروید 13، این سیستم شامل پشتیبانی داخلی برای LE Audio می‌شود، بنابراین توسعه‌دهندگان این قابلیت‌ها را به صورت رایگان در دستگاه‌های سازگار دریافت می‌کنند.

MIDI 2.0

با شروع اندروید 13، این سیستم شامل پشتیبانی از استاندارد MIDI 2.0، از جمله قابلیت اتصال سخت افزار MIDI 2.0 از طریق USB است. این استاندارد ویژگی هایی مانند افزایش وضوح برای کنترلرها، پشتیبانی بهتر از لحن غیرغربی و عملکرد گویاتر با استفاده از کنترل کننده های هر نت ارائه می دهد.

بهبود کارایی صفحه نمایش اسپلش

اندروید 13 کارایی صفحه نمایش های متحرک در Splash Screen API را بهبود می بخشد:

  • این سیستم مدت زمان انیمیشن را مستقیماً از AnimatedVectorDrawable استنباط می کند. قبل از اندروید 13، لازم بود که windowSplashScreenAnimationDuration مستقیماً تنظیم شود.

  • از ویژگی جدید windowSplashScreenBehavior برای کنترل بیشتر روی اینکه آیا برنامه شما همیشه نماد را در صفحه نمایش اسپلش در اندروید 13 و بالاتر نمایش می دهد یا خیر، استفاده کنید.

برای مشاهده مستندات دقیق، به Splash Screens مراجعه کنید.

بهینه سازی های ART

در Android 13 (سطح API 33) و بالاتر، ART جابه‌جایی به کد اصلی و از آن را بسیار سریع‌تر می‌کند، با تماس‌های JNI اکنون تا 2.5 برابر سریع‌تر. پردازش مرجع در زمان اجرا نیز مجدداً کار شد تا عمدتاً غیرمسدود شود که باعث کاهش بیشتر jank می شود. علاوه بر این، می‌توانید از API عمومی Reference.refersTo() برای بازیابی اشیای غیرقابل دسترسی زودتر استفاده کنید، و متوجه خواهید شد که مفسر اکنون به لطف جستجوهای کلاس و متد بهینه شده سریع‌تر است. ART همچنین تأیید کد بایت بیشتری را در زمان نصب انجام می دهد، از هزینه تأیید در زمان اجرا جلوگیری می کند و زمان راه اندازی برنامه را سریع نگه می دارد.

حریم خصوصی و امنیت

صادرات ایمن تر گیرنده های ثبت شده در زمینه

برای کمک به ایمن‌تر کردن گیرنده‌های زمان اجرا، Android 13 این قابلیت را برای برنامه شما معرفی می‌کند تا مشخص کند گیرنده پخش ثبت‌شده باید صادر و برای سایر برنامه‌های دستگاه قابل مشاهده باشد یا خیر. در نسخه‌های قبلی Android، هر برنامه‌ای روی دستگاه می‌توانست پخش محافظت‌نشده‌ای را به یک گیرنده ثبت شده به صورت پویا ارسال کند، مگر اینکه گیرنده توسط مجوز امضا محافظت شود.

این پیکربندی صادرکننده در برنامه‌هایی موجود است که حداقل یکی از موارد زیر را انجام می‌دهند:

انتخابگر عکس

Android 13 (سطح API 33) و بالاتر شامل تجربه انتخاب عکس است. هنگامی که برنامه شما انتخابگر عکس را راه اندازی می کند، کاربران به جای اینکه به برنامه شما برای مشاهده کل کتابخانه رسانه دسترسی داشته باشند، تصاویر و ویدیوهای خاصی را برای اشتراک گذاری با برنامه شما، مانند تصاویر نمایه، انتخاب می کنند. این روش پیشنهادی برای دسترسی به عکس ها و فیلم های کاربر است.

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

مجوز زمان اجرا جدید برای دستگاه های Wi-Fi اطراف

Android 13 (سطح API 33) مجوز زمان اجرا جدیدی را در گروه مجوز NEARBY_DEVICES برای برنامه‌هایی که اتصالات دستگاه را به نقاط دسترسی اطراف از طریق Wi-Fi مدیریت می‌کنند، معرفی می‌کند. این برنامه‌ها باید مجوز جدید NEARBY_WIFI_DEVICES را هنگام فراخوانی چندین API Wi-Fi مختلف اعلام کنند. علاوه بر این، تا زمانی که برنامه‌ها مکان فیزیکی را از APIهای Wi-Fi استخراج نکنند، وقتی Android 13 یا بالاتر را هدف قرار می‌دهند، نیازی به اعلام مجوز ACCESS_FINE_LOCATION ندارند.

درباره مجوز دستگاه‌های Wi-Fi اطراف بیشتر بدانید.

مجوز جدید برای استفاده از آلارم‌های دقیق

اگر برنامه شما Android 13 یا بالاتر را هدف قرار می دهد، می توانید از مجوز USE_EXACT_ALARM استفاده کنید که به طور خودکار به برنامه شما اعطا می شود. اما برای اینکه برنامه شما از این مجوز استفاده کند، باید حداقل یکی از معیارهای زیر را داشته باشد:

  • برنامه شما یک برنامه ساعت زنگ دار یا یک برنامه تایمر است.
  • برنامه شما یک برنامه تقویم است که اعلان های رویدادهای آینده را نشان می دهد.

اگر برنامه شما هشدارهای دقیقی را تنظیم می کند اما هیچ یک از موارد نشان داده شده در لیست قبلی را برآورده نمی کند، به جای آن مجوز SCHEDULE_EXACT_ALARM را اعلام کنید و برای شرایطی که کاربر دسترسی به برنامه شما را رد می کند آماده باشید.

مجوزهای قابل کاهش توسعه دهنده

با شروع Android 13، برنامه شما می تواند دسترسی به مجوزهای زمان اجرا استفاده نشده را لغو کند . این API به برنامه شما اجازه می‌دهد تا وظایف افزایش حریم خصوصی مانند موارد زیر را انجام دهد:

  • مجوزهای استفاده نشده را حذف کنید.
  • به بهترین شیوه های مجوزها پایبند باشید، که اعتماد کاربر را بهبود می بخشد. ممکن است بخواهید به کاربران یک گفتگو نشان دهید که مجوزهایی را که فعالانه لغو کرده اید نشان می دهد.

APK Signature Scheme v3.1

Android 13 پشتیبانی از APK Signature Scheme نسخه 3.1 را اضافه می کند که بر روی APK Signature Scheme v3 بهبود می یابد. این طرح به برخی از مشکلات شناخته شده APK Signature Scheme v3 در مورد چرخش می پردازد . به طور خاص، طرح امضای v3.1 از هدف‌گیری نسخه SDK پشتیبانی می‌کند، که به چرخش اجازه می‌دهد تا نسخه بعدی پلتفرم را هدف قرار دهد.

طرح امضای v3.1 از شناسه بلوکی استفاده می‌کند که در 12 لیتر یا پایین‌تر شناسایی نمی‌شود. بنابراین، پلت فرم رفتار امضاکننده زیر را اعمال می کند:

  • دستگاه‌هایی که اندروید 13 یا بالاتر را اجرا می‌کنند، از امضاکننده چرخشی در بلوک نسخه 3.1 استفاده می‌کنند.
  • دستگاه‌هایی که نسخه‌های قدیمی‌تر Android را اجرا می‌کنند، امضاکننده چرخانده را نادیده می‌گیرند و در عوض از امضاکننده اصلی در بلوک v3.0 استفاده می‌کنند.

برنامه‌هایی که هنوز کلید امضای خود را چرخانده‌اند، نیازی به اقدام اضافی ندارند. هر زمان که این برنامه‌ها چرخش را انتخاب کنند، سیستم به‌طور پیش‌فرض طرح امضای v3.1 را اعمال می‌کند.

برنامه‌هایی که قبلاً چرخیده‌اند و می‌خواهند به استفاده از کلید امضای چرخشی خود در بلوک امضای v3.0 ادامه دهند، باید فراخوانی apksigner خود را به‌روزرسانی کنند:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

... که در آن API_LEVEL 32 یا کمتر است.

گزارش بهتر خطا در Keystore و KeyMint

برای برنامه‌هایی که کلید تولید می‌کنند، Keystore و KeyMint اکنون نشانگرهای خطای دقیق‌تر و دقیق‌تری را ارائه می‌کنند. ما یک سلسله مراتب کلاس استثنا را تحت java.security.ProviderException اضافه کرده‌ایم، با استثناهای خاص Android که شامل کدهای خطای Keystore/KeyMint است و اینکه آیا خطا قابل امتحان مجدد است یا خیر. همچنین می‌توانید روش‌های تولید کلید و استفاده (امضا، رمزگذاری) را برای پرتاب استثناهای جدید تغییر دهید. گزارش خطای بهبود یافته به تولید کلید محدود نمی شود و اکنون باید آنچه را که برای تلاش مجدد برای تولید کلید نیاز دارید به شما ارائه دهد.

پشتیبانی از تبلت و صفحه نمایش بزرگ

Android 13 مبتنی بر بهینه‌سازی‌های تبلت معرفی‌شده در Android 12 و کاهش ویژگی‌های 12L است - از جمله بهینه‌سازی برای رابط کاربری سیستم، چندوظیفه بهتر و حالت‌های سازگاری بهبود یافته. به عنوان بخشی از آزمایش خود، مطمئن شوید که برنامه‌های شما در تبلت‌ها و سایر دستگاه‌های صفحه بزرگ به بهترین شکل ظاهر می‌شوند.

برای اطلاعات بیشتر در مورد چیزهای جدید و مواردی که باید آزمایش کنید، به صفحه پشتیبانی تبلت و صفحه نمایش بزرگ مراجعه کنید.

گرافیک

شیدرهای قابل برنامه ریزی

یک سایه زن متحرک AGSL، اقتباس شده از این سایه زن GLSL .

با شروع اندروید 13، این سیستم شامل پشتیبانی از اشیاء RuntimeShader قابل برنامه ریزی، با رفتاری که با استفاده از زبان سایه گرافیکی اندروید ( AGSL ) تعریف شده است، می شود. AGSL بیشتر نحو خود را با GLSL به اشتراک می گذارد، اما در موتور رندر اندروید برای سفارشی کردن نقاشی در بوم اندروید و همچنین فیلتر کردن محتوا کار می کند. اندروید به صورت داخلی از این سایه‌زن‌ها برای پیاده‌سازی افکت‌های ریپل ، تاری و اسکرول کششی استفاده می‌کند. اندروید 13 و بالاتر به شما امکان می دهد جلوه های پیشرفته مشابهی را برای برنامه خود ایجاد کنید.

بهبودهای طراح رقص

Android 13 روش‌های API عمومی را به Choreographer و ASurfaceControl معرفی می‌کند که اطلاعات بیشتری در مورد جدول زمانی فریم‌های احتمالی به برنامه‌ها ارائه می‌دهد و زمینه بیشتری را در مورد چرخه عمر فریم به SurfaceFlinger اضافه می‌کند. مانند قبل، برنامه‌ها می‌توانند پاسخ تماسی به Choreographer ارسال کنند و اطلاعات جدول زمانی فریم را دریافت کنند. در Android 13 (سطح API 33)، Choreographer زمان‌های ارائه احتمالی متعدد و مهلت‌های فریم مربوطه آن‌ها را برمی‌گرداند. برنامه ها می توانند زمان ارائه را انتخاب کنند و متعاقباً SurfaceFlinger را از انتخاب مطلع کنند . سپس SurfaceFlinger سعی نمی‌کند تا قبل از زمان ارائه مورد نظر، تراکنش‌ها یا بافرهای لچ را اعمال کند.

اگر برنامه شما از روش‌های جدید Choreographer و SurfaceControl استفاده می‌کند، می‌توانید چرخه عمر فریم برنامه را در ردیابی Perfetto مشاهده کنید.

دوربین

فیلمبرداری HDR

با شروع Android 13، API های Camera2 از فیلم برداری با محدوده دینامیکی بالا (HDR) پشتیبانی می کنند که به شما امکان می دهد با استفاده از دوربین خود، پیش نمایش و ضبط محتوای ویدیوی HDR را داشته باشید. در مقایسه با محدوده دینامیکی استاندارد (SDR)، HDR طیف وسیع تری از رنگ ها را ارائه می دهد و محدوده دینامیکی جزء روشنایی را افزایش می دهد (از 100 cd/m2 فعلی تا 1000s cd/m2). این منجر به کیفیت ویدیویی می شود که بیشتر با زندگی واقعی مطابقت دارد، با رنگ های غنی تر، هایلایت روشن تر و سایه های تیره تر.

برای کسب اطلاعات بیشتر در مورد فیلمبرداری HDR، به مستندات فیلمبرداری HDR مراجعه کنید.

رسانه ها

صوتی فضایی

صدای فضایی یک تجربه صوتی فراگیر است که باعث می‌شود محتوای رسانه برای کاربران شما واقعی‌تر به نظر برسد. برای جزئیات در مورد نحوه ادغام با این ویژگی، به مستندات صوتی فضایی ما مراجعه کنید.

مسیریابی صوتی پیش بینی شده

Android 13 برای کمک به برنامه‌های رسانه‌ای برای شناسایی نحوه مسیریابی صدایشان، APIهای مسیر صوتی را در کلاس AudioManager معرفی می‌کند. API getAudioDevicesForAttributes() به شما امکان می دهد لیستی از دستگاه هایی را که ممکن است برای پخش صدای مشخص شده استفاده شوند، بازیابی کنید، و API getDirectProfilesForAttributes() به شما کمک می کند بفهمید که آیا جریان صوتی شما می تواند مستقیما پخش شود یا خیر. از این APIها برای تعیین بهترین AudioFormat برای استفاده برای آهنگ صوتی خود استفاده کنید.

دسترسی

توضیحات صوتی

Android 13 (سطح API 33) یک اولویت دسترسی جدید در سراسر سیستم را معرفی می کند که به کاربران امکان می دهد توضیحات صوتی را در همه برنامه ها فعال کنند. توضیحات صوتی یک آهنگ روایت اضافی است که شامل صحبت یک راوی از طریق ارائه است، و توصیف می کند که در طول مکث های طبیعی صدا چه اتفاقی بر روی صفحه می افتد. همانطور که در قطعه کد زیر نشان داده شده است، برنامه‌ها می‌توانند ترجیحات کاربر را برای تراک‌های توضیحات صوتی با پرس‌وجو با isAudioDescriptionRequested() دنبال کنند:

کاتلین


private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

جاوا


private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

برنامه‌ها می‌توانند با افزودن شنونده به AccessbilityManager ، تغییرات ترجیحی کاربر را کنترل کنند:

کاتلین

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

جاوا

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

عملکرد اصلی

به روز رسانی OpenJDK 11

اندروید 13 کار تازه سازی کتابخانه های اصلی اندروید را آغاز می کند تا با نسخه OpenJDK 11 LTS با به روز رسانی های کتابخانه و پشتیبانی از زبان جاوا 11 برای توسعه دهندگان برنامه ها و پلتفرم هماهنگ شود. تغییرات اصلی کتابخانه معرفی شده در اندروید 13 نیز از طریق به‌روزرسانی سیستم Google Play به ماژول اصلی ART برای دستگاه‌های Android 12 در دسترس خواهد بود.

اندروید 13 شامل تغییرات زیر در کتابخانه های اصلی است:

  • پشتیبانی از کلمه کلیدی var برای متغیرهای محلی و به عنوان پارامترهای lambdas.
  • متدهای جدید در کلاس String:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • پشتیبانی از Collection.toArray(IntFunction) برای آسان‌تر کردن تطبیق مجموعه با آرایه.

  • پشتیبانی از ifPresentOrElse() ، isEmpty() ، orElseThrow() و stream() در کلاس های java.util Optional ، OptionalDouble ، OptionalInt و OptionalLong .

  • پشتیبانی گسترده از SocketOptions از جمله استفاده مجدد از سوکت ها.

  • عملکرد Reader NullReader ، NullWriter ، InputStream ، OutputStream و transferTo() که کاراکترهای خوانده شده را به Writer منتقل می کند.

  • قابلیت اضافه شده برای رمزگذاری و رمزگشایی URL با استفاده از Charsets .

  • قابلیت Charset برای FileReader , FileWriter , PrintStream و PrintWriter .

  • توابع جدید transferTo() ، readNBytes() ، readAllBytes() و writeBytes() برای ByteArrayInput یا OutputStream و Input یا OutputStream .

  • پشتیبانی از زمان اجرا و کامپایلر برای java.lang.invoke.VarHandle .

  • java.util.concurrent را با استفاده از VarHandle داخلی به OpenJDK 11 API به روز می کند.

جاوا و OpenJDK علائم تجاری یا علائم تجاری ثبت شده Oracle و/یا شرکت های وابسته به آن هستند.