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

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

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

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

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

Android में नए एपीआई शामिल हैं, जो Android सिस्टम की मुख्य सुविधाओं को बेहतर बनाते हैं.

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

  • यह झलक, Android के अगले मेजर वर्शन के लिए है. इसे 2025 की दूसरी तिमाही में लॉन्च किया जाएगा. यह रिलीज़, एपीआई की पिछली सभी रिलीज़ से मिलती-जुलती है. इसमें, व्यवहार में ऐसे बदलाव किए जा सकते हैं जो अक्सर targetSdkVersion से जुड़े होते हैं.
  • हम मेजर रिलीज़ को एक तिमाही पहले रिलीज़ करने जा रहे हैं. पिछले सालों में, यह रिलीज़ तीसरी तिमाही में होती थी, लेकिन अब इसे दूसरी तिमाही में रिलीज़ किया जाएगा. ऐसा इसलिए किया जा रहा है, ताकि हमारे पूरे नेटवर्क में डिवाइस लॉन्च करने के शेड्यूल के साथ बेहतर तरीके से अलाइन किया जा सके. इससे ज़्यादा डिवाइसों पर Android का मेजर वर्शन जल्दी रिलीज़ किया जा सकेगा. साल की दूसरी तिमाही में, Android के नए वर्शन की रिलीज़ होने वाली है. इसलिए, आपको सालाना होने वाली, ऐप्लिकेशन के काम करने की जांच को पिछले सालों की तुलना में कुछ महीने पहले करना होगा. इससे यह पक्का किया जा सकेगा कि आपके ऐप्लिकेशन, नए वर्शन के साथ काम कर रहे हैं.
  • हम साल 2025 की चौथी तिमाही में एक और रिलीज़ करने वाले हैं. इसमें नए डेवलपर एपीआई भी शामिल होंगे. साल 2025 में, दूसरी तिमाही में होने वाली मेजर रिलीज़ में ही, व्यवहार से जुड़े ऐसे बदलाव शामिल होंगे जिनका ऐप्लिकेशन पर असर पड़ सकता है.

चौथी तिमाही की मामूली रिलीज़ में, डेवलपर के लिए नए एपीआई के साथ-साथ, सुविधाओं के अपडेट, ऑप्टिमाइज़ेशन, और गड़बड़ियों को ठीक करने की सुविधाएं भी शामिल होंगी. हालांकि, इसमें ऐप्लिकेशन के काम करने के तरीके में कोई बदलाव नहीं किया जाएगा.

साल 2025 में Android रिलीज़ की टाइमलाइन का व्यू. इसमें बताया गया है कि 25Q2 रिलीज़ एक मेजर रिलीज़ है और 25Q4 रिलीज़ एक मामूली रिलीज़ है.

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

मुख्य और मामूली रिलीज़ के साथ नए एपीआई का इस्तेमाल करना

एपीआई लेवल की जांच करके, कोड ब्लॉक को सुरक्षित रखने के लिए, अब SDK_INT कॉन्स्टेंट के साथ VERSION_CODES का इस्तेमाल किया जाता है. यह सुविधा, Android के मुख्य वर्शन के लिए काम करती रहेगी.

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

नए SDK_INT_FULL कंसटेंट का इस्तेमाल, एपीआई की जांच के लिए किया जा सकता है. यह जांच, नए VERSION_CODES_FULL एन्यूमरेशन की मदद से, मेजर और माइनर, दोनों वर्शन के लिए की जा सकती है.

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

SDK टूल का सिर्फ़ मामूली वर्शन पाने के लिए, Build.getMinorSdkVersion() के तरीके का भी इस्तेमाल किया जा सकता है.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

इन एपीआई को अभी तक फ़ाइनल नहीं किया गया है और इनमें बदलाव हो सकते हैं. इसलिए, अगर आपको कोई समस्या है, तो कृपया हमें सुझाव/राय दें या शिकायत करें.

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

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

प्रोग्रेस से जुड़ी सूचनाएं

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

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

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

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

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

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

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

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

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

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

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

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

लाइव वॉलपेपर के लिए कॉन्टेंट मैनेज करना

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

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

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

सिस्टम से ट्रिगर की गई प्रोफ़ाइलिंग

