ב-Android 16 יש פיצ'רים חדשים וממשקי 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
אפשר לציין מצבים ואבני דרך בתהליך השימוש של המשתמש באמצעות נקודות ופלחים.
To learn more, see the Progress-centric notifications documentation page.


עדכונים של חיזוי החזרה
ב-Android 16 נוספו ממשקי API חדשים שיעזרו לכם להפעיל אנימציות מערכת חזרה חזויות בניווט באמצעות תנועות, כמו אנימציה של חזרה לדף הבית. רישום ה-onBackInvokedCallback
באמצעות PRIORITY_SYSTEM_NAVIGATION_OBSERVER
החדש מאפשר לאפליקציה לקבל את הקריאה הרגילה onBackInvoked
בכל פעם שהמערכת מטפלת בניווט לאחור, בלי להשפיע על תהליך הניווט לאחור הרגיל.
ב-Android 16 נוספו גם הסמלים finishAndRemoveTaskCallback()
ו-moveTaskToBackCallback
. כשרושמים את הפונקציות האלה באמצעות OnBackInvokedDispatcher
, המערכת יכולה להפעיל התנהגויות ספציפיות ולהפעיל אנימציות מתאימות מראש כשמפעילים את תנועת החזרה.
משוב פיזי עשיר יותר
Android has exposed control over the haptic actuator ever since its inception.
Android 11 added support for more complex haptic effects that more advanced
actuators could support through
VibrationEffect.Compositions
of device-defined semantic
primitives.
Android 16 adds haptic APIs that let apps define the amplitude and frequency curves of a haptic effect while abstracting away differences between device capabilities.
כלים ודרכים לשיפור הפרודוקטיביות של מפתחים
רוב העבודה שלנו לשיפור הפרודוקטיביות מתמקדת בכלים כמו 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
was added in Android
15, allowing an app to see reasons
for process start, start type, start times, throttling, and other useful
diagnostic data. Android 16 adds
getStartComponent()
to distinguish what component type triggered the start, which can be helpful for
optimizing the startup flow of your app.
בדיקה עצמית משופרת של משימות
The JobScheduler#getPendingJobReason()
API returns a reason why a job
might be pending. However, a job might be pending for multiple reasons.
In Android 16, we are introducing a new API
JobScheduler#getPendingJobReasons(int jobId)
, which returns multiple
reasons why a job is pending, due to both explicit constraints set by the
developer and implicit constraints set by the system.
We're also introducing
JobScheduler#getPendingJobReasonsHistory(int jobId)
, which returns a list
of the most recent constraint changes.
We recommend using the API to help you debug why your jobs may not be executing, especially if you're seeing reduced success rates of certain tasks or have bugs around latency of certain job completion. For example, updating widgets in the background failed to occur or prefetch job failed to be called prior to app start.
This can also better help you understand if certain jobs are not completing due to system defined constraints versus explicitly set constraints.
קצב רענון דינמי
שיעור הרענון המותאם (ARR), שהוצג ב-Android 15, מאפשר לשיעור הרענון של המסך בחומרה נתמכת להתאים את עצמו לשיעור הפריימים של התוכן באמצעות שלבים נפרדים של VSync. כך אפשר לצמצם את צריכת החשמל ולחסוך את הצורך במעבר בין המצבים, שעלול לגרום לתנודות בפריימים.
ב-Android 16 נוספו hasArrSupport()
ו-getSuggestedFrameRate(int)
, תוך שחזור של getSupportedRefreshRates()
, כדי שיהיה קל יותר לאפליקציות שלכם לנצל את ARR. RecyclerView 1.4 תומך באופן פנימי ב-ARR כשהוא מתייצב אחרי תנועה מהירה או גלילה חלקה, ואנחנו ממשיכים לעבוד כדי להוסיף תמיכה ב-ARR לספריות נוספות של Jetpack. במאמר הזה מוסבר על הרבה ממשקי API שאפשר להשתמש בהם כדי להגדיר את קצב הפריימים, כך שהאפליקציה תוכל להשתמש ישירות ב-ARR.
ממשקי Headroom API ב-ADPF
The SystemHealthManager
introduces the
getCpuHeadroom
and
getGpuHeadroom
APIs, designed to provide games and
resource-intensive apps with estimates of available CPU and GPU resources. These
methods offer a way for you to gauge how your app or game can best improve
system health, particularly when used in conjunction with other Android Dynamic
Performance Framework (ADPF) APIs that detect thermal
throttling.
By using CpuHeadroomParams
and
GpuHeadroomParams
on supported devices, you can
customize the time window used to compute the headroom and select between
average or minimum resource availability. This can help you reduce your CPU or
GPU resource usage accordingly, leading to better user experiences and improved
battery life.
נגישות
ב-Android 16 נוספו תכונות וממשקי API חדשים לנגישות, שיכולים לעזור לכם להנגיש את האפליקציה לכל המשתמשים.
ממשקי API משופרים לנגישות
ב-Android 16 נוספו ממשקי API נוספים לשיפור הסמנטיקה של ממשק המשתמש, כדי לשפר את העקביות למשתמשים שמסתמכים על שירותי נגישות, כמו TalkBack.
קו מתאר של הטקסט כדי לשפר את הניגודיות של הטקסט
לרוב, למשתמשים עם ליקויי ראייה יש רגישות נמוכה יותר לניגודיות, ולכן קשה להם להבחין בין אובייקטים לבין הרקעים שלהם. כדי לעזור למשתמשים האלה, ב-Android 16 הוספנו טקסט עם קו מתאר, שמחליף את הטקסט בניגודיות גבוהה. הטקסט עם קו מתאר כולל אזור ניגודיות גדול יותר סביב הטקסט כדי לשפר את הקריאוּת שלו.
מערכת Android 16 כוללת ממשקי API חדשים של AccessibilityManager
שמאפשרים לאפליקציות לבדוק או לרשום מאזין כדי לבדוק אם המצב הזה מופעל. האפשרות הזו מיועדת בעיקר לערכות כלים של ממשק משתמש, כמו Compose, כדי לספק חוויה חזותית דומה. אם אתם מנהלים ספרייה של UI Toolkit או שהאפליקציה שלכם מבצעת עיבוד טקסט מותאם אישית שעובר על פני הכיתה android.text.Layout
, תוכלו להשתמש בזה כדי לדעת מתי הטקסט בקו מתאר מופעל.

