सुविधाएं और एपीआई

Android 16 में डेवलपर के लिए, कई नई सुविधाएं और एपीआई उपलब्ध कराए गए हैं. यहां दिए गए सेक्शन में, इन सुविधाओं के बारे में खास जानकारी दी गई है. इससे आपको इनसे जुड़े एपीआई का इस्तेमाल शुरू करने में मदद मिलेगी.

नए, बदले गए, और हटाए गए एपीआई की पूरी सूची देखने के लिए, एपीआई में अंतर दिखाने वाली रिपोर्ट पढ़ें. नए एपीआई के बारे में ज़्यादा जानने के लिए, Android API रेफ़रंस पर जाएं. नए एपीआई को हाइलाइट किया गया है, ताकि वे आसानी से दिख सकें.

आपको उन क्षेत्रों की भी समीक्षा करनी चाहिए जहां प्लैटफ़ॉर्म में हुए बदलावों से आपके ऐप्लिकेशन पर असर पड़ सकता है. ज़्यादा जानकारी के लिए, ये पेज देखें:

मुख्य फ़ंक्शन

Android में नए एपीआई शामिल किए गए हैं. इनसे Android सिस्टम की मुख्य क्षमताओं को बढ़ाया जा सकता है.

साल 2025 में Android के दो एपीआई रिलीज़

  • 此预览版适用于 Android 的下一个主要版本,计划于 2025 年第 2 季度发布。此版本与我们过去的所有 API 版本类似,我们可以进行计划性的行为更改,这些更改通常与 targetSdkVersion 相关联。
  • 我们计划提前一个季度(2021 年第 2 季度,而非之前的第 3 季度)发布主要版本,以便更好地与整个生态系统中的设备发布时间表保持一致,让更多设备能够更早地搭载 Android 主要版本。由于主要版本将于第 2 季度发布,因此您需要比往年提前几个月进行年度兼容性测试,以确保您的应用已做好准备。
  • 我们计划在 2025 年第 4 季度再发布一次,届时还将推出新的开发者 API。2025 年只有第二季度的主要版本包含可能影响应用的计划行为变更。

除了新的开发者 API 之外,第 4 季度次要版本还将包含功能更新、优化和 bug 修复;其中不会包含任何会影响应用的行为变更。

2025 年 Android 版本的时间轴视图,请注意,25Q2 版本是一个主要版本,25Q4 版本是一个次要版本。

我们将继续每季度发布 Android 版本。在 API 版本之间,第 1 季度和第 3 季度的更新将提供增量更新,以帮助确保持续提供高质量的服务。我们正积极与设备合作伙伴合作,将 Q2 版本推广到尽可能多的设备。

在主要版本和次要版本中使用新 API

目前,使用 SDK_INT 常量与 VERSION_CODES 结合使用,即可通过检查 API 级别来保护代码块。我们将继续支持主要 Android 版本。

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 尚未最终确定,可能会发生变化,因此如果您有任何疑虑,请向我们发送反馈。

उपयोगकर्ता अनुभव और सिस्टम यूज़र इंटरफ़ेस (यूआई)

Android 16, ऐप्लिकेशन डेवलपर और उपयोगकर्ताओं को अपनी ज़रूरतों के हिसाब से डिवाइस को कॉन्फ़िगर करने के लिए, ज़्यादा कंट्रोल और सुविधा देता है.

प्रोग्रेस के बारे में बताने वाली सूचनाएं

Android 16 में, प्रोग्रेस पर आधारित सूचनाएं देने की सुविधा जोड़ी गई है. इससे उपयोगकर्ताओं को, शुरू से लेकर आखिर तक की प्रोसेस को आसानी से ट्रैक करने में मदद मिलती है.

Notification.ProgressStyle, सूचनाओं का एक नया स्टाइल है. इसकी मदद से, प्रोग्रेस के बारे में सूचनाएं बनाई जा सकती हैं. इस्तेमाल के मुख्य उदाहरणों में, राइडशेयर, डिलीवरी, और नेविगेशन शामिल हैं. Notification.ProgressStyle क्लास में, पॉइंट और सेगमेंट का इस्तेमाल करके, उपयोगकर्ता के सफ़र में स्टेटस और माइलस्टोन दिखाए जा सकते हैं.

To learn more, see the Progress-centric notifications documentation page.

