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

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

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

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

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

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

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

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

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

ProfilingManager נוסף ב-Android 15, ומאפשר לאפליקציות לבקש איסוף נתונים ליצירת פרופילים באמצעות Perfetto במכשירים ציבוריים בשטח. עם זאת, מאחר שצריך להתחיל את הפרופיל הזה מהאפליקציה, לאפליקציות יהיה קשה או בלתי אפשרי לתעד תהליכים קריטיים כמו הפעלות או אירועי ANR.

כדי לעזור בכך, ב-Android 16 הוספנו ל-ProfilingManager פרופיל שמופעל על ידי המערכת. אפליקציות יכולות להירשם לקבלת מעקבים של טריגרים מסוימים, כמו הפעלה מחדש (cold start) reportFullyDrawn או אירועי ANR, ואז המערכת מתחילה ומפסיקה מעקב בשם האפליקציה. בסיום המעקב, התוצאות מועברות לספריית הנתונים של האפליקציה.

הפעלת רכיב ב-ApplicationStartInfo

ApplicationStartInfo 在 Android 15 中添加,可让应用查看进程启动原因、启动类型、启动时间、节流和其他实用诊断数据。Android 16 添加了 getStartComponent(),用于区分触发启动的组件类型,这有助于优化应用的启动流程。

בדיקה טובה יותר של המשרה

ה-API של JobScheduler#getPendingJobReason() מחזיר את הסיבה לכך שמשימת עשויה להמתין. עם זאת, יכולות להיות כמה סיבות לכך שמשימה נמצאת בהמתנה.

ב-Android 16 אנחנו משיקים ממשק API חדש, JobScheduler#getPendingJobReasons(int jobId), שמציג כמה סיבות לכך שמשימה נמצאת בהמתנה, גם בגלל אילוצים מפורשים שהמפתח הגדיר וגם בגלל אילוצים משתמעים שהמערכת הגדירה.

אנחנו גם משיקים את הפונקציה JobScheduler#getPendingJobReasonsHistory(int jobId), שמחזירה רשימה של השינויים האחרונים באילוצים.

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

כך תוכלו גם להבין טוב יותר אם משימות מסוימות לא מסתיימות בגלל אילוצים שהוגדרו על ידי המערכת, לעומת אילוצים שהוגדרו באופן מפורש.

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

