اندروید 13 ویژگی های جدید و API های عالی را برای توسعه دهندگان معرفی می کند. بخشهای زیر به شما کمک میکند تا با ویژگیهای برنامههای خود آشنا شوید و با APIهای مرتبط شروع کنید.
برای فهرست دقیق APIهای جدید، اصلاح شده و حذف شده، گزارش تفاوت API را بخوانید. برای جزئیات بیشتر در مورد APIهای جدید به مرجع Android API مراجعه کنید - APIهای جدید برای مشاهده برجسته شده اند. همچنین، برای اطلاع از مناطقی که تغییرات پلتفرم ممکن است بر برنامههای شما تأثیر بگذارد، حتماً تغییرات رفتار 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 تبدیل متن جدید را فراخوانی کنند تا کاربران بتوانند آنچه را که به دنبال آن هستند سریعتر و آسانتر پیدا کنند. پیش از این، برای مثال، جستجو به یک کاربر ژاپنی نیاز داشت که این مراحل را انجام دهد:
- هیراگانا را به عنوان تلفظ آوایی عبارت جستجوی آنها وارد کنید (مانند مکان یا نام برنامه)
- از صفحه کلید برای تبدیل کاراکترهای هیراگانا به کانجی استفاده کنید
- با استفاده از کاراکترهای کانجی دوباره جستجو کنید
- در نهایت نتایج جستجوی آنها را دریافت کنید
با API تبدیل متن جدید، کاربران ژاپنی می توانند در Hiragana تایپ کنند و بلافاصله نتایج جستجوی Kanji را به صورت زنده مشاهده کنند و مراحل 2 و 3 را رد کنند.
ارتفاع خط بهبود یافته برای اسکریپت های غیر لاتین
اندروید 13 نمایش اسکریپت های غیر لاتین (مانند تامیل، برمه، تلوگو و تبتی) را با استفاده از ارتفاع خطی که برای هر زبان تطبیق داده شده است، بهبود می بخشد. ارتفاع خط جدید مانع از بریدن می شود و موقعیت کاراکترها را بهبود می بخشد. برنامه شما فقط با هدف قرار دادن Android 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 ، برای تعداد زیاد استفاده می شود.
فونت های وکتور رنگی
از Android 13، این سیستم شامل پشتیبانی از فونتهای COLR نسخه 1 (COLRv1) و بهروزرسانی ایموجیهای سیستم به فرمت COLRv1 است. COLRv1 یک فرمت فونت بسیار فشرده است که در هر اندازه ای به سرعت و واضح ارائه می شود.
برای اکثر برنامه ها، سیستم همه چیز را مدیریت می کند و COLRv1 فقط کار می کند. با این حال، اگر برنامه شما رندر متن خود را پیاده سازی می کند و از فونت های سیستم استفاده می کند، توصیه می کنیم رندر ایموجی را آزمایش کنید.
برای کسب اطلاعات بیشتر در مورد COLRv1، به منابع زیر مراجعه کنید:
- اطلاعیه وبلاگ توسعه دهندگان Chrome
- ارسال فونت های وکتور رنگی COLRv1 در کروم (ویدئو)
- مشخصات جدول COLR
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، هر برنامهای روی دستگاه میتوانست پخش محافظتنشدهای را به یک گیرنده ثبت شده به صورت پویا ارسال کند، مگر اینکه گیرنده توسط مجوز امضا محافظت شود.
این پیکربندی صادرکننده در برنامههایی موجود است که حداقل یکی از موارد زیر را انجام میدهند:
- از کلاس
ContextCompat
نسخه 1.9.0 یا بالاتر کتابخانه AndroidX Core استفاده کنید. - اندروید 13 یا بالاتر را هدف قرار دهید.
انتخابگر عکس
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 است - از جمله بهینهسازی برای رابط کاربری سیستم، چندوظیفه بهتر و حالتهای سازگاری بهبود یافته. به عنوان بخشی از آزمایش خود، مطمئن شوید که برنامههای شما در تبلتها و سایر دستگاههای صفحه بزرگ به بهترین شکل ظاهر میشوند.
برای اطلاعات بیشتر در مورد چیزهای جدید و مواردی که باید آزمایش کنید، به صفحه پشتیبانی تبلت و صفحه نمایش بزرگ مراجعه کنید.
گرافیک
شیدرهای قابل برنامه ریزی
با شروع اندروید 13، این سیستم شامل پشتیبانی از اشیاء RuntimeShader
قابل برنامه ریزی، با رفتاری که با استفاده از زبان سایه گرافیکی اندروید ( AGSL ) تعریف شده است، می شود. AGSL بیشتر نحو خود را با GLSL به اشتراک می گذارد، اما در موتور رندر اندروید برای سفارشی کردن نقاشی در بوم اندروید و همچنین فیلتر کردن محتوا کار می کند. اندروید به صورت داخلی از این سایهزنها برای پیادهسازی افکتهای ریپل ، تاری و اسکرول کششی استفاده میکند. اندروید 13 و بالاتر به شما امکان می دهد جلوه های پیشرفته مشابهی را برای برنامه خود ایجاد کنید.
بهبودهای طراح رقص
Android 13 روشهای API عمومی را به Choreographer
و ASurfaceControl
معرفی میکند که اطلاعات بیشتری در مورد جدول زمانی فریمهای احتمالی به برنامهها ارائه میدهد و زمینه بیشتری را در مورد چرخه عمر فریم به SurfaceFlinger
اضافه میکند. مانند قبل، برنامهها میتوانند پاسخ تماسی به Choreographer
ارسال کنند و اطلاعات جدول زمانی فریم را دریافت کنند. در Android 13 (سطح API 33)، Choreographer
زمانهای ارائه احتمالی متعدد و مهلتهای فریم مربوطه آنها را برمیگرداند. برنامه ها می توانند زمان ارائه را انتخاب کنند و متعاقباً SurfaceFlinger
را از انتخاب مطلع کنند . سپس SurfaceFlinger
سعی نمیکند تا قبل از زمان ارائه مورد نظر، تراکنشها یا بافرهای لچ را اعمال کند.
دوربین
فیلمبرداری 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 و/یا شرکت های وابسته به آن هستند.
،اندروید 13 ویژگی های جدید و API های عالی را برای توسعه دهندگان معرفی می کند. بخشهای زیر به شما کمک میکند تا با ویژگیهای برنامههای خود آشنا شوید و با APIهای مرتبط شروع کنید.
برای فهرست دقیق APIهای جدید، اصلاح شده و حذف شده، گزارش تفاوت API را بخوانید. برای جزئیات بیشتر در مورد APIهای جدید به مرجع Android API مراجعه کنید - APIهای جدید برای مشاهده برجسته شده اند. همچنین، برای اطلاع از مناطقی که تغییرات پلتفرم ممکن است بر برنامههای شما تأثیر بگذارد، حتماً تغییرات رفتار 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 تبدیل متن جدید را فراخوانی کنند تا کاربران بتوانند آنچه را که به دنبال آن هستند سریعتر و آسانتر پیدا کنند. پیش از این، برای مثال، جستجو به یک کاربر ژاپنی نیاز داشت که این مراحل را انجام دهد:
- هیراگانا را به عنوان تلفظ آوایی عبارت جستجوی آنها وارد کنید (مانند مکان یا نام برنامه)
- از صفحه کلید برای تبدیل کاراکترهای هیراگانا به کانجی استفاده کنید
- با استفاده از کاراکترهای کانجی دوباره جستجو کنید
- در نهایت نتایج جستجوی آنها را دریافت کنید
با API تبدیل متن جدید، کاربران ژاپنی می توانند در Hiragana تایپ کنند و بلافاصله نتایج جستجوی Kanji را به صورت زنده مشاهده کنند و مراحل 2 و 3 را رد کنند.
ارتفاع خط بهبود یافته برای اسکریپت های غیر لاتین
اندروید 13 نمایش اسکریپت های غیر لاتین (مانند تامیل، برمه، تلوگو و تبتی) را با استفاده از ارتفاع خطی که برای هر زبان تطبیق داده شده است، بهبود می بخشد. ارتفاع خط جدید مانع از بریدن می شود و موقعیت کاراکترها را بهبود می بخشد. برنامه شما فقط با هدف قرار دادن Android 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 ، برای تعداد زیاد استفاده می شود.
فونت های وکتور رنگی
از Android 13، این سیستم شامل پشتیبانی از فونتهای COLR نسخه 1 (COLRv1) و بهروزرسانی ایموجیهای سیستم به فرمت COLRv1 است. COLRv1 یک فرمت فونت بسیار فشرده است که در هر اندازه ای به سرعت و واضح ارائه می شود.
برای اکثر برنامه ها، سیستم همه چیز را مدیریت می کند و COLRv1 فقط کار می کند. با این حال، اگر برنامه شما رندر متن خود را پیاده سازی می کند و از فونت های سیستم استفاده می کند، توصیه می کنیم رندر ایموجی را آزمایش کنید.
برای کسب اطلاعات بیشتر در مورد COLRv1، به منابع زیر مراجعه کنید:
- اطلاعیه وبلاگ توسعه دهندگان Chrome
- ارسال فونت های وکتور رنگی COLRv1 در کروم (ویدئو)
- مشخصات جدول COLR
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 ، هر برنامه روی دستگاه می تواند یک پخش محافظت نشده را به یک گیرنده ثبت شده به صورت پویا ارسال کند ، مگر اینکه آن گیرنده با اجازه امضای محافظت شود.
این پیکربندی صادرات در برنامه هایی که حداقل یکی از موارد زیر را انجام می دهد موجود است:
- از کلاس
ContextCompat
از نسخه 1.9.0 یا بالاتر کتابخانه هسته Androidx استفاده کنید. - اندروید 13 یا بالاتر را هدف قرار دهید.
انتخابگر عکس
Android 13 (API سطح 33) و بالاتر شامل یک تجربه انتخاب کننده عکس است. هنگامی که برنامه شما انتخاب کننده عکس را راه اندازی می کند ، کاربران به جای دسترسی به برنامه خود برای مشاهده کل کتابخانه رسانه ، تصاویر و فیلم های خاصی را برای به اشتراک گذاشتن با برنامه خود ، مانند تصاویر پروفایل انتخاب می کنند. این روش توصیه شده برای دسترسی به عکس ها و فیلم های کاربر است.
عکس انتخاب کننده عکس حریم خصوصی پیشرفته ای را برای کاربران فراهم می کند زیرا برنامه شما نیازی به اعلام مجوزهای زمان اجرا ندارد. علاوه بر این ، انتخاب کننده عکس یک UI داخلی و استاندارد را برای برنامه ها فراهم می کند ، که یک تجربه کاربر سازگار تر را ایجاد می کند.
مجوز جدید اجرا برای دستگاه های Wi-Fi در این نزدیکی
Android 13 (API سطح 33) مجوز جدید اجرا را در گروه مجوز مجوز NEARBY_DEVICES
برای برنامه هایی که اتصالات دستگاه را به نقاط دسترسی نزدیک از طریق Wi-Fi مدیریت می کنند ، معرفی می کند. این برنامه ها باید هنگام تماس با چندین API های مختلف Wi-Fi ، مجوز جدید ، NEARBY_WIFI_DEVICES
را اعلام کنند. علاوه بر این ، تا زمانی که برنامه ها موقعیت فیزیکی را از API های Wi-Fi بدست نمی آورند ، نیازی به اعلام مجوز ACCESS_FINE_LOCATION
در هنگام هدف قرار دادن Android 13 یا بالاتر نیست.
درباره اجازه دستگاه های Wi-Fi در این نزدیکی بیشتر بدانید.
مجوز جدید برای استفاده از آلارم دقیق
اگر برنامه شما Android 13 یا بالاتر را هدف قرار داده است ، می توانید از مجوز USE_EXACT_ALARM
استفاده کنید ، که به طور خودکار به برنامه شما اعطا می شود. برای اینکه برنامه شما از این مجوز استفاده کند ، باید حداقل یکی از معیارهای زیر را برآورده کند:
- برنامه شما یک برنامه ساعت زنگ دار یا یک برنامه تایمر است.
- برنامه شما یک برنامه تقویم است که اعلان هایی را برای رویدادهای آینده نشان می دهد.
اگر برنامه شما هشدارهای دقیق را تعیین می کند اما هر دو مورد نشان داده شده در لیست قبلی را برآورده نمی کند ، به جای SCHEDULE_EXACT_ALARM
اجازه را اعلام کنید.
مجوزهای قابل کاهش توسعه دهنده
با شروع در Android 13 ، برنامه شما می تواند دسترسی به مجوزهای اجرا استفاده نشده را لغو کند . این API به برنامه شما اجازه می دهد تا کارهای تقویت حریم خصوصی مانند موارد زیر را انجام دهد:
- مجوزهای بلااستفاده را حذف کنید.
- به بهترین شیوه ها ، که باعث بهبود اعتماد کاربر می شود ، رعایت کنید. ممکن است بخواهید گفتگوی را به کاربران نشان دهید که مجوزهایی را که شما به طور فعال ابطال کرده اید نشان می دهد.
طرح امضای APK v3.1
Android 13 پشتیبانی از طرح امضای APK V3.1 را اضافه می کند ، که بر روی طرح امضای APK موجود V3 بهبود می یابد. این طرح به برخی از موضوعات شناخته شده با طرح امضای APK V3 در مورد چرخش می پردازد . به طور خاص ، طرح امضا v3.1 از هدف قرار دادن نسخه SDK پشتیبانی می کند ، که به چرخش اجازه می دهد تا نسخه بعدی این سیستم عامل را هدف قرار دهد.
طرح امضای V3.1 از شناسه بلوک استفاده می کند که در 12L یا پایین شناخته نمی شود. بنابراین ، این پلتفرم رفتار امضا کننده زیر را اعمال می کند:
- دستگاه هایی که Android 13 یا بالاتر را اجرا می کنند از امضا کننده چرخان در بلوک v3.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 یا پایین است.
گزارش بهتر خطای در کلیدی و keymint
برای برنامه هایی که کلیدها ، کلیدهای کلیدی و Keymint ایجاد می کنند ، شاخص های خطای دقیق تر و دقیق تری دارند. ما یک سلسله مراتب کلاس استثنا را تحت java.security.ProviderException
اضافه کرده ایم ، با استثنائات خاص اندرویدی که شامل کدهای خطای کلیدی/keymint است ، و اینکه آیا این خطا قابل تکرار است. همچنین می توانید روش های تولید و استفاده اصلی (امضای ، رمزگذاری) را برای پرتاب استثنائات جدید تغییر دهید. گزارش خطای بهبود یافته محدود به نسل کلیدی نیست و اکنون باید آنچه را که برای آزمایش مجدد نسل کلید لازم دارید به شما ارائه دهد.
تبلت و پشتیبانی از صفحه نمایش بزرگ
Android 13 بر روی بهینه سازی های تبلت معرفی شده در Android 12 و Drop ویژگی 12L ساخته شده است - از جمله بهینه سازی برای UI سیستم ، چند وظیفه ای بهتر و حالت های سازگاری بهبود یافته. به عنوان بخشی از آزمایش خود ، اطمینان حاصل کنید که برنامه های شما بهترین آنها را در رایانه لوحی و سایر دستگاه های صفحه بزرگ به نظر می رسند.
برای کسب اطلاعات بیشتر در مورد آنچه جدید است و چه چیزی باید آزمایش کنید ، به صفحه پشتیبانی رایانه لوحی و صفحه بزرگ مراجعه کنید.
گرافیک
سایه بان های قابل برنامه ریزی
با شروع Android 13 ، این سیستم شامل پشتیبانی از اشیاء قابل برنامه ریزی RuntimeShader
است ، با رفتار تعریف شده با استفاده از زبان سایه گرافیکی Android ( AGSL ). AGSL بخش اعظم نحو خود را با GLSL به اشتراک می گذارد ، اما در موتور رندر Android برای سفارشی سازی نقاشی در بوم اندروید و همچنین فیلتر کردن محتوای نمایش کار می کند. Android در داخل از این سایه بان ها برای اجرای جلوه های موج دار ، تار و کشش بیش از حد استفاده می کند. Android 13 و بالاتر شما را قادر می سازد جلوه های پیشرفته مشابهی را برای برنامه خود ایجاد کنید.
پیشرفت های رقصنده
Android 13 روشهای API عمومی را برای Choreographer
و ASurfaceControl
معرفی می کند که اطلاعات بیشتری در مورد جدول زمانی قاب ممکن به برنامه ها ارائه می دهد و زمینه بیشتری را برای SurfaceFlinger
در مورد چرخه عمر قاب اضافه می کند. مشابه قبل ، برنامه ها می توانند یک تماس تلفنی را به Choreographer
ارسال کنند و اطلاعات جدول زمانی فریم را دریافت کنند. در Android 13 (API سطح 33) ، Choreographer
چندین بار ارائه ممکن و مهلت قاب مربوطه را برمی گرداند. برنامه ها می توانند زمان ارائه را انتخاب کرده و متعاقباً به SurfaceFlinger
از انتخاب اطلاع دهند . سپس SurfaceFlinger
سعی نمی کند قبل از زمان ارائه مورد نظر ، معاملات یا بافرهای قفل را اعمال کند.
دوربین
ضبط فیلم HDR
با شروع Android 13 ، API های Camera2 از ضبط ویدیو Dynamic Range (HDR) پشتیبانی می کنند ، که به شما امکان می دهد با استفاده از دوربین خود ، محتوای ویدیوی HDR را پیش نمایش و ضبط کنید. در مقایسه با دامنه پویا استاندارد (SDR) ، HDR طیف وسیع تری از رنگ ها را ارائه می دهد و دامنه پویا از مؤلفه درخشش را افزایش می دهد (از 100 cd/m2 فعلی به 1000s cd/m2). این منجر به کیفیت فیلم می شود که بیشتر با زندگی واقعی مطابقت دارد ، با رنگ های غنی تر ، برجسته های روشن تر و سایه های تیره تر.
برای کسب اطلاعات بیشتر در مورد ضبط ویدیوی HDR ، به مستندات ضبط فیلم HDR مراجعه کنید.
رسانه ها
صوتی فضایی
صوتی فضایی یک تجربه صوتی همهجانبه است که باعث می شود محتوای رسانه برای کاربران شما واقع بینانه تر به نظر برسد. برای جزئیات بیشتر در مورد نحوه ادغام با این ویژگی ، مستندات صوتی مکانی ما را ببینید.
مسیریابی صوتی پیش بینی شده
Android 13 برای کمک به برنامه های رسانه ای که چگونه می توان به نحوه مسیریابی صدای آنها اشاره کرد ، ANDROID 13 API های مسیر صوتی را در کلاس AudioManager
معرفی می کند. API getAudioDevicesForAttributes()
به شما امکان می دهد لیستی از دستگاه هایی را که ممکن است برای پخش صوتی مشخص شده استفاده شود ، بازیابی کنید و getDirectProfilesForAttributes()
API به شما کمک می کند تا درک کنید که آیا جریان صوتی شما مستقیماً پخش می شود. از این 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
Android 13 کار تازه کردن کتابخانه های اصلی Android را برای هماهنگی با نسخه OpenJDK 11 LTS با هر دو به روزرسانی کتابخانه و پشتیبانی زبان Java 11 برای توسعه دهندگان برنامه و پلتفرم آغاز می کند. تغییرات اصلی کتابخانه معرفی شده در Android 13 همچنین از طریق بروزرسانی سیستم Google Play در ماژول اصلی Art در دسترس دستگاه های Android 12 خواهد بود.
Android 13 شامل تغییرات زیر در کتابخانه های اصلی است:
- پشتیبانی از کلمه کلیدی
var
برای متغیرهای محلی و به عنوان پارامترهای Lambdas. روشهای جدید در کلاس رشته:
-
isBlank()
-
lines()
-
repeat()
-
strip()
-
stripLeading()
-
stripTrailing()
-
پشتیبانی از
Collection.toArray(IntFunction)
برای تطبیق یک مجموعه با یک آرایه آسانتر می شود.پشتیبانی از
ifPresentOrElse()
،isEmpty()
،orElseThrow()
وstream()
در کلاس هایjava.util
Optional
،OptionalDouble
،OptionalInt
وOptionalLong
.پشتیبانی گسترده از
SocketOptions
از جمله استفاده مجدد از سوکت.NullReader
،NullWriter
،InputStream
،OutputStream
وtransferTo()
عملکردReader
که شخصیت های خوانده شده را به یکWriter
منتقل می کنند.قابلیت های اضافه شده برای رمزگذاری URL و رمزگشایی با استفاده از
Charsets
.عملکرد
Charset
برایFileReader
،FileWriter
،PrintStream
وPrintWriter
.توابع جدید
transferTo()
،readNBytes()
،readAllBytes()
وwriteBytes()
برایByteArrayInput
یاOutputStream
وInput
یاOutputStream
.پشتیبانی از زمان اجرا و کامپایلر برای
java.lang.invoke.VarHandle
.java.util.concurrent
برای OpenJDK 11 API با استفاده ازVarHandle
در داخل به روز کنید.
جاوا و OpenJDK علائم تجاری یا علائم تجاری ثبت شده اوراکل و/یا شرکت های وابسته به آن هستند.