ویژگی ها و API ها

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

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

همچنین باید حوزه‌هایی را که تغییرات پلتفرم ممکن است بر برنامه‌های شما تأثیر بگذارد، بررسی کنید. برای اطلاعات بیشتر، به صفحات زیر مراجعه کنید:

عملکرد اصلی

اندروید شامل API های جدیدی است که قابلیت های اصلی سیستم اندروید را گسترش می دهند.

دو نسخه از رابط برنامه‌نویسی اندروید (API) در سال ۲۰۲۵ منتشر خواهد شد

  • این پیش نمایش برای نسخه اصلی بعدی اندروید با راه اندازی برنامه ریزی شده در سه ماهه دوم سال 2025 است. این نسخه مشابه همه نسخه های API ما در گذشته است، جایی که می توانیم تغییرات رفتاری برنامه ریزی شده ای داشته باشیم که اغلب به یک targetSdkVersion گره خورده است.
  • ما در حال برنامه‌ریزی نسخه اصلی یک ربع زودتر (به جای Q3 در سال‌های قبل) هستیم تا با برنامه زمان‌بندی راه‌اندازی دستگاه‌ها در سراسر اکوسیستم خود هماهنگی بیشتری داشته باشیم، بنابراین دستگاه‌های بیشتری بتوانند زودتر نسخه اصلی Android را دریافت کنند. با انتشار اصلی در سه ماهه دوم، باید آزمایش سازگاری سالانه خود را چند ماه زودتر از سال‌های گذشته انجام دهید تا مطمئن شوید برنامه‌هایتان آماده هستند.
  • ما قصد داریم در سه ماهه چهارم سال 2025 نسخه دیگری داشته باشیم که شامل API های توسعه دهندگان جدید نیز می شود. نسخه اصلی Q2 تنها نسخه در سال 2025 خواهد بود که شامل تغییرات رفتاری برنامه ریزی شده است که می تواند برنامه ها را تحت تأثیر قرار دهد.

علاوه بر APIهای توسعه‌دهنده جدید، نسخه جزئی Q4 به‌روزرسانی‌ها، بهینه‌سازی‌ها و رفع اشکال‌ها را در اختیار خواهد داشت. این شامل هیچ گونه تغییر رفتاری تأثیرگذار بر برنامه نخواهد بود.

نمای جدول زمانی اندروید در سال 2025 منتشر می شود، با توجه به اینکه 25Q2        انتشار یک نسخه اصلی است و نسخه 25Q4 یک نسخه فرعی است.

ما به انتشار سه ماهه اندروید ادامه خواهیم داد. به‌روزرسانی‌های Q1 و Q3 بین نسخه‌های API به‌روزرسانی‌های افزایشی را برای اطمینان از کیفیت مداوم ارائه می‌دهند. ما فعالانه با شرکای دستگاه خود کار می کنیم تا نسخه Q2 را تا حد امکان به دستگاه های بیشتری ارائه کنیم.

استفاده از API های جدید با نسخه های اصلی و فرعی

محافظت از بلوک کد با بررسی سطح API امروز با استفاده از ثابت SDK_INT با VERSION_CODES انجام می شود. این همچنان برای نسخه های اصلی اندروید پشتیبانی می شود.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

ثابت جدید SDK_INT_FULL می تواند برای بررسی های API در برابر هر دو نسخه اصلی و فرعی با شمارش جدید VERSION_CODES_FULL استفاده شود.

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

همچنین می‌توانید از متد Build.getMinorSdkVersion() برای دریافت نسخه کوچک SDK استفاده کنید.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

این API ها هنوز نهایی نشده اند و در معرض تغییر هستند، بنابراین لطفاً در صورت داشتن هر گونه نگرانی، بازخورد خود را برای ما ارسال کنید.

تجربه کاربری و رابط کاربری سیستم

اندروید ۱۶ به توسعه‌دهندگان اپلیکیشن و کاربران کنترل و انعطاف‌پذیری بیشتری برای پیکربندی دستگاهشان متناسب با نیازهایشان می‌دهد.