משך הזמן נוסף ל-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 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.
פקדי עוצמת קול בסביבה למכשירי שמיעה של LEA
ב-Android 16 נוספה למשתמשים במכשירי שמיעה עם LE Audio היכולת לשנות את עוצמת הצליל של הסביבה שנקלט במיקרופונים של מכשיר השמיעה. האפשרות הזו יכולה להיות שימושית במצבים שבהם רעשי הרקע רועשים מדי או שקטים מדי.
מצלמה
ב-Android 16 יש שיפור בתמיכה למשתמשי מצלמה מקצועית, שמאפשר חשיפה אוטומטית היברידית יחד עם התאמות מדויקות של טמפרטורת הצבע והגוון. הוספנו אינדיקטור חדש למצב לילה כדי לעזור לאפליקציה לדעת מתי לעבור לסשן מצלמה במצב לילה ומתי לצאת ממנו. פעולות Intent
חדשות מאפשרות לצלם בקלות תמונות וסרטונים בתנועה, ואנחנו ממשיכים לשפר את התמונות בפורמט UltraHDR עם תמיכה בקידוד HEIC ופרמטרים חדשים מטיוטת התקן ISO 21496-1.
חשיפה אוטומטית היברידית
ב-Android 16 נוספו ל-Camera2 מצבי חשיפה אוטומטית היברידיים חדשים, שמאפשרים לשלוט באופן ידני בהיבטים ספציפיים של החשיפה, בזמן שהאלגוריתם של החשיפה האוטומטית (AE) מטפל בשאר הדברים. תוכלו לשלוט ב-ISO + AE וב-זמן חשיפה + AE, וכך ליהנות מגמישות רבה יותר בהשוואה לגישה הנוכחית שבה יש לכם שליטה ידנית מלאה או שאתם מסתמכים לחלוטין על חשיפה אוטומטית.
public void setISOPriority() {
...
int[] availablePriorityModes =
mStaticInfo.getCharacteristics().get(CameraCharacteristics.
COLOR_AE_AVAILABLE_PRIORITY_MODES);
...
// 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);
reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
TEST_SENSITIVITY_VALUE);
CaptureRequest request = reqBuilder.build();
...
}
התאמות מדויקות של טמפרטורת הצבע והגוון
ב-Android 16 נוספה תמיכה במצלמה לכוונון עדין של טמפרטורת הצבע והגוון, כדי לתמוך טוב יותר באפליקציות מקצועיות להקלטת וידאו. בגרסאות קודמות של Android, אפשר היה לשלוט בהגדרות של איזון הלבן דרך CONTROL_AWB_MODE
, שמכילה אפשרויות מוגבלות לרשימת הגדרות מוגדרות מראש, כמו נורות ליבון, ענן ושקיעה. הלחצן COLOR_CORRECTION_MODE_CCT
מאפשר להשתמש בלחצנים COLOR_CORRECTION_COLOR_TEMPERATURE
ו-COLOR_CORRECTION_COLOR_TINT
כדי לבצע התאמות מדויקות של איזון הלבן על סמך טמפרטורת הצבע המתאימה.
public void setCCT() {
...
Range<Integer> colorTemperatureRange =
mStaticInfo.getCharacteristics().get(CameraCharacteristics.
COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE);
// Set to manual mode to enable CCT mode
reqBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF);
reqBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE,
CameraMetadata.COLOR_CORRECTION_MODE_CCT);
reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE, 5000);
reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TINT, 30);
CaptureRequest request = reqBuilder.build();
...
}
בדוגמאות הבאות אפשר לראות איך נראית תמונה אחרי שמחילים עליה התאמות שונות של טמפרטורת הצבע והגוון:





זיהוי סצנות במצב לילה במצלמה
כדי לעזור לאפליקציה לדעת מתי לעבור לסשן צילום במצב לילה ומתי לצאת ממנו, נוסף ל-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, ומשתמש בתשתית וביכולות שלו כדי לאפשר הטמעה רחבה יותר ופריסה קלה יותר.
ממשקי API גנרטיביים למדידת טווח
Android 16 includes the new RangingManager
, which provides
ways to determine the distance and angle on supported hardware between the local
device and a remote device. RangingManager
supports the usage of a variety of
ranging technologies such as BLE channel sounding, BLE RSSI-based ranging, Ultra
Wideband, and Wi-Fi round trip time.
מדיה
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 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 עם הסכמה מפורשת של המשתמש. ממשק ה-API הזה נמצא בתוכנית גישה מוקדמת. אם אתם רוצים להשתתף, עליכם להירשם לתוכנית הגישה המוקדמת.
ארגז החול לפרטיות ב-Android
גרסת Android 16 כוללת את הגרסה העדכנית ביותר של ארגז החול לפרטיות ב-Android, כחלק מהעבודה המתמשכת שלנו לפיתוח טכנולוגיות שמאפשרות למשתמשים לדעת שהפרטיות שלהם מוגנת. באתר שלנו יש מידע נוסף על 'ארגז החול לפרטיות' בתוכנית הבטא למפתחי Android, שיעזור לכם להתחיל. כדאי לבדוק את זמן הריצה ל-SDK, שמאפשר לערכות SDK לפעול בסביבת זמן ריצה ייעודית בנפרד מהאפליקציה שבה הן פועלות, ומספק אמצעי הגנה חזקים יותר בנושא איסוף ושיתוף של נתוני משתמשים.
אבטחה
Android 16 כולל תכונות שיעזרו לכם לשפר את האבטחה של האפליקציה ולהגן על הנתונים שלה.
API לשיתוף מפתחות
Android 16 adds APIs that support sharing access to
Android Keystore keys with other apps. The new
KeyStoreManager
class supports
granting and revoking access to keys
by app uid, and includes an API for apps to access shared
keys.
גורמי צורה של מכשירים
ב-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' אצל משתמש שהגדיר את הטלפון לאנגלית (דנמרק) או משתמש שמשתמש בטלפון באנגלית (ארה"ב) עם המערכת המטרית כמערכת המדידה המועדפת.
כדי למצוא את ההגדרות האלה, פותחים את אפליקציית ההגדרות ועוברים אל מערכת > שפות ואזור.