लॉकस्क्रीन पर दिखने वाली, प्रोग्रेस से जुड़ी सूचना.
सूचना शेड में दिखाई गई, प्रोग्रेस से जुड़ी सूचना.

पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर से जुड़े अपडेट

Android 16 में नए एपीआई जोड़े गए हैं. इनकी मदद से, जेस्चर नेविगेशन में प्रिडिक्टिव बैक सिस्टम ऐनिमेशन चालू किए जा सकते हैं. जैसे, होम पेज पर वापस जाने के लिए ऐनिमेशन. onBackInvokedCallback को नए PRIORITY_SYSTEM_NAVIGATION_OBSERVER के साथ रजिस्टर करने पर, आपके ऐप्लिकेशन को सामान्य onBackInvoked कॉल तब मिलता है, जब सिस्टम बैक नेविगेशन को मैनेज करता है. इससे, बैक नेविगेशन के सामान्य फ़्लो पर कोई असर नहीं पड़ता.

Android 16 में, finishAndRemoveTaskCallback() और moveTaskToBackCallback भी जोड़े गए हैं. OnBackInvokedDispatcher के साथ इन कॉलबैक को रजिस्टर करके, सिस्टम कुछ खास व्यवहार को ट्रिगर कर सकता है. साथ ही, बैक जेस्चर का इस्तेमाल करने पर, उससे जुड़े ऐनिमेशन को पहले से चला सकता है.

बेहतर हैप्टिक

Android ने शुरुआत से ही, हैप्टिक ऐक्चुएटर को कंट्रोल करने की सुविधा दी है.

Android 11 में, ज़्यादा जटिल हैप्टिक इफ़ेक्ट के लिए सहायता जोड़ी गई है. ये इफ़ेक्ट, डिवाइस के लिए तय किए गए सेमैंटिक प्राइमिटिव के VibrationEffect.Compositions की मदद से, ज़्यादा बेहतर ऐक्चुएटर के साथ काम कर सकते हैं.

Android 16 में हैप्टिक एपीआई जोड़े गए हैं. इनकी मदद से, ऐप्लिकेशन किसी हैप्टिक इफ़ेक्ट के ऐम्प्ल्यट्यूड और फ़्रीक्वेंसी कर्व तय कर सकते हैं. साथ ही, डिवाइस की क्षमताओं के बीच के अंतर को भी हटा सकते हैं.

डेवलपर की प्रोडक्टिविटी और टूल

आपकी प्रॉडक्टिविटी को बेहतर बनाने के लिए, हम ज़्यादातर Android Studio, Jetpack Compose, और Android Jetpack लाइब्रेरी जैसे टूल पर काम करते हैं. हालांकि, हम हमेशा ऐसे तरीके ढूंढते रहते हैं जिनसे आपको अपने विज़न को पूरा करने में मदद मिल सके.

लाइव वॉलपेपर के लिए कॉन्टेंट हैंडलिंग

在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescription 和 WallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。

परफ़ॉर्मेंस और बैटरी

Android 16 में ऐसे एपीआई पेश किए गए हैं जो आपके ऐप्लिकेशन के बारे में अहम जानकारी इकट्ठा करने में मदद करते हैं.

सिस्टम से ट्रिगर होने वाली प्रोफ़ाइलिंग

ProfilingManager was added in Android 15, giving apps the ability to request profiling data collection using Perfetto on public devices in the field. However, since this profiling must be started from the app, critical flows such as startups or ANRs would be difficult or impossible for apps to capture.

To help with this, Android 16 introduces system-triggered profiling to ProfilingManager. Apps can register interest in receiving traces for certain triggers such as cold start reportFullyDrawn or ANRs, and then the system starts and stops a trace on the app's behalf. After the trace completes, the results are delivered to the app's data directory.

ApplicationStartInfo में कॉम्पोनेंट शुरू करें

ApplicationStartInfo को Android 15 में जोड़ा गया था. इससे ऐप्लिकेशन को प्रोसेस शुरू होने की वजहें, शुरू होने का टाइप, शुरू होने का समय, थ्रॉटलिंग, और गड़बड़ी की जानकारी देने वाला अन्य काम का डेटा देखने की सुविधा मिलती है. Android 16 में getStartComponent() को जोड़ा गया है, ताकि यह पता लगाया जा सके कि ऐप्लिकेशन को किस तरह के कॉम्पोनेंट ने ट्रिगर किया. इससे, ऐप्लिकेशन के स्टार्टअप फ़्लो को ऑप्टिमाइज़ करने में मदद मिल सकती है.