اعلان‌های متمرکز بر پیشرفت

اندروید 16 اعلان‌های پیشرفت‌محور را معرفی می‌کند تا به کاربران کمک کند به‌طور یکپارچه سفرهای شروع تا پایان توسط کاربر را ردیابی کنند.

Notification.ProgressStyle یک سبک اعلان جدید است که به شما امکان می دهد اعلان های پیشرفت محور ایجاد کنید. موارد استفاده کلیدی شامل rideshare، تحویل، و ناوبری است. در کلاس Notification.ProgressStyle ، می‌توانید وضعیت‌ها و نقاط عطف در سفر کاربر را با استفاده از نقاط و بخش‌ها مشخص کنید.

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

یک اعلان پیشرفت محور در صفحه قفل نمایش داده می شود.
یک اعلان پیشرفت محور در قسمت اعلان نمایش داده می شود.

به‌روزرسانی‌های پیش‌بینی‌شده‌ی قبلی

Android 16 API های جدیدی را اضافه می کند تا به شما کمک کند انیمیشن های سیستمی پیش بینی کننده را در جهت یابی حرکتی مانند انیمیشن بازگشت به خانه فعال کنید. ثبت کردن onBackInvokedCallback با PRIORITY_SYSTEM_NAVIGATION_OBSERVER جدید به برنامه شما امکان می‌دهد هر زمان که سیستم یک پیمایش برگشتی را انجام می‌دهد، بدون تأثیر بر جریان ناوبری عادی، تماس معمولی onBackInvoked دریافت کند.

اندروید 16 علاوه بر این finishAndRemoveTaskCallback() و moveTaskToBackCallback را اضافه می کند. با ثبت این تماس‌های برگشتی با OnBackInvokedDispatcher ، سیستم می‌تواند رفتارهای خاصی را فعال کند و در هنگام فراخوانی ژست بازگشت، انیمیشن‌های مربوطه را پخش کند.

حس لامسه غنی‌تر

自诞生之日起,Android 就提供了对触感反馈致动器的控制。

Android 11 添加了对更复杂的触感反馈效果的支持,更高级的致动器可以通过设备定义的语义基元 VibrationEffect.Compositions 支持这些效果。

Android 16 添加了触感反馈 API,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。

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

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

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

در اندروید 16، چارچوب تصویر زمینه زنده در حال به دست آوردن یک API محتوای جدید برای مقابله با چالش‌های والپیپرهای پویا و کاربر محور است. در حال حاضر، والپیپرهای زنده که محتوای ارائه شده توسط کاربر را در خود جای داده اند، به پیاده سازی های پیچیده و خاص سرویس نیاز دارند. Android 16 WallpaperDescription و WallpaperInstance را معرفی می کند. WallpaperDescription به شما امکان می دهد نمونه های متمایز یک تصویر زمینه زنده را از همان سرویس شناسایی کنید. برای مثال، کاغذدیواری‌ای که هم در صفحه اصلی و هم در صفحه قفل دارای نمونه‌هایی است ممکن است در هر دو مکان دارای محتوای منحصربه‌فرد باشد. انتخابگر کاغذ دیواری و WallpaperManager از این ابرداده برای ارائه بهتر والپیپرها به کاربران استفاده می کنند و فرآیند ایجاد تصاویر پس زمینه زنده متنوع و شخصی سازی شده را برای شما ساده می کنند.

عملکرد و باتری

اندروید ۱۶ رابط‌های برنامه‌نویسی کاربردی (API) را معرفی می‌کند که به جمع‌آوری اطلاعات در مورد برنامه‌های شما کمک می‌کند.

پروفایل‌سازی مبتنی بر سیستم

ProfilingManager 在 Android 15 中添加,让应用能够在现场使用 Perfetto 请求收集性能数据。不过,由于此性能分析必须从应用启动,因此应用很难或根本无法捕获启动或 ANR 等关键流程。

