الميزات وواجهات برمجة التطبيقات

يقدّم Android 16 ميزات وواجهات برمجة تطبيقات جديدة رائعة للمطوّرين. وتلخّص الأقسام التالية هذه الميزات لمساعدتك في بدء استخدام واجهات برمجة التطبيقات ذات الصلة.

للحصول على قائمة تفصيلية بواجهات برمجة التطبيقات الجديدة والمعدَّلة والمُزالة، يُرجى الاطّلاع على تقرير مقارنة واجهات برمجة التطبيقات. للحصول على تفاصيل حول واجهات برمجة التطبيقات الجديدة، يُرجى الانتقال إلى مرجع واجهة برمجة تطبيقات Android، حيث يتم تمييز واجهات برمجة التطبيقات الجديدة لتسهيل رؤيتها.

يجب أيضًا مراجعة الجوانب التي قد تؤثر فيها تغييرات المنصة على تطبيقاتك. لمزيد من المعلومات، يُرجى الاطّلاع على الصفحات التالية:

الوظيفة الأساسية

يتضمّن Android واجهات برمجة تطبيقات جديدة توسّع الإمكانات الأساسية لنظام Android.

إصداران من واجهة برمجة تطبيقات Android في عام 2025

  • 此预览版适用于 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 مطوّري التطبيقات والمستخدمين مزيدًا من التحكّم والمرونة في ضبط أجهزتهم لتناسب احتياجاتهم.

إشعارات تركّز على مستوى التقدّم

يقدّم الإصدار 16 من نظام التشغيل Android إشعارات تركّز على مستوى التقدّم لمساعدة المستخدمين في تتبُّع الرحلات التي يبدأها المستخدمون من البداية إلى النهاية بسلاسة.

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 واجهات برمجة تطبيقات للتأثيرات الحسية تتيح للتطبيقات تحديد منحنيات amplitude وfrequency لتأثير حسي مع تجاهل اختلافات قدرات الجهاز.

إنتاجية المطوّرين وأدواتهم

على الرغم من أنّ معظم جهودنا لتحسين إنتاجيتك تتمحور حول أدوات مثل استوديو Android وJetpack Compose ومكتبات Android Jetpack، فإنّنا نبحث دائمًا عن طرق في النظام الأساسي لمساعدتك في تحقيق رؤيتك.

التعامل مع محتوى الخلفيات المتحركة

في الإصدار 16 من Android، سيحصل إطار عمل الخلفيات المتحركة على واجهة برمجة تطبيقات جديدة للمحتوى بهدف معالجة تحديات الخلفيات الديناميكية التي ينشئها المستخدمون. في الوقت الحالي، تتطلّب خلفيات الشاشة النشطة التي تتضمّن محتوى يقدّمه المستخدم تنفيذًا معقدًا خاصًا بالخدمة. يقدّم نظام التشغيل Android 16 رمزَي emoji WallpaperDescription و WallpaperInstance. يتيح لك WallpaperDescription معرفة حالات مختلفة من خلفية متحركة من الخدمة نفسها. على سبيل المثال، قد تتضمّن الخلفية التي تظهر على كل من الشاشة الرئيسية وشاشة القفل محتوًى فريدًا في كلا المكانَين. يستخدم أداة اختيار الخلفية وWallpaperManager هذه البيانات الوصفية لعرض الخلفيات بشكل أفضل للمستخدمين، ما يسهّل عليك إنشاء تجارب متنوعة ومخصَّصة للخلفيات الحية.

الأداء والبطارية

يقدّم Android 16 واجهات برمجة تطبيقات تساعد في جمع إحصاءات حول تطبيقاتك.

تحديد المواصفات الشخصية لصاحب البيانات من خلال النظام

تم إضافةProfilingManager في Android 15، ما يتيح للتطبيقات طلب جمع بيانات الأداء باستخدام Perfetto على الأجهزة العامة في الميدان. ومع ذلك، بما أنّه يجب بدء عملية وضع هذه الملفات الشخصية من التطبيق، سيكون من الصعب أو من المستحيل على التطبيقات تسجيل مسارات الأداء الحرجة، مثل عمليات بدء التشغيل أو أخطاء ANR.

للمساعدة في ذلك، يقدّم نظام التشغيل Android 16 ميزة "الملف الشخصي الذي يبدأه النظام" لتطبيق ProfilingManager. يمكن للتطبيقات تسجيل اهتمامها بتلقّي عمليات تتبُّع لعوامل بدء محدّدة مثل بدء التشغيل البارد reportFullyDrawn أو أخطاء ANR، ثم يبدأ النظام عملية تتبُّع ويوقفها نيابةً عن التطبيق. بعد اكتمال التتبُّع، يتم إرسال النتائج إلى دليل بيانات التطبيق.