नौकरी के बारे में बेहतर जानकारी

JobScheduler#getPendingJobReason() API 会返回作业可能处于待处理状态的原因。不过,作业处于待处理状态的原因可能有多种。

在 Android 16 中,我们引入了一个新 API JobScheduler#getPendingJobReasons(int jobId),该 API 会返回作业处于待处理状态的多种原因,包括开发者设置的显式约束条件和系统设置的隐式约束条件。

我们还引入了 JobScheduler#getPendingJobReasonsHistory(int jobId),用于返回最新约束条件更改的列表。

我们建议您使用该 API 来调试作业可能无法执行的原因,尤其是在您发现某些任务的成功率降低或某些作业完成延迟存在 bug 时。例如,未能在后台更新微件,或在应用启动之前未能调用预加载作业。

这还有助于您更好地了解某些作业是否因系统定义的约束条件而无法完成,而不是因明确设置的约束条件而无法完成。

अडैप्टिव रीफ़्रेश रेट

Android 15 में, अडैप्टिव रिफ़्रेश रेट (एआरआर) की सुविधा जोड़ी गई है. इसकी मदद से, डिसप्ले रिफ़्रेश रेट को डिवाइस के हिसाब से अडजस्ट किया जा सकता है. इसके लिए, अलग-अलग VSync चरण का इस्तेमाल करके, कॉन्टेंट के फ़्रेम रेट के हिसाब से डिसप्ले रिफ़्रेश रेट को अडजस्ट किया जाता है. इससे बिजली की खपत कम होती है. साथ ही, मोड स्विच करने की ज़रूरत भी नहीं पड़ती.

Android 16 में hasArrSupport() और getSuggestedFrameRate(int) को शामिल किया गया है. साथ ही, getSupportedRefreshRates() को वापस लाया गया है, ताकि आपके ऐप्लिकेशन आसानी से ARR का फ़ायदा ले सकें. RecyclerView 1.4, फ़्लिंग या स्मूद स्क्रोल से सेटल होने पर, अंदरूनी तौर पर ARR के साथ काम करता है. हम ज़्यादा Jetpack लाइब्रेरी में ARR की सुविधा जोड़ने के लिए काम कर रहे हैं. फ़्रेम रेट के बारे में इस लेख में, ऐसे कई एपीआई के बारे में बताया गया है जिनका इस्तेमाल करके फ़्रेम रेट सेट किया जा सकता है. इससे आपका ऐप्लिकेशन सीधे तौर पर ARR का इस्तेमाल कर सकता है.

एडीपीएफ़ में हेडरूम एपीआई

The SystemHealthManager introduces the getCpuHeadroom and getGpuHeadroom APIs, designed to provide games and resource-intensive apps with estimates of available CPU and GPU resources. These methods offer a way for you to gauge how your app or game can best improve system health, particularly when used in conjunction with other Android Dynamic Performance Framework (ADPF) APIs that detect thermal throttling.

By using CpuHeadroomParams and GpuHeadroomParams on supported devices, you can customize the time window used to compute the headroom and select between average or minimum resource availability. This can help you reduce your CPU or GPU resource usage accordingly, leading to better user experiences and improved battery life.

सुलभता

Android 16 में, ऐक्सेसिबिलिटी से जुड़े नए एपीआई और सुविधाएं जोड़ी गई हैं. इनकी मदद से, अपने ऐप्लिकेशन को हर उपयोगकर्ता तक पहुंचाया जा सकता है.

बेहतर सुलभता वाले एपीआई

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 वाली कान की मशीनों से वॉइस कॉल करने के लिए, फ़ोन को माइक्रोफ़ोन इनपुट के तौर पर इस्तेमाल करना

Android 16 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.

एलईए हियरिंग एड के लिए, आस-पास की आवाज़ों को कंट्रोल करने की सुविधा

Android 16 में, LE Audio की सुविधा वाली कान की मशीन के उपयोगकर्ताओं के लिए, आस-पास की आवाज़ की आवाज़ कम या ज़्यादा करने की सुविधा जोड़ी गई है. यह आवाज़, कान की मशीन के माइक्रोफ़ोन से रिकॉर्ड की जाती है. यह सुविधा, उन स्थितियों में मददगार हो सकती है जहां बैकग्राउंड का शोर बहुत ज़्यादा या बहुत कम हो.

कैमरा