为此,Android 16 向 ProfilingManager 引入了系统触发的性能分析。应用可以注册接收特定触发器(例如冷启动 reportFullyDrawn 或 ANR)轨迹的兴趣,然后系统会代表应用启动和停止轨迹。轨迹完成后,结果会传送到应用的数据目录。

کامپوننت را در ApplicationStartInfo شروع کنید

ApplicationStartInfo در Android 15 اضافه شد و به برنامه اجازه می‌دهد دلایل شروع فرآیند، نوع شروع، زمان شروع، throttling و سایر داده‌های تشخیصی مفید را ببیند. Android 16 getStartComponent() را برای تشخیص اینکه چه نوع مؤلفه‌ای شروع به کار کرده است اضافه می‌کند، که می‌تواند برای بهینه‌سازی جریان راه‌اندازی برنامه شما مفید باشد.

درون‌نگری بهتر در مورد شغل

API JobScheduler#getPendingJobReason() دلیلی برای معلق بودن یک کار برمی گرداند. با این حال، یک کار ممکن است به دلایل متعدد در انتظار باشد.

در اندروید 16، یک API جدید JobScheduler#getPendingJobReasons(int jobId) معرفی می‌کنیم که دلایل متعددی را برای معلق بودن یک کار، به دلیل محدودیت‌های صریح توسط توسعه‌دهنده و محدودیت‌های ضمنی تعیین‌شده توسط سیستم، برمی‌گرداند.

ما همچنین JobScheduler#getPendingJobReasonsHistory(int jobId) را معرفی می کنیم که لیستی از آخرین تغییرات محدودیت را برمی گرداند.

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

این همچنین می‌تواند به شما کمک کند تا بفهمید که آیا کارهای خاصی به دلیل محدودیت‌های تعریف‌شده سیستم در مقابل محدودیت‌های مشخص شده تکمیل نمی‌شوند یا خیر.

نرخ نوسازی تطبیقی

نرخ تازه سازی تطبیقی ​​(ARR) که در اندروید 15 معرفی شد، نرخ تازه سازی نمایشگر را در سخت افزار پشتیبانی شده قادر می سازد تا با استفاده از مراحل گسسته VSync، با نرخ فریم محتوا سازگار شود. این امر مصرف برق را کاهش می دهد و در عین حال نیاز به تغییر حالت بالقوه تحریک کننده jank را از بین می برد.

اندروید 16 همزمان با بازیابی getSupportedRefreshRates() hasArrSupport() و getSuggestedFrameRate(int) معرفی می‌کند تا برنامه‌های شما بتوانند از مزایای ARR راحت‌تر استفاده کنند. RecyclerView 1.4 به صورت داخلی از ARR پشتیبانی می کند، زمانی که از یک فلش یا اسکرول صاف می نشیند ، و ما به کار خود برای افزودن پشتیبانی ARR به کتابخانه های Jetpack بیشتر ادامه می دهیم. این مقاله نرخ فریم بسیاری از API هایی را پوشش می دهد که می توانید از آنها برای تنظیم نرخ فریم استفاده کنید تا برنامه شما بتواند مستقیماً از ARR استفاده کند.

رابط‌های برنامه‌نویسی کاربردی سقف (Headroom APIs) در ADPF

SystemHealthManager API های getCpuHeadroom و getGpuHeadroom را معرفی می کند که برای ارائه بازی ها و برنامه های پرمصرف منابع با برآورد منابع CPU و GPU در دسترس طراحی شده اند. این روش‌ها راهی را به شما ارائه می‌دهند تا بسنجید چگونه برنامه یا بازی‌تان می‌تواند سلامت سیستم را به بهترین شکل بهبود بخشد، به‌ویژه زمانی که در همراهی با سایر APIهای Android Dynamic Performance Framework (ADPF) استفاده می‌شود که گلوگاه حرارتی را تشخیص می‌دهند .