بدء المكوّن في ApplicationStartInfo

تم إضافةApplicationStartInfo في الإصدار 15 من Android، ما يتيح للتطبيق الاطّلاع على أسباب بدء العملية ونوع البدء وأوقات البدء والحدّ من السرعة وغيرها من بيانات التشخيص مفيدة. يضيف الإصدار 16 من Android رمزًا برمجيًا هو getStartComponent() لتمييز نوع المكوّن الذي بدأ عملية التشغيل، ما قد يكون مفيدًا في تحسين عملية بدء تشغيل تطبيقك.

تحسين فحص المهام

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

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

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

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

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

معدّل التحديث التكيّفي

إنّ معدل إعادة التحميل التكيُّفي (ARR) الذي تم تقديمه في Android 15 يتيح لمعدل إعادة تحميل الشاشة على الأجهزة المتوافقة التكيُّف مع معدل عرض اللقطات للمحتوى باستخدام خطوات فاصل عرض اللقطات المنفصلة. ويؤدي ذلك إلى تقليل استهلاك الطاقة مع التخلص من الحاجة إلى التبديل بين الأوضاع الذي قد يؤدي إلى حدوث تقطُّع في الأداء.

يقدّم نظام التشغيل Android 16 hasArrSupport() و getSuggestedFrameRate(int) مع استعادة getSupportedRefreshRates() لتسهيل استفادة تطبيقاتك من ميزة ARR. يتيح RecyclerView 1.4 استخدام ميزة ARR داخليًا عند الانتقال من التمرير السريع أو الانتقال السلس، ونحن نواصل عملنا لإضافة ميزة ARR إلى المزيد من مكتبات Jetpack. تتناول مقالة معدّل عرض اللقطات هذه العديد من واجهات برمجة التطبيقات التي يمكنك استخدامها لضبط معدّل عرض اللقطات كي يتمكّن تطبيقك من استخدام ميزة "معدل عرض الإعلانات" مباشرةً.

واجهات برمجة التطبيقات الخاصة بالقدرة الاحتياطية في إطار عمل ADPF

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.

استخدام الهاتف كميكروفون لإدخال الصوت أثناء المكالمات الصوتية باستخدام سماعات الأذن الطبية المزودة بتقنية LE Audio

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.

عناصر التحكّم في مستوى الصوت المحيط لسماعات الأذن الطبية المتوافقة مع LE Audio

Android 16 adds the capability for users of LE Audio hearing aids to adjust the volume of ambient sound that is picked up by the hearing aid's microphones. This can be helpful in situations where background noise is too loud or too quiet.

الكاميرا

يوفّر Android 16 دعمًا محسّنًا لمستخدمي الكاميرات الاحترافية، ما يتيح التعريض التلقائي المختلط مع تعديلات دقيقة لدرجة حرارة الألوان ودرجة اللون. يساعد مؤشر "الوضع الليلي" الجديد تطبيقك في معرفة وقت التبديل إلى جلسة كاميرا في "الوضع الليلي" والتبديل منها. تسهّل إجراءات Intent الجديدة التقاط الصور المتحركة، ونواصل تحسين صور UltraHDR من خلال إتاحة ترميز HEIC والمَعلمات الجديدة من مسودة معيار ISO 21496-1.

التعرّض التلقائي المختلط للضوء

يضيف نظام التشغيل Android 16 أوضاعًا جديدة مختلطة للتعريض التلقائي إلى Camera2، ما يتيح لك التحكّم يدويًا في جوانب معيّنة من التعريض مع السماح لخوارزمية التعريض التلقائي (AE) بالتعامل مع الباقي. يمكنك التحكّم في درجة ISO + التعريض التلقائي ووقت التعريض + التعريض التلقائي، ما يوفّر مزيدًا من المرونة مقارنةً بالنهج الحالي الذي يتيح لك التحكّم يدوياً بالكامل أو الاعتماد بالكامل على التعريض التلقائي.

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 adds camera support for fine color temperature and tint adjustments to better support professional video recording applications. In previous Android versions, you could control white balance settings through CONTROL_AWB_MODE, which contains options limited to a preset list, such as Incandescent, Cloudy, and Twilight. The COLOR_CORRECTION_MODE_CCT enables the use of COLOR_CORRECTION_COLOR_TEMPERATURE and COLOR_CORRECTION_COLOR_TINT for precise adjustments of white balance based on the correlated color temperature.

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

The following examples show how a photo would look after applying different color temperature and tint adjustments:

The original image with no color temperature or tint adjustments applied.
The image with color temperature adjusted to 3000.
The image with color temperature adjusted to 7000.