שיעור הרענון המותאם (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 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。

为文字添加轮廓,以最大限度地提高文字对比度

视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。

Android 16 包含新的 AccessibilityManager API,可让您的应用检查注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。

Android 16 推出新的轮廓文本无障碍功能前后,对比度更高的文本

向 TtsSpan 添加了时长

Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURSARG_MINUTESARG_SECONDS。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。

支持具有多个标签的元素

Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo 中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy#getLabeledBy,改用 #addLabeledBy#removeLabeledBy#getLabeledByList

改进了对可展开元素的支持

Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState 设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED 内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。

不确定进度条

Android 16 添加了 RANGE_TYPE_INDETERMINATE,让您可以为确定性和不确定性 ProgressBar 微件公开 RangeInfo,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。

三态复选框

Android 16 中的新 AccessibilityNodeInfo getCheckedsetChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isCheckedsetChecked(boolean)

补充说明

如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。

必填表单字段

Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户而言,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。

הטלפון כקלט מיקרופון לשיחות קוליות עם מכשירי שמיעה בטכנולוגיית 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. אם התכונה נתמכת, היא תהיה זמינה בCaptureResult בתוך Camera2.

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

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

ב-Android 16 נוספו פעולות סטנדרטיות של Intent – ACTION_MOTION_PHOTO_CAPTURE ו-ACTION_MOTION_PHOTO_CAPTURE_SECURE – שמבקשות מאפליקציית המצלמה לצלם תמונה בתנועה ולהחזיר אותה.

צריך להעביר EXTRA_OUTPUT נוסף כדי לקבוע לאן התמונה תירשם, או Uri דרך Intent.setClipData(ClipData). אם לא תגדירו ClipData, הוא יועתק לשם כשתבצעו את השיחה Context.startActivity(Intent).

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

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

איור של איכות תמונה בטווח דינמי סטנדרטי (SDR) לעומת איכות תמונה בטווח דינמי גבוה (HDR).

ב-Android 16 אנחנו ממשיכים את המאמצים שלנו לספק איכות תמונה מרהיבה באמצעות תמונות UltraHDR. נוספה תמיכה בתמונות UltraHDR בפורמט הקובץ HEIC. התמונות האלה יקבלו את הסוג ImageFormat HEIC_ULTRAHDR ויכללו מפת רווח מוטמעת (gainmap) שדומה לפורמט הקיים של UltraHDR JPEG. אנחנו עובדים גם על תמיכה ב-AVIF ב-UltraHDR, אז כדאי להמשיך להתעדכן.

בנוסף, ב-Android 16 מוטמעים פרמטרים נוספים ב-UltraHDR מטיוטת התקן ISO 21496-1, כולל היכולת לקבל ולהגדיר את מרחב הצבעים שבו צריך להחיל את החישובים של מפת הרווח, וגם תמיכה בתמונות בסיסיות בקידוד HDR עם מפות רווח של SDR.

גרפיקה

‫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 System Updates ו-Google Play Services, התכונה נתמכת כבר מ-Android 4.4 (רמת API‏ 19). לשילוב נדרשות רק כמה שורות קוד עם ספריית Android Jetpack המשויכת.

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

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

Advanced Professional Video

ב-Android 16 נוספה תמיכה בקודק Advanced Professional Video‏ (APV), שנועד לשימוש ברמה מקצועית להקלטת וידאו באיכות גבוהה ולפוסט-פרודקשן.

תקן הקודק APV כולל את התכונות הבאות:

  • איכות וידאו ללא אובדן מידע נתפס (קרוב לאיכות וידאו גולמי)
  • קידוד בתוך פריים בלבד (ללא חיזוי של תחום הפיקסלים) עם מורכבות נמוכה ונתונים רבים, כדי לתמוך טוב יותר בתהליכי עבודה של עריכה
  • תמיכה בטווח של קצב ביט גבוה עד כמה Gbps לתוכן ברזולוציות 2K, ‏ 4K ו-8K, באמצעות סכימה קלה של קידוד אנטרופי
  • יצירת משבצות של פריימים לתוכן immersive ולאפשרות קידוד ופענוח במקביל
  • תמיכה בפורמטים שונים של דגימת צבע ובעומק ביט שונים
  • תמיכה במספר פענוחים וקידוד מחדש ללא פגיעה משמעותית באיכות החזותית
  • תמיכה בסרטונים של צפייה בכמה משחקים בו-זמנית ובסרטונים משניים כמו סרטוני עומק, סרטוני אלפא וסרטוני תצוגה מקדימה
  • תמיכה ב-HDR10/10+ ובמטא-נתונים מוגדרים על ידי משתמשים

יישום עזר של APV זמין דרך פרויקט OpenAPV. ב-Android 16 תהיה תמיכה בפרופיל APV 422-10, שמספק דגימת צבע YUV 422 עם קידוד 10 ביט, וקצב נתונים יעד של עד 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 נוספה תמיכה ברמה נמוכה ברינדור ובמדידה של טקסט אנכית, כדי לספק לתכנת הספריות תמיכה בסיסית בכתיבה אנכית. האפשרות הזו שימושית במיוחד בשפות כמו יפנית, שבהן נעשה שימוש נפוץ בכתב אנכי. הוספנו דגל חדש, 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' אצל משתמש שהגדיר את הטלפון לאנגלית (דנמרק) או משתמש שמשתמש בטלפון באנגלית (ארה"ב) עם המערכת המטרית כמערכת המדידה המועדפת.

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