با استفاده از CpuHeadroomParams و GpuHeadroomParams در دستگاه‌های پشتیبانی‌شده، می‌توانید پنجره زمانی مورد استفاده برای محاسبه فضای سر و انتخاب بین متوسط ​​یا حداقل در دسترس بودن منابع را سفارشی کنید. این می تواند به شما کمک کند مصرف منابع CPU یا GPU خود را متناسب با آن کاهش دهید و منجر به تجربه بهتر کاربر و بهبود عمر باتری شود.

دسترسی‌پذیری

اندروید ۱۶ رابط‌های برنامه‌نویسی کاربردی (API) و ویژگی‌های دسترسی جدیدی را اضافه می‌کند که به شما کمک می‌کند برنامه خود را در دسترس هر کاربری قرار دهید.

بهبود رابط‌های برنامه‌نویسی کاربردی (API) دسترسی‌پذیری

Android 16 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as TalkBack.

Outline text for maximum text contrast

Users with low vision often have reduced contrast sensitivity, making it challenging to distinguish objects from their backgrounds. To help these users, Android 16 introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility.

Android 16 contains new AccessibilityManager APIs to let your apps check or register a listener to see if this mode is enabled. This is primarily for UI Toolkits like Compose to offer a similar visual experience. If you maintain a UI Toolkit library or your app performs custom text rendering that bypasses the android.text.Layout class then you can use this to know when outline text is enabled.

Text with enhanced contrast before and after Android 16's new outline text accessibility feature

Duration added to TtsSpan

Android 16 extends TtsSpan with a TYPE_DURATION, consisting of ARG_HOURS, ARG_MINUTES, and ARG_SECONDS. This lets you directly annotate time duration, ensuring accurate and consistent text-to-speech output with services like TalkBack.

Support elements with multiple labels

Android currently allows UI elements to derive their accessibility label from another, and now offers the ability for multiple labels to be associated, a common scenario in web content. By introducing a list-based API within AccessibilityNodeInfo, Android can directly support these multi-label relationships. As part of this change, we've deprecated AccessibilityNodeInfo#setLabeledBy and #getLabeledBy in favor of #addLabeledBy, #removeLabeledBy, and #getLabeledByList.

Improved support for expandable elements

Android 16 adds accessibility APIs that allow you to convey the expanded or collapsed state of interactive elements, such as menus and expandable lists. By setting the expanded state using setExpandedState and dispatching TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents with a CONTENT_CHANGE_TYPE_EXPANDED content change type, you can ensure that screen readers like TalkBack announce state changes, providing a more intuitive and inclusive user experience.

Indeterminate ProgressBars

Android 16 adds RANGE_TYPE_INDETERMINATE, giving a way for you to expose RangeInfo for both determinate and indeterminate ProgressBar widgets, allowing services like TalkBack to more consistently provide feedback for progress indicators.

Tri-state CheckBox

The new AccessibilityNodeInfo getChecked and setChecked(int) methods in Android 16 now support a "partially checked" state in addition to "checked" and "unchecked." This replaces the deprecated boolean isChecked and setChecked(boolean).

Supplemental descriptions

When an accessibility service describes a ViewGroup, it combines content labels from its child views. If you provide a contentDescription for the ViewGroup, accessibility services assume you are also overriding the description of non-focusable child views. This can be problematic if you want to label things like a drop-down (for example, "Font Family") while preserving the current selection for accessibility (for example, "Roboto"). Android 16 adds setSupplementalDescription so you can provide text that provides information about a ViewGroup without overriding information from its children.

Required form fields

Android 16 adds setFieldRequired to AccessibilityNodeInfo so apps can tell an accessibility service that input to a form field is required. This is an important scenario for users filling out many types of forms, even things as simple as a required terms and conditions checkbox, helping users to consistently identify and quickly navigate between required fields.

تلفن به عنوان ورودی میکروفون برای تماس‌های صوتی با سمعک‌های LEA