Android 16 में, पेशेवर कैमरा उपयोगकर्ताओं के लिए बेहतर सपोर्ट उपलब्ध कराया गया है. इससे, सटीक कलर टेंपरेचर और टिंट अडजस्टमेंट के साथ-साथ, हाइब्रिड ऑटो एक्सपोज़र की सुविधा मिलती है. नाइट मोड इंडिकेटर की मदद से, आपका ऐप्लिकेशन यह जान पाता है कि नाइट मोड वाले कैमरा सेशन को कब चालू और बंद करना है. Intent नई कार्रवाइयों की मदद से, मोशन फ़ोटो कैप्चर करना आसान हो जाता है. साथ ही, हम HEIC एन्कोडिंग और आईएसओ 21496-1 के ड्राफ़्ट स्टैंडर्ड के नए पैरामीटर की मदद से, अल्ट्रा एचडीआर इमेज को बेहतर बनाते रहेंगे.

हाइब्रिड ऑटो-एक्सपोज़र

Android 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) ...
}

कलर टेंपरेचर और टिंट में सटीक बदलाव करने की सुविधा

Android 16 增加了对相机的精细色温和色调调整的支持,以更好地支持专业视频录制应用。在较低版本的 Android 中,您可以通过 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 的图片。

कैमरे के नाइट मोड में सीन का पता लगाने की सुविधा

为了帮助应用了解何时切换到夜间模式相机会话以及何时从夜间模式相机会话切换出,Android 16 添加了 EXTENSION_NIGHT_MODE_INDICATOR。如果受支持,则可在 Camera2 内的 CaptureResult 中使用。

这是我们在Instagram 如何让用户拍出令人惊艳的低光照片博文中提到的即将推出的 API。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。

मोशन फ़ोटो कैप्चर करने के इंटेंट ऐक्शन

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

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

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

अल्ट्रा एचडीआर इमेज को बेहतर बनाने की सुविधा

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量对比示意图。

Android 16 继续致力于通过 UltraHDR 图片提供出色的图片质量。它添加了对 HEIC 文件格式的 UltraHDR 图片的支持。这些图片将获得 ImageFormat 类型 HEIC_ULTRAHDR,并包含类似于现有 UltraHDR JPEG 格式的嵌入式增益图。我们还在努力为 UltraHDR 添加 AVIF 支持,敬请期待。

此外,Android 16 在 UltraHDR 中实现了 ISO 21496-1 草稿标准中的其他参数,包括能够获取和设置应应用增益图算法的色彩空间,以及支持使用 SDR 增益图的 HDR 编码基础图片。

ग्राफ़िक

Android 16 में, ग्राफ़िक्स से जुड़े नए सुधार शामिल हैं. जैसे, एजीएसएल की मदद से पसंद के मुताबिक ग्राफ़िक इफ़ेक्ट.

AGSL की मदद से, पसंद के मुताबिक ग्राफ़िकल इफ़ेक्ट बनाना

Android 16 में RuntimeColorFilter और RuntimeXfermode जोड़े गए हैं. इनकी मदद से, थ्रेशोल्ड, सेपिया, और ह्यू सेचुरेशन जैसे जटिल इफ़ेक्ट बनाए जा सकते हैं. साथ ही, इन्हें ड्रॉ कॉल पर लागू किया जा सकता है. Android 13 के बाद से, AGSL का इस्तेमाल करके, Shader को बढ़ाने वाले कस्टम RuntimeShaders बनाए जा सकते हैं. नया एपीआई, AGSL की मदद से काम करने वाला RuntimeColorFilter जोड़ता है, जो 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, प्लैटफ़ॉर्म को अपडेट करता है, ताकि आपके ऐप्लिकेशन को कम्यूनिकेशन और वायरलेस टेक्नोलॉजी के क्षेत्र में हुई नई तरक्की का ऐक्सेस मिल सके.

बेहतर सुरक्षा के साथ रेंजिंग

Android 16 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。

सामान्य रेंजिंग एपीआई

Android 16 में नया RangingManager शामिल है. इससे, लोकल डिवाइस और रिमोट डिवाइस के बीच की दूरी और कोण का पता लगाने के लिए, काम करने वाले हार्डवेयर पर तरीके मिलते हैं. RangingManager, रेंजिंग की कई टेक्नोलॉजी का इस्तेमाल करता है. जैसे, बीएलई चैनल साउंडिंग, बीएलई आरएसएसआई पर आधारित रेंजिंग, अल्ट्रा वाइडबैंड, और वाई-फ़ाई राउंड ट्रिप टाइम.