ProfilingManager को Android 15 में जोड़ा गया था. इससे ऐप्लिकेशन, फ़ील्ड में मौजूद सार्वजनिक डिवाइसों पर Perfetto का इस्तेमाल करके, प्रोफ़ाइलिंग डेटा इकट्ठा करने का अनुरोध कर सकते हैं. हालांकि, यह प्रोफ़ाइलिंग ऐप्लिकेशन से शुरू की जानी चाहिए. इसलिए, ऐप्लिकेशन के लिए स्टार्टअप या ANR जैसे अहम फ़्लो को कैप्चर करना मुश्किल या असंभव होगा.

इसकी मदद करने के लिए, Android 16 में ProfilingManager के लिए, सिस्टम से ट्रिगर की जाने वाली प्रोफ़ाइलिंग की सुविधा जोड़ी गई है. ऐप्लिकेशन, कुछ ट्रिगर के लिए ट्रेस पाने में दिलचस्पी रजिस्टर कर सकते हैं. जैसे, कोल्ड स्टार्ट reportFullyDrawn या ANR. इसके बाद, सिस्टम ऐप्लिकेशन की ओर से ट्रेस शुरू और बंद करता है. ट्रैक पूरा होने के बाद, नतीजे ऐप्लिकेशन की डेटा डायरेक्ट्री में डिलीवर किए जाते हैं.

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

ApplicationStartInfo was added in Android 15, allowing an app to see reasons for process start, start type, start times, throttling, and other useful diagnostic data. Android 16 adds getStartComponent() to distinguish what component type triggered the start, which can be helpful for optimizing the startup flow of your app.

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

The JobScheduler#getPendingJobReason() API returns a reason why a job might be pending. However, a job might be pending for multiple reasons.

In Android 16, we are introducing a new API JobScheduler#getPendingJobReasons(int jobId), which returns multiple reasons why a job is pending, due to both explicit constraints set by the developer and implicit constraints set by the system.

We're also introducing JobScheduler#getPendingJobReasonsHistory(int jobId), which returns a list of the most recent constraint changes.

We recommend using the API to help you debug why your jobs may not be executing, especially if you're seeing reduced success rates of certain tasks or have bugs around latency of certain job completion. For example, updating widgets in the background failed to occur or prefetch job failed to be called prior to app start.

This can also better help you understand if certain jobs are not completing due to system defined constraints versus explicitly set constraints.

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

Adaptive refresh rate (ARR), introduced in Android 15, enables the display refresh rate on supported hardware to adapt to the content frame rate using discrete VSync steps. This reduces power consumption while eliminating the need for potentially jank-inducing mode-switching.

Android 16 introduces hasArrSupport() and getSuggestedFrameRate(int) while restoring getSupportedRefreshRates() to make it easier for your apps to take advantage of ARR. RecyclerView 1.4 internally supports ARR when it is settling from a fling or smooth scroll, and we're continuing our work to add ARR support into more Jetpack libraries. This frame rate article covers many of the APIs you can use to set the frame rate so that your app can directly use ARR.

ADPF में Headroom API

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.

LEA कान की मशीनों के लिए, आस-पास की आवाज़ों की वॉल्यूम कंट्रोल करने की सुविधा

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

कैमरा

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

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

Android 16 में, Camera2 में नए हाइब्रिड ऑटो-एक्सपोज़र मोड जोड़े गए हैं. इनकी मदद से, एक्सपोज़र के कुछ खास पहलुओं को मैन्युअल तरीके से कंट्रोल किया जा सकता है. बाकी काम, ऑटो-एक्सपोज़र (एई) एल्गोरिदम करता है. ISO + AE और एक्सपोज़र टाइम + AE को कंट्रोल किया जा सकता है. इससे, मौजूदा तरीके की तुलना में ज़्यादा सुविधा मिलती है. मौजूदा तरीके में, आपके पास या तो पूरी तरह से मैन्युअल कंट्रोल होता है या पूरी तरह से ऑटो-एक्सपोज़र पर निर्भर रहना पड़ता है.

public void setISOPriority() {
  ...
  int[] availablePriorityModes =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_AE_AVAILABLE_PRIORITY_MODES);
  ...
  // 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);
  reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
      TEST_SENSITIVITY_VALUE);
  CaptureRequest request = reqBuilder.build();
  ...
}

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

