תכונות וממשקי 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 חדשים שיעזרו לכם להפעיל אנימציות מערכת חזרה חזויות בניווט באמצעות תנועות, כמו אנימציה של חזרה לדף הבית. רישום ה-onBackInvokedCallback באמצעות PRIORITY_SYSTEM_NAVIGATION_OBSERVER החדש מאפשר לאפליקציה לקבל את הקריאה הרגילה 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 在 Android 15 中添加,让应用能够在现场使用 Perfetto 请求收集性能数据。不过,由于此性能分析必须从应用启动,因此应用很难或根本无法捕获启动或 ANR 等关键流程。

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

הפעלת רכיב ב-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 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 VSync 步长来适应内容帧速率。这不仅降低了功耗,还无需进行可能导致卡顿的模式切换。

Android 16 引入了 hasArrSupport()getSuggestedFrameRate(int),同时恢复了 getSupportedRefreshRates(),以便您的应用更轻松地利用 ARR。RecyclerView 1.4从快速滑动或平滑滚动中稳定下来时会在内部支持 ARR,我们将继续努力,将 ARR 支持添加到更多 Jetpack 库中。这篇帧速率文章介绍了许多可用于设置帧速率的 API,以便您的应用可以直接使用 ARR。

Headroom APIs in ADPF

SystemHealthManager 引入了 getCpuHeadroomgetGpuHeadroom API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。

在受支持的设备上使用 CpuHeadroomParamsGpuHeadroomParams,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。

נגישות

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

ממשקי API משופרים לנגישות

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

קו מתאר של הטקסט כדי לשפר את הניגודיות של הטקסט

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

מערכת Android 16 כוללת ממשקי API חדשים של AccessibilityManager שמאפשרים לאפליקציות לבדוק או לרשום מאזין כדי לבדוק אם המצב הזה מופעל. האפשרות הזו מיועדת בעיקר לערכות כלים של ממשק משתמש, כמו Compose, כדי לספק חוויה חזותית דומה. אם אתם מנהלים ספרייה של UI Toolkit או שהאפליקציה שלכם מבצעת עיבוד טקסט מותאם אישית שעובר על פני הכיתה android.text.Layout, תוכלו להשתמש בזה כדי לדעת מתי הטקסט בקו מתאר מופעל.

טקסט עם ניגודיות משופרת לפני ואחרי התכונה החדשה של Android 16 להנגשת טקסט עם קו מתאר

משך הזמן נוסף ל-TtsSpan

ב-Android 16, TtsSpan מורחב באמצעות TYPE_DURATION, שמכיל את ARG_HOURS, את ARG_MINUTES ואת ARG_SECONDS. כך תוכלו להוסיף הערות ישירות למשך הזמן, וכך להבטיח שהטקסט שהמערכת תקריא יהיה מדויק ועקבי באמצעות שירותים כמו TalkBack.

תמיכה ברכיבים עם כמה תוויות

כרגע, ב-Android אפשר להסיק את תווית הנגישות של רכיבי ממשק המשתמש מרכיב אחר, ועכשיו יש אפשרות לשייך כמה תוויות, תרחיש נפוץ בתוכן אינטרנט. בעזרת ממשק API שמבוסס על רשימה ב-AccessibilityNodeInfo, מערכת Android יכולה לתמוך ישירות ביחסים האלה של תוויות מרובות. כחלק מהשינוי, הוצאנו משימוש את AccessibilityNodeInfo#setLabeledBy ואת #getLabeledBy והחלפנו אותם ב-#addLabeledBy, ב-#removeLabeledBy וב-#getLabeledByList.

תמיכה משופרת ברכיבים שניתן להרחיב

ב-Android 16 נוספו ממשקי API לנגישות שמאפשרים להעביר את המצב המורחב או המכווץ של רכיבים אינטראקטיביים, כמו תפריטים ורשימות שניתן להרחיב. כדי לוודא שקוראי מסך כמו TalkBack יקריאו את השינויים במצב, אפשר להגדיר את המצב המורחב באמצעות setExpandedState ולשלוח אירועי נגישות מסוג TYPE_WINDOW_CONTENT_CHANGED עם סוג שינוי תוכן CONTENT_CHANGE_TYPE_EXPANDED. כך תוכלו לספק חוויית משתמש אינטואיטיבית ומכילה יותר.

סרגי התקדמות לא מוגדרים

ב-Android 16 נוספה התכונה RANGE_TYPE_INDETERMINATE, שמאפשרת לחשוף את RangeInfo גם לווידג'טים ProgressBar מוגדרים וגם לווידג'טים לא מוגדרים, וכך לאפשר לשירותים כמו TalkBack לספק משוב עקבי יותר לגבי אינדיקטורים של התקדמות.

תיבת סימון תלת-מצבית

השיטות החדשות AccessibilityNodeInfo getChecked ו-setChecked(int) ב-Android 16 תומכות עכשיו במצב 'מסומן חלקית' בנוסף למצבים 'מסומן' ו'לא מסומן'. הפונקציה הזו מחליפה את הפונקציות הבוליאניות isChecked ו-setChecked(boolean) שהוצאו משימוש.

תיאורים משלימים

כששירות נגישות מתאר ViewGroup, הוא משלב תוויות לתיאור התוכן מהתצוגות הצאצאיות שלו. אם תספקו את הערך contentDescription ל-ViewGroup, שירותי הנגישות יקבלו את ההנחה שאתם משנים גם את התיאור של תצוגות הצאצאים שלא ניתנות למיקוד. זה יכול להוות בעיה אם רוצים לתייג פריטים כמו תפריט נפתח (לדוגמה, 'משפחת גופנים') תוך שמירה על הבחירה הנוכחית לצורכי נגישות (לדוגמה, 'Roboto'). ב-Android 16 נוספה התגית setSupplementalDescription, שמאפשרת לספק טקסט שמספק מידע על ViewGroup בלי לשנות את המידע מהצאצאים שלו.

שדות חובה בטופס

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

הטלפון כקלט מיקרופון לשיחות קוליות עם מכשירי שמיעה בטכנולוגיית 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_TEMPERATURECOLOR_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

标准动态范围 (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.

אפקטים גרפיים בהתאמה אישית באמצעות 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 信道声音探测、基于 BLE RSSI 的测距、超宽带和 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 introduces support for the Advanced Professional Video (APV) codec which is designed to be used for professional level high quality video recording and post production.

The APV codec standard has the following features:

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

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

פרטיות

‫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,这些 API 支持与其他应用共享对 Android Keystore 密钥的访问权限。新的 KeyStoreManager 类支持按应用 uid 授予撤消对密钥的访问权限,并包含一个供应用访问共享密钥的 API。

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

‫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
            )
        }
    }
) {}

התאמה אישית של יחידות המידה

עכשיו המשתמשים יכולים להתאים אישית את מערכת המדידה שלהם בהעדפות האזוריות שבקטע 'הגדרות'. העדפת המשתמש כלולה בקוד הלוקאל, כך שאפשר לרשום אירוע BroadcastReceiver ב-ACTION_LOCALE_CHANGED כדי לטפל בשינויים בהגדרות הלוקאל כשהעדפות האזור משתנות.

שימוש בפורמטרים יכול לעזור להתאים את החוויה המקומית. לדוגמה, הערך '0.5 in' באנגלית (ארה"ב) הוא '12.7 mm' אצל משתמש שהגדיר את הטלפון לאנגלית (דנמרק) או משתמש שמשתמש בטלפון באנגלית (ארה"ב) עם המערכת המטרית כמערכת המדידה המועדפת.

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