कंपैनियन डिवाइस मैनेजर डिवाइस प्रेज़ेंस

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

मीडिया

Android 16 में कई ऐसी सुविधाएं शामिल हैं जिनसे मीडिया का अनुभव बेहतर होता है.

फ़ोटो पिकर को बेहतर बनाया गया

फ़ोटो पिकर की सुविधा, उपयोगकर्ताओं के लिए ऐप्लिकेशन में पहले से मौजूद है. इसकी मदद से, उपयोगकर्ता अपने डिवाइस की पूरी मीडिया लाइब्रेरी के बजाय, ऐप्लिकेशन को सिर्फ़ अपनी चुनी हुई फ़ोटो और वीडियो का ऐक्सेस दे सकते हैं. यह सुविधा सुरक्षित है. Google के सिस्टम अपडेट और Google Play services की मदद से, मॉड्यूलर सिस्टम कॉम्पोनेंट का इस्तेमाल करके, यह सुविधा Android 4.4 (एपीआई लेवल 19) तक के वर्शन पर काम करती है. इंटिग्रेशन के लिए, Android Jetpack लाइब्रेरी के साथ सिर्फ़ कुछ लाइनों का कोड ज़रूरी है.

Android 16 में, फ़ोटो पिकर में ये सुधार किए गए हैं:

  • एम्बेड किया गया फ़ोटो पिकर: नए एपीआई, जिनकी मदद से ऐप्लिकेशन, फ़ोटो पिकर को अपने व्यू की हैरारकी में एम्बेड कर सकते हैं. इससे, यह ऐप्लिकेशन के एक बेहतर हिस्से की तरह महसूस होता है. साथ ही, प्रोसेस को अलग रखने की सुविधा का फ़ायदा भी मिलता है. इस सुविधा की मदद से, उपयोगकर्ता ऐप्लिकेशन को ज़्यादा अनुमतियां दिए बिना ही मीडिया चुन सकते हैं. अगर आपको एम्बेड किए गए फ़ोटो पिकर को इंटिग्रेट करना है, तो आपको Android के आने वाले समय में लॉन्च होने वाली Jetpack लाइब्रेरी का इस्तेमाल करना होगा. इससे, सभी प्लैटफ़ॉर्म के वर्शन के साथ काम करने की सुविधा बढ़ेगी और इंटिग्रेशन आसान हो जाएगा.
  • फ़ोटो पिकर में क्लाउड सर्च: Android फ़ोटो पिकर के लिए, क्लाउड मीडिया प्रोवाइडर से खोजने की सुविधा देने वाले नए एपीआई. फ़ोटो चुनने वाले टूल में खोजने की सुविधा जल्द ही उपलब्ध होगी.

ऐडवांस प्रोफ़ेशनल वीडियो

Android 16 引入了对高级专业视频 (APV) 编解码器的支持,该编解码器专为专业级高品质视频录制和后期制作而设计。

APV 编解码器标准具有以下特点:

  • 感知上无损的视频画质(接近原始视频画质)
  • 复杂度低且吞吐量高的仅帧内编码(无像素域预测),以更好地支持编辑工作流
  • 支持高比特率范围(最高几十 Gbps),适用于 2K、4K 和 8K 分辨率内容,由轻量级熵编码方案实现
  • 帧平铺,用于沉浸式内容和启用并行编码和解码
  • 支持各种色度采样格式和位深
  • 支持多次解码和重新编码,且不会严重降低视觉质量
  • 支持多视图视频和辅助视频,例如深度、Alpha 和预览
  • 支持 HDR10/10+ 和用户定义的元数据

OpenAPV 项目提供了 APV 的参考实现。Android 16 将实现对 APV 422-10 配置文件的支持,该配置文件提供 YUV 422 色彩采样以及 10 位编码,并且目标比特率最高可达 2 Gbps。

निजता

Android 16 में कई ऐसी सुविधाएं शामिल हैं जिनसे ऐप्लिकेशन डेवलपर को उपयोगकर्ता की निजता को सुरक्षित रखने में मदद मिलती है.

Health Connect से जुड़े अपडेट