The image with tint levels lowered by 50.
The image with tint levels raised by 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.

إجراءات intent لالتقاط الصور الحيّة

يضيف نظام التشغيل Android 16 إجراءات Intent عادية، وهي ACTION_MOTION_PHOTO_CAPTURE و ACTION_MOTION_PHOTO_CAPTURE_SECURE، تطلب من تطبيق الكاميرا التقاط صورة متحركة وإعادتها.

يجب إدخال EXTRA_OUTPUT إضافي للتحكّم في مكان كتابة الصورة، أو Uri من خلال Intent.setClipData(ClipData). إذا لم تضبط ClipData، سيتم نسخها إليك عند الاتصال بالرقم Context.startActivity(Intent).

مثال على صورة حيّة تعرض الصورة الثابتة متبوعة بتشغيل الصورة الحيّة

تحسينات الصور بدقة HDR فائقة

صورة توضيحية لجودة الصور بنطاق عادي ديناميكية (SDR) مقارنةً بنطاق عالي الديناميكية (HDR).

يواصل نظام Android 16 جهودنا لتوفير جودة صور مذهلة باستخدام صور UltraHDR. تمت إضافة إمكانية استخدام صور UltraHDR بتنسيق ملف HEIC. ستحصل هذه الصور على نوع ImageFormat HEIC_ULTRAHDR وستحتوي على خريطة مكاسب مضمّنة مشابهة لتنسيق UltraHDR JPEG الحالي. نحن نعمل أيضًا على إتاحة تنسيق AVIF لميزة UltraHDR، لذا يُرجى متابعتنا باستمرار.

بالإضافة إلى ذلك، ينفِّذ الإصدار 16 من نظام التشغيل Android مَعلمات إضافية في ميزة "دقة HDR الفائقة" من مسودة معيار ISO 21496-1، بما في ذلك إمكانية الحصول على مساحة الألوان التي يجب تطبيق العمليات الحسابية لخريطة الكسب فيها وضبطها، بالإضافة إلى إتاحة الصور الأساسية المُشفَّرة بتقنية النطاق العالي الديناميكية (HDR) مع خرائط الكسب بتقنية النطاق العادي الديناميكية (SDR).

الرسومات

يتضمّن 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.

توفّر الأجهزة في "أداة إدارة الأجهزة المصاحبة"

في Android 16، يتمّ طرح واجهات برمجة تطبيقات جديدة لربط خدمة التطبيق المصاحب. سيتم ربط الخدمة عندما تكون تقنية BLE ضمن النطاق ويكون البلوتوث متصلاً، وسيتم إلغاء ربط الخدمة عندما تكون تقنية BLE خارج النطاق أو عندما يتم إيقاف البلوتوث. سيتلقّى التطبيق مكالمة مرتجعة جديدة لرمز دالة onDevicePresenceEvent()‎ استنادًا إلى قيم مختلفة لحالة DevicePresenceEvent. يمكنك الاطّلاع على مزيد من التفاصيل في ‎'startObservingDevicePresence(ObservingDevicePresenceRequest)'.

الوسائط

يتضمّن Android 16 مجموعة متنوعة من الميزات التي تحسّن تجربة الوسائط.

تحسينات على "أداة اختيار الصور"

照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新和 Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。

Android 16 对照片选择器进行了以下改进:

  • 嵌入式照片选择器:新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
  • 照片选择器中的云搜索:新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。

Advanced Professional Video

يتيح نظام التشغيل Android 16 استخدام ترميز Advanced Professional Video (APV) المصمّم لاستخدامه في تسجيل الفيديوهات بجودة عالية على المستوى الاحترافي وعمليات ما بعد الإنتاج.

يتضمن معيار ترميز APV الميزات التالية:

  • جودة فيديو بدون فقدان ملحوظ للبيانات (قريبة من جودة الفيديو الأصلي)
  • ترميز داخل اللقطة فقط بدرجة منخفضة من التعقيد ومع معدل نقل بيانات مرتفع (بدون توقّع ملف هبوط حبيبات البكسل) لدعم سير عمل التعديل بشكل أفضل
  • إتاحة نطاق معدل نقل بيانات مرتفع يصل إلى بضعة غيغابايت في الثانية للمحتوى بدقة 2K و4K و8K ، وذلك من خلال مخطّط ترميز معلومات منخفض الوزن
  • تقسيم الإطارات للمحتوى الغامر وتفعيل الترميز والترميز الثنائي
  • إتاحة تنسيقات مختلفة لتحليل الألوان ودرجات البت
  • إتاحة عمليات فك ترميز وإعادة ترميز متعددة بدون تعريض الجودة المرئية للتدهّور الشديد
  • إتاحة الفيديوهات المتعدّدة وأنواع الفيديوهات المساعِدة، مثل الفيديوهات التي تُظهر العمق والصور المموّهة والمعاينة
  • التوافق مع تقنية HDR10/10+ والبيانات الوصفية التي يحدّدها المستخدم