اندروید 16 این قابلیت را به کاربران سمعک LE Audio اضافه می کند تا بین میکروفون های داخلی سمعک و میکروفون تلفن خود برای تماس صوتی جابجا شوند. این می‌تواند در محیط‌های پر سر و صدا یا سایر موقعیت‌هایی که میکروفون‌های سمعک عملکرد خوبی ندارند، مفید باشد.

کنترل‌های صدای محیط برای سمعک‌های LEA

اندروید 16 این قابلیت را به کاربران سمعک LE Audio اضافه می کند تا میزان صدای محیطی را که توسط میکروفون های سمعک دریافت می شود تنظیم کنند. این می تواند در شرایطی که نویز پس زمینه خیلی بلند یا خیلی آرام است مفید باشد.

دوربین

اندروید ۱۶ پشتیبانی از کاربران حرفه‌ای دوربین را بهبود می‌بخشد و امکان نوردهی خودکار هیبریدی را به همراه تنظیم دقیق دمای رنگ و رنگ فراهم می‌کند. یک نشانگر جدید حالت شب به برنامه شما کمک می‌کند تا بداند چه زمانی به حالت شب دوربین تغییر وضعیت دهد و چه زمانی از آن خارج شود. اقدامات جدید Intent گرفتن عکس‌های متحرک را آسان‌تر می‌کند و ما همچنان به بهبود تصاویر UltraHDR با پشتیبانی از رمزگذاری HEIC و پارامترهای جدید از پیش‌نویس استاندارد ISO 21496-1 ادامه می‌دهیم.

نوردهی خودکار هیبریدی

اندروید 16 حالت‌های نوردهی خودکار ترکیبی جدیدی را به Camera2 اضافه می‌کند و به شما این امکان را می‌دهد تا جنبه‌های خاصی از نوردهی را به صورت دستی کنترل کنید در حالی که به الگوریتم نوردهی خودکار (AE) اجازه می‌دهید بقیه موارد را کنترل کند. می‌توانید ISO + AE و زمان نوردهی + AE را کنترل کنید، که انعطاف‌پذیری بیشتری را در مقایسه با رویکرد فعلی که در آن کنترل دستی کامل دارید یا کاملاً به نوردهی خودکار متکی هستید، ارائه می‌کنید.

fun setISOPriority() {
    // ... (Your existing code before the snippet) ...

    val availablePriorityModes = mStaticInfo.characteristics.get(
        CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
    )

    // ... (Your existing code between the snippets) ...

    // Turn on AE mode to set priority mode
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_MODE,
        CameraMetadata.CONTROL_AE_MODE_ON
    )
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_PRIORITY_MODE,
        CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
    )
    reqBuilder.set(
        CaptureRequest.SENSOR_SENSITIVITY,
        TEST_SENSITIVITY_VALUE
    )
    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after the snippet) ...
}

تنظیم دقیق دمای رنگ و ته رنگ

اندروید 16 برای پشتیبانی بهتر از برنامه‌های فیلمبرداری حرفه‌ای، پشتیبانی دوربین را برای تنظیم دمای رنگ و رنگ خوب اضافه می‌کند. در نسخه‌های قبلی اندروید، می‌توانید تنظیمات تراز سفیدی را از طریق CONTROL_AWB_MODE کنترل کنید، که شامل گزینه‌هایی محدود به یک لیست از پیش تعیین شده، مانند رشته‌ای ، ابری ، و گرگ و میش است. COLOR_CORRECTION_MODE_CCT استفاده از COLOR_CORRECTION_COLOR_TEMPERATURE و COLOR_CORRECTION_COLOR_TINT را برای تنظیمات دقیق تراز سفیدی بر اساس دمای رنگ مرتبط امکان‌پذیر می‌سازد.

fun setCCT() {
    // ... (Your existing code before this point) ...

    val colorTemperatureRange: Range<Int> =
        mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]

    // Set to manual mode to enable CCT mode
    reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
    reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30

    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after this point) ...
}

مثال‌های زیر نشان می‌دهند که یک عکس پس از اعمال تنظیمات مختلف دمای رنگ و رنگ چگونه به نظر می‌رسد:

تصویر اصلی بدون تنظیم دمای رنگ یا رنگ.
تصویر با دمای رنگ 3000 تنظیم شده است.
تصویر با دمای رنگ 7000 تنظیم شده است.


تصویر با سطوح رنگ 50 کاهش یافته است.
تصویر با سطوح رنگی 50 افزایش یافته است.

تشخیص صحنه در حالت شب دوربین

To help your app know when to switch to and from a night mode camera session, Android 16 adds EXTENSION_NIGHT_MODE_INDICATOR. If supported, it's available in the CaptureResult within Camera2.

This is the API we briefly mentioned as coming soon in the How Instagram enabled users to take stunning low light photos blog post. That post is a practical guide on how to implement night mode together with a case study that links higher-quality in-app night mode photos with an increase in the number of photos shared from the in-app camera.

اقدامات مربوط به قصد ثبت عکس متحرک

Android 16 添加了标准 intent 操作 ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。

您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。

动态照片示例,显示静态图片和动态播放画面。

بهبود تصاویر با فناوری UltraHDR

تصویری از محدوده دینامیکی استاندارد (SDR) در مقابل کیفیت تصویر با محدوده دینامیکی بالا (HDR).

Android 16 به کار ما برای ارائه کیفیت تصویر خیره کننده با تصاویر UltraHDR ادامه می دهد. پشتیبانی از تصاویر UltraHDR در فرمت فایل HEIC را اضافه می کند. این تصاویر نوع ImageFormat HEIC_ULTRAHDR را دریافت خواهند کرد و دارای یک نقشه ی تعبیه شده مشابه فرمت UltraHDR JPEG موجود خواهند بود. ما در حال کار بر روی پشتیبانی AVIF برای UltraHDR نیز هستیم، پس با ما همراه باشید.

علاوه بر این، Android 16 پارامترهای اضافی را در UltraHDR از استاندارد پیش‌نویس ISO 21496-1 پیاده‌سازی می‌کند، از جمله توانایی دریافت و تنظیم فضای رنگی که ریاضیات gainmap باید در آن اعمال شود، و همچنین پشتیبانی از تصاویر پایه کدگذاری‌شده HDR با بهره‌برداری SDR.

گرافیک

اندروید ۱۶ شامل جدیدترین پیشرفت‌های گرافیکی، مانند جلوه‌های گرافیکی سفارشی با AGSL است.

جلوه‌های گرافیکی سفارشی با AGSL

اندروید 16 RuntimeColorFilter و RuntimeXfermode اضافه می‌کند که به شما امکان می‌دهد جلوه‌های پیچیده‌ای مانند Threshold، Sepia و Hue Saturation بنویسید و آنها را برای کشیدن تماس‌ها اعمال کنید. از Android 13، می‌توانید از AGSL برای ایجاد RuntimeShader سفارشی که Shader گسترش می‌دهند، استفاده کنید. API جدید این موضوع را منعکس می‌کند و یک RuntimeColorFilter مجهز به AGSL اضافه می‌کند که ColorFilter را گسترش می‌دهد، و یک افکت Xfermode که به شما امکان می‌دهد ترکیب سفارشی مبتنی بر AGSL و ترکیب بین پیکسل‌های مبدا و مقصد را اجرا کنید.

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

اتصال

اندروید ۱۶ پلتفرم را به‌روزرسانی می‌کند تا به برنامه شما امکان دسترسی به آخرین پیشرفت‌ها در فناوری‌های ارتباطی و بی‌سیم را بدهد.

محدوده‌بندی با امنیت پیشرفته

Android 16 adds support for robust security features in Wi-Fi location on supported devices with Wi-Fi 6's 802.11az, allowing apps to combine the higher accuracy, greater scalability, and dynamic scheduling of the protocol with security enhancements including AES-256-based encryption and protection against MITM attacks. This allows it to be used more safely in proximity use cases, such as unlocking a laptop or a vehicle door. 802.11az is integrated with the Wi-Fi 6 standard, leveraging its infrastructure and capabilities for wider adoption and easier deployment.