Android 16 में कैमरे के लिए, कलर टेंपरेचर और टिनट में बदलाव करने की सुविधा जोड़ी गई है. इससे, प्रोफ़ेशनल वीडियो रिकॉर्डिंग ऐप्लिकेशन को बेहतर तरीके से काम करने में मदद मिलेगी. Android के पिछले वर्शन में, CONTROL_AWB_MODE की मदद से व्हाइट बैलेंस की सेटिंग को कंट्रोल किया जा सकता था. इसमें पहले से तय की गई सूची में मौजूद विकल्प ही उपलब्ध होते थे. जैसे, इंकैंडेसेंट, बादल छाए होने पर, और शाम ढलते समय. COLOR_CORRECTION_MODE_CCT, COLOR_CORRECTION_COLOR_TEMPERATURE और COLOR_CORRECTION_COLOR_TINT का इस्तेमाल करने की सुविधा देता है. इससे, कलर टेंपरेचर के आधार पर, व्हाइट बैलेंस को सटीक तरीके से अडजस्ट किया जा सकता है.

public void setCCT() {
  ...
  Range<Integer> colorTemperatureRange =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE);
  // Set to manual mode to enable CCT mode
  reqBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE,
      CameraMetadata.COLOR_CORRECTION_MODE_CCT);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE, 5000);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TINT, 30);
  CaptureRequest request = reqBuilder.build();
  ...
}

नीचे दिए गए उदाहरणों से पता चलता है कि अलग-अलग रंग के तापमान और रंग में बदलाव करने के बाद, फ़ोटो कैसी दिखेगी:

ओरिजनल इमेज, जिसमें कलर टेंपरेचर या टिनट में कोई बदलाव नहीं किया गया है.
3000 पर सेट किए गए कलर टेंपरेचर वाली इमेज.
कलर टेंपरेचर को 7000 पर सेट करके ली गई इमेज.


इमेज में टिनट लेवल को 50% कम किया गया है.
इमेज में टिनट लेवल को 50 तक बढ़ाया गया है.

कैमरे के नाइट मोड में सीन की पहचान करने की सुविधा

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

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

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

Android 16 adds standard Intent actions — ACTION_MOTION_PHOTO_CAPTURE, and ACTION_MOTION_PHOTO_CAPTURE_SECURE — which request that the camera application capture a motion photo and return it.

You must either pass an extra EXTRA_OUTPUT to control where the image will be written, or a Uri through Intent.setClipData(ClipData). If you don't set a ClipData, it will be copied there for you when calling Context.startActivity(Intent).

An example of a motion photo, showing the still image followed by the motion playback.

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

इस इमेज में, स्टैंडर्ड डाइनैमिक रेंज (एसडीआर) और हाई डाइनैमिक रेंज (एचडीआर) वाली इमेज की क्वालिटी की तुलना की गई है.

Android 16 में, हमने अल्ट्रा एचडीआर इमेज की मदद से बेहतरीन क्वालिटी वाली इमेज उपलब्ध कराने की सुविधा को जारी रखा है. इससे, HEIC फ़ाइल फ़ॉर्मैट में UltraHDR इमेज के लिए सहायता मिलती है. इन इमेज को ImageFormat टाइप HEIC_ULTRAHDR मिलेगा. साथ ही, इनमें मौजूदा UltraHDR JPEG फ़ॉर्मैट जैसा एम्बेड किया गया गेनमैप होगा. हम UltraHDR के लिए भी AVIF फ़ॉर्मैट की सुविधा उपलब्ध कराने पर काम कर रहे हैं. इसलिए, हमारे साथ बने रहें.

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

ग्राफ़िक्स

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

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

Android 16 adds RuntimeColorFilter and RuntimeXfermode, allowing you to author complex effects like Threshold, Sepia, and Hue Saturation and apply them to draw calls. Since Android 13, you've been able to use AGSL to create custom RuntimeShaders that extend Shader. The new API mirrors this, adding an AGSL-powered RuntimeColorFilter that extends ColorFilter, and a Xfermode effect that lets you implement AGSL-based custom compositing and blending between source and destination pixels.

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 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.

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

Android 16 includes the new RangingManager, which provides ways to determine the distance and angle on supported hardware between the local device and a remote device. RangingManager supports the usage of a variety of ranging technologies such as BLE channel sounding, BLE RSSI-based ranging, Ultra Wideband, and Wi-Fi round trip time.

कंपैनियन डिवाइस मैनेजर के डिवाइस की मौजूदगी

In Android 16, new APIs are being introduced for binding your companion app service. Service will be bound when BLE is in range and Bluetooth is connected and service will be unbound when BLE is out of range or Bluetooth is disconnected. App will receives a new 'onDevicePresenceEvent()' callback based on various of DevicePresenceEvent. More details can be found in 'startObservingDevicePresence(ObservingDevicePresenceRequest)'.