Health Connect में ACTIVITY_INTENSITY जोड़ा गया है. यह डेटा टाइप, विश्व स्वास्थ्य संगठन के दिशा-निर्देशों के मुताबिक, सामान्य और ज़्यादा गतिविधि के आधार पर तय किया जाता है. हर रिकॉर्ड के लिए, शुरू होने का समय, खत्म होने का समय, और गतिविधि की तीव्रता सामान्य है या ज़्यादा मेहनत वाली है, यह जानकारी देना ज़रूरी है.

Health Connect में, मेडिकल रिकॉर्ड के साथ काम करने वाले अपडेट किए गए एपीआई भी शामिल हैं. इससे ऐप्लिकेशन, उपयोगकर्ता की सहमति के साथ, एफ़एचआईआर फ़ॉर्मैट में मौजूद मेडिकल रिकॉर्ड पढ़ और लिख सकते हैं.

Android पर Privacy Sandbox

Android 16 में, Android पर Privacy Sandbox का नया वर्शन शामिल है. यह टेक्नोलॉजी बनाने के लिए, हम लगातार काम कर रहे हैं. इससे उपयोगकर्ताओं को यह भरोसा रहेगा कि उनकी निजता सुरक्षित है. Android डेवलपर बीटा प्रोग्राम में Privacy Sandbox के बारे में ज़्यादा जानने के लिए, हमारी वेबसाइट पर जाएं. इससे आपको इस प्रोग्राम को शुरू करने में मदद मिलेगी. SDK टूल के रनटाइम के बारे में जानें. इससे SDK टूल, उस ऐप्लिकेशन से अलग एक खास रनटाइम एनवायरमेंट में काम कर पाते हैं जिसमें उन्हें इस्तेमाल किया जा रहा है. साथ ही, उपयोगकर्ता के डेटा को इकट्ठा करने और शेयर करने के लिए ज़्यादा सुरक्षित तरीके उपलब्ध कराए जाते हैं.

सुरक्षा

Android 16 में ऐसी सुविधाएं शामिल हैं जिनसे आपको अपने ऐप्लिकेशन की सुरक्षा को बेहतर बनाने और ऐप्लिकेशन के डेटा को सुरक्षित रखने में मदद मिलती है.

डिजिटल कुंजी शेयर करने की सुविधा एपीआई

Android 16 में ऐसे एपीआई जोड़े गए हैं जिनकी मदद से, Android Keystore की कुंजियों का ऐक्सेस दूसरे ऐप्लिकेशन के साथ शेयर किया जा सकता है. नई KeyStoreManager क्लास, ऐप्लिकेशन uid के हिसाब से, पासकोड का ऐक्सेस देने और वापस लेने की सुविधा देती है. साथ ही, इसमें ऐप्लिकेशन के लिए, शेयर की गई पासकोड को ऐक्सेस करने वाला एपीआई भी शामिल है.

डिवाइस के नाप या आकार

Android 16, आपके ऐप्लिकेशन को Android के फ़ॉर्म फ़ैक्टर का ज़्यादा से ज़्यादा फ़ायदा पाने में मदद करता है.

टीवी के लिए, वीडियो और ऑडियो की क्वालिटी का स्टैंडर्ड फ़्रेमवर्क

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

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

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

इंटरनैशनलाइजेशन

Android 16 में ऐसी सुविधाएं जोड़ी गई हैं जो अलग-अलग भाषाओं में डिवाइस इस्तेमाल करने पर, उपयोगकर्ता अनुभव को बेहतर बनाती हैं.

वर्टिकल टेक्स्ट

Android 16 添加了对垂直渲染和测量文本的低级支持,以便为库开发者提供基本的垂直书写支持。这对于日语等通常使用竖向书写系统的语言特别有用。Paint 类中添加了一个新标志 VERTICAL_TEXT_FLAG。使用 Paint.setFlags 设置此标志后,Paint 的文本测量 API 将报告垂直进度,而不是水平进度,并且 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
            )
        }
    }
) {}

मेज़रमेंट सिस्टम को पसंद के मुताबिक बनाना

Users can now customize their measurement system in regional preferences within Settings. The user preference is included as part of the locale code, so you can register a BroadcastReceiver on ACTION_LOCALE_CHANGED to handle locale configuration changes when regional preferences change.

Using formatters can help match the local experience. For example, "0.5 in" in English (United States), is "12,7 mm" for a user who has set their phone to English (Denmark) or who uses their phone in English (United States) with the metric system as the measurement system preference.

To find these settings, open the Settings app and navigate to System > Languages & region.