APIهای عمومیِ محدوده‌بندی‌شده

اندروید 16 شامل RangingManager جدید است که راه هایی برای تعیین فاصله و زاویه روی سخت افزار پشتیبانی شده بین دستگاه محلی و دستگاه راه دور ارائه می دهد. RangingManager از استفاده از انواع فناوری های محدوده مانند صدای کانال BLE، محدوده مبتنی بر BLE RSSI، Ultra Wideband و زمان رفت و برگشت Wi-Fi پشتیبانی می کند.

حضور دستگاه مدیر دستگاه همراه

Android 16 中引入了用于绑定配套应用服务的新 API。当 BLE 在范围内且蓝牙处于连接状态时,系统会绑定服务;当 BLE 不在范围内或蓝牙处于断开连接状态时,系统会解除绑定服务。应用将根据各种 DevicePresenceEvent 收到新的 'onDevicePresenceEvent()' 回调。如需了解详情,请参阅 'startObservingDevicePresence(ObservingDevicePresenceRequest)'

رسانه

اندروید ۱۶ شامل ویژگی‌های متنوعی است که تجربه رسانه‌ای را بهبود می‌بخشد.

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

انتخابگر عکس راهی ایمن و داخلی را در اختیار کاربران قرار می‌دهد تا به برنامه شما اجازه دسترسی به تصاویر و ویدیوهای انتخابی از فضای ذخیره‌سازی محلی و ابری را به جای کل کتابخانه رسانه‌ای خود بدهد. با استفاده از ترکیبی از اجزای سیستم مدولار از طریق به‌روزرسانی‌های سیستم Google و سرویس‌های Google Play ، به Android 4.4 (سطح API 19) پشتیبانی می‌شود. ادغام فقط به چند خط کد با کتابخانه Android Jetpack مرتبط نیاز دارد.

اندروید 16 شامل بهبودهای زیر در انتخابگر عکس است:

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

ویدیوی حرفه‌ای پیشرفته

Android 16 introduces support for the Advanced Professional Video (APV) codec which is designed to be used for professional level high quality video recording and post production.

The APV codec standard has the following features:

  • Perceptually lossless video quality (close to raw video quality)
  • Low complexity and high throughput intra-frame-only coding (without pixel domain prediction) to better support editing workflows
  • Support for high bit-rate range up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme
  • Frame tiling for immersive content and for enabling parallel encoding and decoding
  • Support for various chroma sampling formats and bit-depths
  • Support for multiple decoding and re-encoding without severe visual quality degradation
  • Support multi-view video and auxiliary video like depth, alpha, and preview
  • Support for HDR10/10+ and user-defined metadata

A reference implementation of APV is provided through the OpenAPV project. Android 16 will implement support for the APV 422-10 Profile that provides YUV 422 color sampling along with 10-bit encoding and for target bitrates of up to 2Gbps.

حریم خصوصی

اندروید ۱۶ شامل ویژگی‌های متنوعی است که به توسعه‌دهندگان برنامه‌ها کمک می‌کند تا از حریم خصوصی کاربران محافظت کنند.

به‌روزرسانی‌های Health Connect

Health Connect ACTIVITY_INTENSITY را اضافه می کند، یک نوع داده که بر اساس دستورالعمل های سازمان بهداشت جهانی در مورد فعالیت متوسط ​​و شدید تعریف شده است. هر رکورد به زمان شروع، زمان پایان و اینکه آیا شدت فعالیت متوسط ​​یا شدید است نیاز دارد.

Health Connect همچنین حاوی API های به روز شده ای است که از سوابق پزشکی پشتیبانی می کنند. این به برنامه‌ها اجازه می‌دهد سوابق پزشکی را در قالب FHIR با رضایت صریح کاربر بخوانند و بنویسند.

سندباکس حریم خصوصی در اندروید