मीडिया

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

फ़ोटो पिकर में किए गए सुधार

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

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

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

बेहतर प्रोफ़ेशनल वीडियो

Android 16 में ऐडवांस प्रोफ़ेशनल वीडियो (एपीवी) कोडेक के लिए सहायता उपलब्ध है. इसे प्रोफ़ेशनल लेवल की अच्छी क्वालिटी वाली वीडियो रिकॉर्डिंग और पोस्ट प्रोडक्शन के लिए डिज़ाइन किया गया है.

APV कोडेक स्टैंडर्ड में ये सुविधाएं शामिल हैं:

  • वीडियो की क्वालिटी में कोई बदलाव नहीं होता (रॉ वीडियो की क्वालिटी के करीब)
  • एडिट करने के वर्कफ़्लो को बेहतर बनाने के लिए, कम कॉम्प्लेक्सिटी और ज़्यादा थ्रूपुट वाला सिर्फ़ इंट्रा-फ़्रेम कोडिंग (बिना पिक्सल डोमेन का अनुमान लगाए)
  • 2K, 4K, और 8K रिज़ॉल्यूशन वाले कॉन्टेंट के लिए, कुछ जीबीपीएस तक की हाई बिटरेट रेंज के साथ काम करता है. यह सुविधा, लाइटवाइट एन्ट्रापी कोडिंग स्कीम की मदद से चालू होती है
  • बेहतर अनुभव देने वाले कॉन्टेंट के लिए फ़्रेम टाइल करना. साथ ही, पैरलल एन्कोडिंग और डिकोडिंग की सुविधा चालू करना
  • अलग-अलग क्रोम सैंपलिंग फ़ॉर्मैट और बिट-डेप्थ के साथ काम करना
  • विज़ुअल क्वालिटी में ज़्यादा गिरावट के बिना, कई बार डिकोड करने और फिर से एन्कोड करने की सुविधा
  • मल्टीव्यू वीडियो और सहायक वीडियो के साथ काम करना, जैसे कि डेप्थ, ऐल्फ़ा, और झलक
  • HDR10/10+ और उपयोगकर्ता के तय किए गए मेटाडेटा के लिए काम करना

OpenAPV प्रोजेक्ट के ज़रिए, एपीवी को लागू करने का रेफ़रंस दिया जाता है. Android 16 में, APV 422-10 प्रोफ़ाइल के लिए सहायता लागू की जाएगी. यह प्रोफ़ाइल, 10-बिट एन्कोडिंग के साथ-साथ YUV 422 कलर सैंपलिंग की सुविधा देती है. साथ ही, 2 जीबीपीएस तक की टारगेट बिटरेट के लिए भी काम करती है.

निजता

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 adds APIs that support sharing access to Android Keystore keys with other apps. The new KeyStoreManager class supports granting and revoking access to keys by app uid, and includes an API for apps to access shared keys.

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

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

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

The new MediaQuality package in Android 16 exposes a set of standardized APIs for access to audio and picture profiles and hardware-related settings. This allows streaming apps to query profiles and apply them to media dynamically:

  • Movies mastered with a wider dynamic range require greater color accuracy to see subtle details in shadows and adjust to ambient light, so a profile that prefers color accuracy over brightness may be appropriate.
  • Live sporting events are often mastered with a narrow dynamic range, but are often watched in daylight, so a profile that preferences brightness over color accuracy can give better results.
  • Fully interactive content wants minimal processing to reduce latency, and wants higher frame rates, which is why many TV's ship with a game profile.

The API allows apps to switch between profiles and users to enjoy tuning supported TVs to best suit their content.

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

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

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

Android 16 में, टेक्स्ट को वर्टिकल तौर पर रेंडर करने और मेज़र करने के लिए, लो-लेवल की सुविधा जोड़ी गई है. इससे लाइब्रेरी डेवलपर को वर्टिकल तौर पर लिखने की बुनियादी सुविधा मिलती है. यह सुविधा, खास तौर पर जैपनीज़ जैसी भाषाओं के लिए काम की है, जिनमें आम तौर पर वर्टिकल लिखने के सिस्टम का इस्तेमाल किया जाता है. Paint क्लास में एक नया फ़्लैग, VERTICAL_TEXT_FLAG, जोड़ा गया है. Paint.setFlags का इस्तेमाल करके इस फ़्लैग को सेट करने पर, 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
            )
        }
    }
) {}

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

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.