תכונות וממשקי API

ב-Android 16 יש תכונות חדשות וממשקי API חדשים למפתחים. בקטעים הבאים מופיע סיכום של התכונות האלה שיעזור לכם להתחיל להשתמש בממשקי ה-API שקשורים אליהן.

רשימה מפורטת של ממשקי API חדשים, ממשקי API שעברו שינוי וממשקי API שהוסרו מופיעה בדוח השוואה בין גרסאות של API. פרטים על ממשקי API חדשים זמינים בהפניית Android API. ממשקי API חדשים מסומנים כדי להקל על האיתור שלהם.

כדאי גם לבדוק תחומים שבהם שינויים בפלטפורמה עשויים להשפיע על האפליקציות שלכם. למידע נוסף, ראו את הדפים הבאים:

פונקציונליות עיקרית

‫Android כוללת ממשקי API חדשים שמרחיבים את יכולות הליבה של מערכת Android.

שתי גרסאות של Android API בשנת 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, למפתחי אפליקציות ולמשתמשים יש יותר שליטה וגמישות בהגדרת המכשיר כך שיתאים לצרכים שלהם.

התראות שמתמקדות בהתקדמות

Android 16 引入了以进度为中心的通知,可帮助用户顺畅地跟踪用户发起的端到端历程。

Notification.ProgressStyle 是一种新的通知样式,可让您创建以进度为中心的通知。主要用例包括共享车辆、送货和导航。在 Notification.ProgressStyle 类中,您可以使用细分来表示用户体验历程中的状态和里程碑。

如需了解详情,请参阅以进度为中心的通知文档页面。

התראה שמתמקדת בהתקדמות מוצגת במסך הנעילה.
התראה שמתמקדת בהתקדמות מוצגת בחלונית ההתראות.

עדכונים של חיזוי החזרה

Android 16 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。

Android 16 还添加了 finishAndRemoveTaskCallback()moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。

משוב פיזי עשיר יותר

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

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

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

פרודוקטיביות וכלים למפתחים

רוב העבודה שלנו לשיפור הפרודוקטיביות מתמקדת בכלים כמו Android Studio,‏ Jetpack Compose וספריות Android Jetpack, אבל אנחנו תמיד מחפשים דרכים לעזור לכם להגשים את החזון שלכם בפלטפורמה.

טיפול בתוכן של טפטים דינמיים

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

ביצועים וסוללה

‫Android 16 כולל ממשקי API שעוזרים לאסוף תובנות לגבי האפליקציות.

יצירת פרופילים שמופעלת על ידי המערכת

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 时。例如,未能在后台更新微件,或在应用启动之前未能调用预加载作业。

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

קצב רענון דינמי

שיעור הרענון המותאם (ARR), שהוצג ב-Android 15, מאפשר לשיעור הרענון של המסך בחומרה נתמכת להתאים את עצמו לשיעור הפריימים של התוכן באמצעות שלבים נפרדים של VSync. כך אפשר לצמצם את צריכת החשמל ולחסוך את הצורך במעבר בין המצבים, שעלול לגרום לתנודות בפריימים.

ב-Android 16 נוספו hasArrSupport() ו-getSuggestedFrameRate(int), תוך שחזור של getSupportedRefreshRates(), כדי שיהיה קל יותר לאפליקציות שלכם לנצל את ARR. RecyclerView 1.4 תומך באופן פנימי ב-ARR כשהוא מתייצב אחרי תנועה מהירה או גלילה חלקה, ואנחנו ממשיכים לעבוד כדי להוסיף תמיכה ב-ARR לספריות נוספות של Jetpack. במאמר הזה מוסבר על הרבה ממשקי API שאפשר להשתמש בהם כדי להגדיר את קצב הפריימים, כך שהאפליקציה תוכל להשתמש ישירות ב-ARR.

Headroom APIs in ADPF