Android 16 دارای آخرین نسخه Privacy Sandbox در Android است که بخشی از کار مداوم ما برای توسعه فناوری‌هایی است که کاربران بدانند حریم خصوصی آنها محافظت می‌شود. وب‌سایت ما اطلاعات بیشتری درباره برنامه بتای برنامه‌نویس Android Privacy Sandbox دارد تا به شما در شروع کار کمک کند. SDK Runtime را بررسی کنید که به SDK ها اجازه می دهد در یک محیط زمان اجرا اختصاصی جدا از برنامه ای که در حال ارائه آن هستند اجرا شوند، و حفاظت های قوی تری در مورد جمع آوری و به اشتراک گذاری داده های کاربر ارائه می دهد.

امنیت

اندروید ۱۶ شامل ویژگی‌هایی است که به شما کمک می‌کند امنیت برنامه خود را افزایش داده و از داده‌های برنامه خود محافظت کنید.

API اشتراک‌گذاری کلید

Android 16 API هایی را اضافه می کند که از دسترسی به اشتراک گذاری کلیدهای Android Keystore با سایر برنامه ها پشتیبانی می کنند. کلاس جدید KeyStoreManager از اعطای و لغو دسترسی به کلیدها توسط اپلیکیشن uid پشتیبانی می‌کند و شامل یک API برای برنامه‌ها برای دسترسی به کلیدهای مشترک است.

فاکتورهای شکل دستگاه

اندروید ۱۶ به برنامه‌های شما این پشتیبانی را می‌دهد تا از فرم‌فکتورهای اندروید نهایت استفاده را ببرند.

چارچوب استاندارد کیفیت تصویر و صدا برای تلویزیون‌ها

Android 16 中的新 MediaQuality 软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:

  • 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
  • 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
  • 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。

借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。

بین‌المللی‌سازی

اندروید ۱۶ ویژگی‌ها و قابلیت‌هایی را اضافه می‌کند که هنگام استفاده از دستگاه به زبان‌های مختلف، تجربه کاربری را تکمیل می‌کنند.

متن عمودی

اندروید 16 پشتیبانی سطح پایینی را برای رندر و اندازه گیری متن به صورت عمودی اضافه می کند تا پشتیبانی از نوشتن عمودی اساسی را برای توسعه دهندگان کتابخانه فراهم کند. این به ویژه برای زبان هایی مانند ژاپنی که معمولاً از سیستم های نوشتاری عمودی استفاده می کنند مفید است. یک پرچم جدید، VERTICAL_TEXT_FLAG ، به کلاس Paint اضافه شده است. وقتی این پرچم با استفاده از Paint.setFlags تنظیم می‌شود، APIهای اندازه‌گیری متن Paint پیشرفت‌های عمودی را به جای پیشرفت‌های افقی گزارش می‌کنند و Canvas متن را به صورت عمودی ترسیم می‌کند.

val text = "「春は、曙。」"
Box(
    Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
        drawIntoCanvas { canvas ->
            val paint = Paint().apply { textSize = 64.sp.toPx() }
            // Draw text vertically
            paint.flags = paint.flags or VERTICAL_TEXT_FLAG
            val height = paint.measureText(text)
            canvas.nativeCanvas.drawText(
                text,
                0,
                text.length,
                size.width / 2,
                (size.height - height) / 2,
                paint
            )
        }
    }
) {}

سفارشی سازی سیستم اندازه گیری

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

استفاده از قالب‌کننده‌ها می‌تواند به تطابق با تجربه محلی کمک کند. به عنوان مثال، "0.5 اینچ" در انگلیسی (ایالات متحده)، "12.7 میلی متر" برای کاربری است که تلفن خود را روی انگلیسی (دانمارک) تنظیم کرده است یا از تلفن خود به زبان انگلیسی (ایالات متحده) با سیستم متریک به عنوان اولویت سیستم اندازه گیری استفاده می کند.

برای پیدا کردن این تنظیمات، برنامه تنظیمات را باز کنید و به سیستم > زبان‌ها و منطقه بروید.