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

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

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

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

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

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

שתי גרסאות של Android API בשנת 2025

  • התצוגה המקדימה הזו מיועדת לגרסה הראשית הבאה של Android, שתושק ברבעון השני של שנת 2025. הגרסה הזו דומה לכל הגרסאות הקודמות של ה-API, שבהן יכולים להיות שינויים מתוכננים בהתנהגות, שקשורים לרוב ל-targetSdkVersion.
  • אנחנו מתכננים את הגרסה הראשית רבעון מוקדם יותר (ברבעון השני במקום ברבעון השלישי בשנים קודמות), כדי להתאים את לוח הזמנים שלה ללוח הזמנים של השקות המכשירים בסביבה העסקית שלנו, וכך יותר מכשירים יוכלו לקבל את הגרסה הראשית של Android מוקדם יותר. הגרסה העיקרית תשוחרר ברבעון השני של השנה, ולכן תצטרכו לבצע את בדיקת התאימות השנתית כמה חודשים מוקדם יותר מאשר בשנים קודמות כדי לוודא שהאפליקציות שלכם מוכנות.
  • אנחנו מתכננים להשיק גרסה נוספת ברבעון 4 של שנת 2025, שגם תכלול ממשקי API חדשים למפתחים. הגרסה הראשית של הרבעון השני תהיה הגרסה היחידה בשנת 2025 שתכלול שינויים מתוכננים בהתנהגות שעשויים להשפיע על אפליקציות.

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

תצוגת ציר זמן של גרסאות Android בשנת 2025. חשוב לזכור שהגרסה שתשוחרר ברבעון השני של 2025 היא גרסה ראשית, והגרסה שתשוחרר ברבעון הרביעי של 2025 היא גרסה משנית.

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

שימוש בממשקי API חדשים עם גרסאות ראשיות ומשנה

היום אפשר להגן על בלוק קוד באמצעות בדיקה של רמת ה-API באמצעות הקבוע SDK_INT עם VERSION_CODES. התמיכה באפשרות הזו תמשיך לפעול בגרסאות הראשיות של 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
}

אפשר גם להשתמש ב-method‏ 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 נוספה תמיכה באפקטים הקטנים והחושתיים (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 כדי לנפות באגים ולגלות למה המשימות לא מתבצעות, במיוחד אם נתוני ההצלחה של משימות מסוימות נמוכים או אם יש באגים בזמן האחזור של משימות מסוימות. לדוגמה, העדכון של הווידג'טים ברקע נכשל או שהקריאה למשימה של אחסון נתונים לפני האצת האפליקציה נכשלה לפני הפעלת האפליקציה.

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

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

Android 15 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 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_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_CAPTURE ו-ACTION_MOTION_PHOTO_CAPTURE_SECURE – שמבקשות מאפליקציית המצלמה לצלם תמונה בתנועה ולהחזיר אותה.

צריך להעביר EXTRA_OUTPUT נוסף כדי לקבוע לאן התמונה תירשם, או Uri דרך Intent.setClipData(ClipData). אם לא תגדירו 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 נוספו RuntimeColorFilter ו-RuntimeXfermode, שמאפשרים ליצור אפקטים מורכבים כמו Threshold‏, Sepia ו-Hue Saturation ולהחיל אותם על קריאות לציור. החל מגרסה Android 13, אפשר להשתמש ב-AGSL כדי ליצור RuntimeShaders בהתאמה אישית שמרחיבים את Shader. ה-API החדש משקף את זה, ומוסיף את RuntimeColorFilter שמבוסס על AGSL ומרחיב את 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 במכשירים נתמכים עם 802.11az של Wi-Fi 6. התכונות האלה מאפשרות לאפליקציות לשלב בין הדיוק הגבוה יותר, יכולת ההתאמה לעומס הגדולה יותר והתזמון הדינמי של הפרוטוקול עם שיפורים באבטחה, כולל הצפנה מבוססת AES-256 והגנה מפני התקפות MITM. כך אפשר להשתמש בה בבטחה רבה יותר בתרחישי שימוש בסביבה הקרובה, כמו ביטול הנעילה של מחשב נייד או של דלת רכב. 802.11az משתלב בתקן Wi-Fi 6, ומשתמש בתשתית וביכולות שלו כדי לאפשר הטמעה רחבה יותר ופריסה קלה יותר.

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

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

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

ב-Android 16 נוספו ממשקי API חדשים לקישור של שירות האפליקציה הנלווית. השירות יקושר כש-BLE נמצא בטווח וחיבור ה-Bluetooth פועל, והוא ינותק כש-BLE יהיה מחוץ לטווח או כשחיבור ה-Bluetooth ינותק. האפליקציה תקבל קריאה חוזרת חדשה מסוג '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 כולל את התכונות הבאות:

  • איכות וידאו ללא אובדן מידע נתפס (קרוב לאיכות וידאו גולמי)
  • קידוד בתוך פריים בלבד (ללא חיזוי של תחום הפיקסלים) עם מורכבות נמוכה ונתונים רבים, כדי לתמוך טוב יותר בתהליכי עבודה של עריכה
  • תמיכה בטווח של קצב ביט גבוה עד כמה 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 כוללת את הגרסה העדכנית ביותר של ארגז החול לפרטיות ב-Android, כחלק מהעבודה המתמשכת שלנו לפיתוח טכנולוגיות שמאפשרות למשתמשים לדעת שהפרטיות שלהם מוגנת. באתר שלנו יש מידע נוסף על 'ארגז החול לפרטיות' בתוכנית הבטא למפתחי Android, שיעזור לכם להתחיל. כדאי לבדוק את זמן הריצה ל-SDK, שמאפשר לערכות SDK לפעול בסביבת זמן ריצה ייעודית בנפרד מהאפליקציה שבה הן פועלות, ומספק אמצעי הגנה חזקים יותר בנושא איסוף ושיתוף של נתוני משתמשים.

אבטחה

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

Key sharing API

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

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

用户现在可以在“设置”中的地区偏好设置中自定义测量系统。用户偏好设置包含在语言区域代码中,因此您可以在 ACTION_LOCALE_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。

使用格式设置程序有助于提供符合当地体验的服务。例如,对于将手机设置为英语(丹麦)或将手机设置为英语(美国)并将公制作为首选测量系统的用户,“0.5 in”的英语(美国)对应于“12,7 mm”。

如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和地区