ב-SystemHealthManager מופיעים ממשקי ה-API getCpuHeadroom ו-getGpuHeadroom, שנועדו לספק לאפליקציות ולמשחקים שמשתמשים במשאבים רבים אומדנים של משאבי המעבד (CPU) והמעבד הגרפי (GPU) שזמינים. השיטות האלה מאפשרות לכם להעריך איך אפשר לשפר את בריאות המערכת באמצעות האפליקציה או המשחק, במיוחד כשמשתמשים בהן בשילוב עם ממשקי API אחרים של Android Dynamic Performance Framework ‏ (ADPF) שמזוהים את הבקרה על הביצועים כתוצאה מהתחממות.

באמצעות CpuHeadroomParams ו-GpuHeadroomParams במכשירים נתמכים, אפשר להתאים אישית את חלון הזמן שמשמש לחישוב מרווח הנשימה ולבחור בין זמינות משאבים ממוצעת לזמינות משאבים מינימלית. כך תוכלו לצמצם את השימוש במשאבי המעבד או ה-GPU בהתאם, וכתוצאה מכך לשפר את חוויית המשתמש ואת חיי הסוללה.

נגישות

ב-Android 16 נוספו ממשקי 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

Android 16 新增了一项功能,让 LE Audio 助听器用户能够在助听器的内置麦克风和手机上的麦克风之间切换,以进行语音通话。在嘈杂的环境或助听器麦克风可能无法正常工作的其他情况下,这会很有帮助。

שליטה בעוצמת הקולות מהסביבה במכשירי שמיעה עם LEA

ב-Android 16 נוספה למשתמשים במכשירי שמיעה עם LE Audio היכולת לשנות את עוצמת הצליל של הסביבה שנקלט במיקרופונים של מכשיר השמיעה. האפשרות הזו יכולה להיות שימושית במצבים שבהם רעשי הרקע רועשים מדי או שקטים מדי.

מצלמה

‫Android 16 משפר את התמיכה במשתמשים מקצועיים במצלמה, ומאפשר חשיפה אוטומטית היברידית יחד עם התאמות מדויקות של טמפרטורת הצבע והגוון. מחוון חדש של מצב לילה עוזר לאפליקציה לדעת מתי לעבור למצב לילה ומתי לצאת ממנו במהלך צילום במצלמה. Intentפעולות חדשות מקלות על צילום תמונות עם תנועה, ואנחנו ממשיכים לשפר את תמונות ה-UltraHDR עם תמיכה בקידוד HEIC ופרמטרים חדשים מטיוטת התקן ISO 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。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。

פעולות Intent של צילום תמונות עם תנועה

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

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

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

שיפורים בתמונות UltraHDR

An illustration of Standard Dynamic Range (SDR) versus High Dynamic Range (HDR) image quality.

Android 16 continues our work to deliver dazzling image quality with UltraHDR images. It adds support for UltraHDR images in the HEIC file format. These images will get ImageFormat type HEIC_ULTRAHDR and will contain an embedded gainmap similar to the existing UltraHDR JPEG format. We're working on AVIF support for UltraHDR as well, so stay tuned.

In addition, Android 16 implements additional parameters in UltraHDR from the ISO 21496-1 draft standard, including the ability to get and set the colorspace that gainmap math should be applied in, as well as support for HDR encoded base images with SDR gainmaps.

גרפיקה

‫Android 16 כולל את השיפורים האחרונים בגרפיקה, כמו אפקטים גרפיים מותאמים אישית עם AGSL.

אפקטים גרפיים בהתאמה אישית באמצעות AGSL

Android 16 添加了 RuntimeColorFilterRuntimeXfermode,让您可以创作阈值、Sepia 和 Hue Saturation 等复杂效果,并将其应用于绘制调用。从 Android 13 开始,您可以使用 AGSL 创建扩展 Shader 的自定义 RuntimeShader。新 API 反映了这一点,添加了由 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 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。

ממשקי API כלליים של טווחים