يتم توفير تنفيذ مرجعي لـ APV من خلال مشروع OpenAPV. سيتيح نظام Android 16 استخدام الملف الشخصي APV 422-10 الذي يقدّم تحليل ألوان YUV 422 بالإضافة إلى ترميز 10 بت ومعدّلات نقل البيانات المستهدَفة التي تصل إلى 2 غيغابايت في الثانية.

الخصوصية

يتضمّن Android 16 مجموعة متنوعة من الميزات التي تساعد مطوّري التطبيقات في حماية خصوصية المستخدمين.

تحديثات Health Connect

Health Connect adds ACTIVITY_INTENSITY, a data type defined according to World Health Organization guidelines around moderate and vigorous activity. Each record requires the start time, the end time, and whether the activity intensity is moderate or vigorous.

Health Connect also contains updated APIs supporting medical records. This allows apps to read and write medical records in FHIR format with explicit user consent.

"مبادرة حماية الخصوصية" على Android

يتضمّن الإصدار 16 من Android أحدث إصدار من مبادرة حماية الخصوصية على Android، وهي جزء من عملنا المستمر لتطوير تقنيات تضمن للمستخدمين اتّخاذ خطوات لحماية خصوصيتهم. يمكنك زيارة موقعنا الإلكتروني للاطّلاع على مزيد من المعلومات عن "مبادرة حماية الخصوصية" في الإصدار التجريبي من برنامج "مطوّرو تطبيقات Android" لمساعدتك في البدء. اطّلِع على وقت تشغيل حزمة SDK الذي يتيح تشغيل حِزم SDK في بيئة وقت تشغيل مخصّصة منفصلة عن التطبيق الذي تقدّمه، ما يوفر وسائل حماية أقوى بشأن جمع بيانات المستخدمين ومشاركتها.

الأمان

يتضمّن Android 16 ميزات تساعدك في تعزيز أمان تطبيقك وحماية بياناته.

واجهة برمجة التطبيقات لمشاركة المفاتيح

Android 16 添加了一些 API,这些 API 支持与其他应用共享对 Android Keystore 密钥的访问权限。新的 KeyStoreManager 类支持按应用 uid 授予和撤消对密钥的访问权限,并包含一个供应用访问共享密钥的 API。

أشكال الأجهزة

يوفّر Android 16 لتطبيقاتك الدعم اللازم للاستفادة إلى أقصى حد من أشكال أجهزة Android.

إطار عمل موحّد لجودة الصورة والصوت على أجهزة التلفزيون

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

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

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

التوافق مع أسواق عالمية

يضيف Android 16 ميزات وإمكانات تكمّل تجربة المستخدم عند استخدام جهاز بلغات مختلفة.

نص عمودي

يضيف نظام Android 16 دعمًا من المستوى الأدنى لعرض النص وقياسه عموديًا بهدف توفير دعم أساسي للكتابة العمودية لمطوّري المكتبات. ويفيد ذلك بشكل خاص في اللغات التي تستخدم عادةً أنظمة كتابة عمودية، مثل اليابانية. تمت إضافة علامة جديدة، VERTICAL_TEXT_FLAG، إلى فئة Paint. عند ضبط هذا الإعداد باستخدام 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
            )
        }
    }
) {}

تخصيص نظام القياس

يمكن للمستخدمين الآن تخصيص نظام القياس في الإعدادات المفضّلة على مستوى المنطقة ضمن الإعدادات. يتم تضمين إعدادات المستخدم المفضّلة كجزء من رمز اللغة، لذا يمكنك تسجيل BroadcastReceiver على ACTION_LOCALE_CHANGED للتعامل مع تغييرات إعدادات اللغة عند تغيير الإعدادات المفضّلة على مستوى المنطقة.

يمكن أن يساعد استخدام أدوات التنسيق في مطابقة التجربة المحلية. على سبيل المثال، تمثل القيمة "0.5 بوصة" باللغة الإنجليزية (الولايات المتحدة) القيمة "12.7 مم" لمستخدم ضبط لغة هاتفه على الإنجليزية (الدنمارك) أو يستخدم هاتفه باللغة الإنجليزية (الولايات المتحدة) مع استخدام النظام المتري كنظام القياس المفضّل.

للعثور على هذه الإعدادات، افتح تطبيق "الإعدادات" وانتقِل إلى النظام > اللغات والمنطقة.