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

נמשיך להשיק גרסאות של 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
引入了系统触发的性能分析。应用可以注册接收特定触发器(例如冷启动 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 API ב-ADPF
SystemHealthManager
引入了 getCpuHeadroom
和 getGpuHeadroom
API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。
在受支持的设备上使用 CpuHeadroomParams
和 GpuHeadroomParams
,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。
נגישות
ב-Android 16 נוספו ממשקי API ותכונות חדשים של נגישות שיכולים לעזור לכם להנגיש את האפליקציה לכל המשתמשים.
ממשקי API משופרים לנגישות
Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。
为文字添加轮廓,以最大限度地提高文字对比度
视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。
Android 16 包含新的 AccessibilityManager
API,可让您的应用检查或注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout
类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。

向 TtsSpan 添加了时长
Android 16 使用 TYPE_DURATION
扩展了 TtsSpan
,其中包含 ARG_HOURS
、ARG_MINUTES
和 ARG_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
getChecked
和 setChecked(int)
方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isChecked
和 setChecked(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) ...
}
以下示例展示了应用不同色温和色调调整后的照片效果:





זיהוי סצנות במצב לילה במצלמה
כדי לעזור לאפליקציה לדעת מתי לעבור לסשן צילום במצב לילה ומתי לצאת ממנו, נוסף ל-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

ב-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 נוספו 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, ומשתמש בתשתית וביכולות שלו כדי לאפשר הטמעה רחבה יותר ופריסה קלה יותר.
Generic ranging APIs
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 System Updates ו-Google Play Services, התכונה נתמכת כבר מ-Android 4.4 (רמת API 19). לשילוב נדרשות רק כמה שורות קוד עם ספריית Android Jetpack המשויכת.
ב-Android 16 נוספו לשולחן הבחירה של התמונות השיפורים הבאים:
- בורר תמונות מוטמע: ממשקי API חדשים שמאפשרים לאפליקציות להטמיע את הבורר בתוך היררכיית התצוגה שלהן. כך הוא מרגיש כמו חלק משולב יותר באפליקציה, ועדיין מנצל את בידוד התהליכים שמאפשר למשתמשים לבחור מדיה בלי שהאפליקציה תצטרך הרשאות רחבות מדי. כדי למקסם את התאימות לגרסאות השונות של הפלטפורמה ולפשט את השילוב, אם אתם רוצים לשלב את הכלי המוטמע לבחירת תמונות, כדאי להשתמש בספרייה העתידית של Android Jetpack.
- חיפוש בענן בבורר התמונות: ממשקי API חדשים שמאפשרים חיפוש מספק המדיה בענן בבורר התמונות של Android. בקרוב נוסיף פונקציית חיפוש לבורר התמונות.
סרטונים מקצועיים מתקדמים
ב-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.
מסגרת תקנים לאיכות התמונה והאודיו בטלוויזיות
חבילת 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' אצל משתמש שהגדיר את הטלפון לאנגלית (דנמרק) או משתמש שמשתמש בטלפון באנגלית (ארה"ב) עם המערכת המטרית כמערכת המדידה המועדפת.
כדי למצוא את ההגדרות האלה, פותחים את אפליקציית ההגדרות ועוברים אל מערכת > שפות ואזור.