Android 16 כולל את RangingManager החדש, שמספק דרכים לקבוע את המרחק והזווית בחומרה נתמכת בין המכשיר המקומי למכשיר מרוחק. RangingManager תומך במגוון טכנולוגיות למדידת מרחק, כמו בדיקת ערוץ BLE, מדידת מרחק מבוססת RSSI ב-BLE, Ultra Wideband וזמן נסיעה הלוך ושוב ב-Wi-Fi.

נוכחות של מכשיר נלווה

Android 16 中引入了用于绑定配套应用服务的新 API。当 BLE 在范围内且蓝牙处于连接状态时,系统会绑定服务;当 BLE 不在范围内或蓝牙处于断开连接状态时,系统会解除绑定服务。应用将根据各种 DevicePresenceEvent 收到新的 'onDevicePresenceEvent()' 回调。如需了解详情,请参阅 '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 引入了对高级专业视频 (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 מכיל גם ממשקי API מעודכנים שתומכים בתיקים רפואיים. כך אפליקציות יכולות לקרוא ולכתוב תיעוד רפואי בפורמט FHIR עם הסכמה מפורשת של המשתמשים.

ארגז החול לפרטיות ב-Android

Android 16 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。

אבטחה

‫Android 16 כולל תכונות שעוזרות לשפר את האבטחה של האפליקציה ולהגן על הנתונים שלה.

Key sharing API

ב-Android 16 נוספו ממשקי API שתומכים בשיתוף הגישה למפתחות של Android Keystore עם אפליקציות אחרות. הכיתה החדשה KeyStoreManager תומכת בהענקת וביטול גישה למפתחות לפי uid של האפליקציה, וכוללת API לאפליקציות כדי לגשת למפתחות משותפים.

גורמי צורה של מכשירים

‫Android 16 מספק לאפליקציות שלכם תמיכה שתאפשר לכם להפיק את המרב מגורמי הצורה של Android.

מסגרת תקנים לאיכות התמונה והאודיו בטלוויזיות

חבילת MediaQuality החדשה ב-Android 16 חושפת קבוצה של ממשקי API סטנדרטיים לגישה לפרופילים של אודיו ותמונות ולהגדרות שקשורות לחומרה. כך אפליקציות סטרימינג יכולות לבצע שאילתות על פרופילים ולהחיל אותם על מדיה באופן דינמי:

  • בסרטים שעברו עיבוד עם טווח דינמי רחב יותר, נדרשת רמת דיוק גבוהה יותר של צבעים כדי לראות פרטים עדינים בצללים ולהתאים את התמונה לאור הסביבה. לכן, יכול להיות שתתאים הגדרת פרופיל שמעדיפה דיוק צבעים על פני בהירות.
  • לעיתים קרובות, אירועי ספורט בשידור חי עוברים עיבוד עם טווח דינמי צר, אבל לרוב צופים בהם באור יום, ולכן פרופיל שמעדיף בהירות על פני דיוק צבעים יכול להניב תוצאות טובות יותר.
  • כדי להציג תוכן אינטראקטיבי מלא, צריך עיבוד מינימלי כדי לצמצם את זמן האחזור, ושיעור פריימים גבוה יותר. לכן, טלוויזיות רבות מגיעות עם פרופיל משחק.

ה-API מאפשר לאפליקציות לעבור בין פרופילים, ולמשתמשים ליהנות מהתאמה של טלוויזיות נתמכות לתוכן שלהם.

אינטרנציונליזציה

ב-Android 16 נוספו תכונות ויכולות שמשלימות את חוויית המשתמש כשמשתמשים במכשיר בשפות שונות.

טקסט אנכי

ב-Android 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 in' באנגלית (ארה"ב) הוא '12.7 mm' אצל משתמש שהגדיר את הטלפון לאנגלית (דנמרק) או משתמש שמשתמש בטלפון באנגלית (ארה"ב) עם המערכת המטרית כמערכת המדידה המועדפת.

כדי למצוא את ההגדרות האלה, פותחים את אפליקציית ההגדרות ועוברים אל מערכת > שפות ואזור.