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

החל מ-Android 13, אפשר להפעיל סמלי אפליקציות עם עיצוב מותאם. באמצעות התכונה הזו, סמלי האפליקציות בלאנצ'רים נתמכים של Android מקבלים גוון שמשלים את הצבעים של הטפט והערכות הנושא האחרות שהמשתמש בחר.
כדי לתמוך בתכונה הזו, האפליקציה צריכה לספק גם סמל דינמי וגם סמל אפליקציה מונוכרומטי, ולציין את סמל האפליקציה המונוכרומטי מרכיב <adaptive-icon>
במניפסט. אם משתמש הפעיל סמלי אפליקציות עם עיצוב (כלומר, העביר את המתג סמלים עם עיצוב בהגדרות המערכת למצב מופעל), ומפעיל האפליקציות תומך בתכונה הזו, המערכת משתמשת בצבעים של הטפט והעיצוב שהמשתמש בחר כדי לקבוע את גוון הצבע, ואז היא מיישמת אותו על סמל האפליקציה המונוכרומטי.
הסמל של האפליקציה עם ערכת הנושא לא מוצג במסך הבית – במקום זאת מוצג הסמל הרגיל או הסמל הדינמי של האפליקציה – באף אחד מהתרחישים הבאים:
- אם המשתמש לא הפעיל סמלי אפליקציות מעוצבים
- אם האפליקציה לא מספקת סמל אפליקציה מונוכרומטי
- אם מרכז האפליקציות לא תומך בסמלי אפליקציות מעוצבים
פרטים נוספים והוראות זמינים במאמר סמלים דינמיים.
העדפות שפה לכל אפליקציה

במקרים רבים, משתמשים דו-לשוניים מגדירים את שפת המערכת שלהם לשפה אחת – למשל אנגלית – אבל הם רוצים לבחור שפות אחרות לאפליקציות ספציפיות, כמו הולנדית, סינית או הינדי. כדי לעזור לאפליקציות לספק חוויה טובה יותר למשתמשים האלה, ב-Android 13 הוספנו את התכונות הבאות לאפליקציות שתומכות בכמה שפות:
הגדרות המערכת: מיקום מרכזי שבו המשתמשים יכולים לבחור שפה מועדפת לכל אפליקציה.
כדי שהמערכת תדע שהאפליקציה תומכת בכמה שפות, צריך להצהיר על מאפיין
android:localeConfig
במניפסט של האפליקציה. מידע נוסף מופיע בהוראות בנושא יצירת קובץ משאבים והצהרה עליו בקובץ המניפסט של האפליקציה.APIs נוספים: ממשקי ה-API הציבוריים האלה, כמו השיטות
setApplicationLocales()
ו-getApplicationLocales()
ב-LocaleManager
, מאפשרים לאפליקציות להגדיר שפה שונה משפת המערכת בזמן הריצה.ממשקי ה-API האלה מסתנכרנים אוטומטית עם הגדרות המערכת. לכן, אפליקציות שמשתמשות בממשקי ה-API האלה כדי ליצור כלי לבחירת שפה בהתאמה אישית בתוך האפליקציה, יבטיחו שלמשתמשים תהיה חוויית משתמש עקבית, לא משנה איפה הם בוחרים את העדפות השפה שלהם. ממשקי ה-API הציבוריים גם עוזרים לכם להפחית את כמות קוד ה-boilerplate, הם תומכים ב-APK מפוצל והם תומכים בגיבוי אוטומטי לאפליקציות כדי לאחסן את הגדרות שפת המשתמש ברמת האפליקציה.
כדי לשמור על תאימות לאחור עם גרסאות קודמות של Android, ממשקי API מקבילים זמינים גם ב-AndroidX. מומלץ להשתמש בממשקי ה-API שנוספו ב-Appcompat 1.6.0-beta01 ואילך.
השינויים האלה לא משפיעים על אפליקציות שלא תומכות בריבוי שפות.
שיפור התמיכה בטקסט ובשפה
Android 13 כולל כמה שיפורים בטקסט ובשפה שעוזרים לכם לספק חוויה טובה יותר. בקישורים הבאים מפורטים השיפורים האלה:
מהירות מהירה יותר של מקפים
הוספת מקפים מקלה על קריאת הטקסט שמוצג בשורות נפרדות ועוזרת להפוך את ממשק המשתמש ליותר גמיש. החל מ-Android 13, הביצועים של ההברה מופרדת במקף עברו אופטימיזציה של עד 200%, כך שאפשר להפעיל אותה ב-TextView
כמעט ללא השפעה על ביצועי העיבוד. כדי להפעיל מהירות מהירה יותר של מקפים, משתמשים בתדרים
fullFast
או
normalFast
בsetHyphenationFrequency()
.
ממשקי API להמרת טקסט
אנשים שמדברים שפות כמו יפנית וסינית משתמשים בשיטות קלט של תווים פונטיים, שלעתים קרובות מאטות את החיפוש ואת התכונות כמו השלמה אוטומטית. ב-Android 13, אפליקציות יכולות להפעיל את ה-API החדש להמרת טקסט כדי שהמשתמשים יוכלו למצוא את מה שהם מחפשים בקלות ובמהירות. לדוגמה, בעבר, כדי לבצע חיפוש, משתמשים ביפן היו צריכים לבצע את השלבים הבאים:
- הזנת היראגאנה כהגייה פונטית של מונח החיפוש (למשל שם של מקום או של אפליקציה)
- שימוש במקלדת כדי להמיר את התווים של היראגאנה לקאנג'י
- חיפוש מחדש באמצעות סימני הקאנג'י
- לבסוף, מקבלים את תוצאות החיפוש
בעזרת ה-API החדש להמרת טקסט, משתמשים ביפנית יכולים להקליד בכתב היראגנה ולראות מיד תוצאות חיפוש בכתב קאנג'י, בלי לבצע את שלבים 2 ו-3.
שיפור גובה השורה בסקריפטים שאינם לטיניים
ב-Android 13, התצוגה של סקריפטים שאינם לטיניים (כמו טמילית, בורמזית, טלוגו וטיבטית) משופרת באמצעות גובה שורה שמותאם לכל שפה. גובה השורה החדש מונע חיתוך ומשפר את מיקום התווים. כדי שהאפליקציה שלכם תנצל את השיפורים האלה, כל מה שצריך לעשות הוא לטרגט ל-Android 13. חשוב לבדוק את האפליקציות כשמשתמשים במרווח השורות החדש, כי השינויים עשויים להשפיע על ממשק המשתמש בשפות שאינן לטיניות.

שיפור בגלישת טקסט ביפנית
החל מ-Android 13, אפשר להגדיר ב-TextViews גלישת טקסט לפי Bunsetsu (היחידה הקטנה ביותר של מילים שנשמעת טבעית) או לפי ביטויים, במקום לפי תווים, כדי ליצור אפליקציות יפניות מלוטשות וקריאות יותר. כדי להשתמש בהעברה הזו לשורה הבאה, אפשר להשתמש ב-android:lineBreakWordStyle="phrase"
עם TextViews.

עדכונים בספריית Unicode
ב-Android 13 נוספו השיפורים, התיקונים והשינויים האחרונים שכלולים ב-Unicode ICU 70, Unicode CLDR 40 ו-Unicode 14.0.
אלה כמה מהשינויים הבולטים:
- אנגלית (קנדה)
en‑CA
ואנגלית (הרפובליקה של הפיליפינים)en‑PH
משתמשות במשאבי תרגום של אנגלית (ארצות הברית)en
כשאין משאבי תרגום זמינים, במקום באנגלית (בריטניה)en‑GB
. - הוספנו את
many
קטגוריית הרבים לספרדיתes
, לאיטלקיתit
, לפורטוגזיתpt
ולפורטוגזית (פורטוגל)pt‑PT
. בדומה לצרפתית שהוצגה ב-CLDR v38, נעשה שימוש בפורמט הזה למספרים גדולים.
גופנים וקטוריים צבעוניים

החל מ-Android 13, המערכת כוללת תמיכה בעיבוד של גופני COLR בגרסה 1 (COLRv1) ומעדכנת את האימוג'י של המערכת לפורמט COLRv1. COLRv1 הוא פורמט גופן קומפקטי מאוד שמוצג במהירות ובחדות בכל גודל.
ברוב האפליקציות, המערכת מטפלת בכל מה שצריך ופשוט אפשר להשתמש ב-COLRv1. עם זאת, אם האפליקציה שלכם מטמיעה עיבוד טקסט משלה ומשתמשת בגופנים של המערכת, מומלץ לבדוק את עיבוד האימוג'י.
מידע נוסף על COLRv1 זמין במקורות המידע הבאים:
- ההודעה בבלוג של מפתחי Chrome
- משלוח גופנים וקטוריים צבעוניים מסוג COLRv1 ב-Chrome (סרטון)
- מפרט טבלת COLR
Quick Settings placement API
ההגדרות המהירות בחלונית ההתראות מאפשרות למשתמשים לשנות הגדרות או לבצע פעולות במהירות בלי לצאת מההקשר של האפליקציה. לאפליקציות שמספקות משבצות מותאמות אישית, אנחנו מקלים על המשתמשים לגלות את המשבצות שלכם ולהוסיף אותן להגדרות המהירות. באמצעות tile placement API חדש, האפליקציה יכולה עכשיו להציע למשתמש להוסיף את הלחצן המותאם אישית ישירות לסט של לחצני ההגדרות המהירות הפעילים. במקום שהמשתמש יצטרך לעבור להגדרות המהירות כדי להוסיף את כרטיס המידע, עכשיו יש תיבת דו-שיח חדשה במערכת שמאפשרת לו להוסיף את כרטיס המידע בשלב אחד, בלי לצאת מהאפליקציה.
תצוגה מקדימה של הלוח
החל מ-Android 13, המערכת מציגה אישור חזותי סטנדרטי כשתוכן מתווסף ללוח. האישור החדש מבצע את הפעולות הבאות:
- מאשרים שהתוכן הועתק בהצלחה.
- תצוגה מקדימה של התוכן שהועתק.
התכונה הזו יוצרת סטנדרטיזציה של ההתראות השונות שמוצגות באפליקציות אחרי העתקה, ומאפשרת למשתמשים יותר שליטה בלוח העריכה שלהם. מידע נוסף זמין בדף התכונה העתקה והדבקה.

חיזוי תנועת החזרה
ב-Android 13 הוצגה תנועת חזרה ניבויית למכשירי Android, כמו טלפונים, מסכים גדולים ומכשירים מתקפלים. כדי לתמוך בתכונה הזו, צריך לעדכן את האפליקציה.
לעיון בתיעוד מפורט, אפשר לקרוא את המאמר בנושא עדכון האפליקציה כדי לתמוך בתנועת חזרה עם חיזוי. אפשר גם לנסות את ה-codelab שלנו.
Bluetooth LE Audio
LE Audio הוא אודיו אלחוטי שנועד להחליף את Bluetooth classic ולאפשר תרחישי שימוש מסוימים וטופולוגיות חיבור. האפליקציות האלה מאפשרות למשתמשים לשתף את האודיו שלהם עם חברים ובני משפחה, או להירשם לשידורים ציבוריים כדי לקבל מידע, בידור או גישה. הטכנולוגיה הזו נועדה להבטיח שהמשתמשים יוכלו לקבל אודיו באיכות גבוהה בלי לפגוע בחיי הסוללה, ולעבור בצורה חלקה בין תרחישי שימוש שונים שלא אפשריים עם Bluetooth Classic. החל מ-Android 13, המערכת כוללת תמיכה מובנית ב-LE Audio, כך שמפתחים מקבלים את היכולות האלה בחינם במכשירים תואמים.
MIDI 2.0
החל מ-Android 13, המערכת כוללת תמיכה בתקן MIDI 2.0, כולל היכולת לחבר חומרת MIDI 2.0 באמצעות USB. התקן הזה מציע תכונות כמו רזולוציה גבוהה יותר לבקרים, תמיכה טובה יותר באינטונציה לא מערבית וביצועים יותר אקספרסיביים באמצעות בקרים לכל תו.
שיפורים ביעילות של מסך הפתיחה
Android 13 משפר את היעילות של מסכי פתיחה מונפשים ב-SplashScreen API:
המערכת מסיקה את משך האנימציה ישירות מתוך
AnimatedVectorDrawable
. לפני Android 13, היה צריך להגדיר אתwindowSplashScreenAnimationDuration
ישירות.כדי לשלוט טוב יותר בשאלה אם האפליקציה תמיד תציג את הסמל במסך הפתיחה ב-Android 13 ואילך, אפשר להשתמש במאפיין
windowSplashScreenBehavior
החדש.
לעיון בתיעוד מפורט, אפשר לעבור אל מסכי פתיחה.
אופטימיזציה של ART
ב-Android 13 (רמת API 33) ומעלה, ART מאפשר מעבר מהיר הרבה יותר אל קוד מקורי וממנו, וקריאות JNI מהירות עכשיו עד פי 2.5. גם העיבוד של הפניות בזמן ריצה שופר כדי שלא יחסום את הפעולה ברוב המקרים, וכך יצמצם עוד יותר את הבעיות בביצועים. בנוסף, אפשר להשתמש ב-API הציבורי Reference.refersTo()
כדי לשחזר אובייקטים שלא ניתן להגיע אליהם מוקדם יותר, ותוכלו להבחין שהמתורגמן מהיר יותר עכשיו בזכות חיפושים אופטימליים של מחלקות ושיטות. בנוסף, ART מבצע אימות נוסף של בייטקוד בזמן ההתקנה, וכך נמנעת העלות של אימות בזמן הריצה והאפליקציה מופעלת במהירות.
פרטיות ואבטחה
ייצוא בטוח יותר של מקלטים שרשומים בהקשר
כדי להפוך את מקלטי השידורים בזמן ריצה לבטוחים יותר, ב-Android 13 נוספה אפשרות לאפליקציה לציין אם מקלט שידורים רשום צריך להיות מיוצא וגלוי לאפליקציות אחרות במכשיר. בגרסאות קודמות של Android, כל אפליקציה במכשיר יכולה לשלוח שידור לא מוגן למקלט שנרשם באופן דינמי, אלא אם המקלט מוגן על ידי הרשאת חתימה.
הגדרת הייצוא הזו זמינה באפליקציות שמבצעות לפחות אחת מהפעולות הבאות:
- משתמשים במחלקה
ContextCompat
מגרסה 1.9.0 ואילך של ספריית הליבה של AndroidX. - לטרגט ל-Android מגרסה 13 ואילך.
בורר התמונות
Android 13 (API ברמה 33) ומעלה כולל חוויה של כלי לבחירת תמונות. כשמשתמשים מפעילים את האפליקציה שלכם, הם יכולים לבחור תמונות וסרטונים ספציפיים לשיתוף עם האפליקציה, כמו תמונות פרופיל, במקום לתת לאפליקציה גישה לצפייה בכל ספריית המדיה. זו הדרך המומלצת לגשת לתמונות ולסרטונים של המשתמש.
כלי בחירת התמונות מספק פרטיות משופרת למשתמשים כי האפליקציה לא צריכה להצהיר על הרשאות בזמן ריצה. בנוסף, בוחר התמונות מספק ממשק משתמש מובנה וסטנדרטי לאפליקציות, וכך יוצר חוויית משתמש עקבית יותר.
הרשאה חדשה בתחילת ההפעלה למכשירי Wi-Fi בקרבת מקום
ב-Android 13 (רמת API 33) נוספה הרשאת זמן ריצה חדשה בקבוצת ההרשאות NEARBY_DEVICES
לאפליקציות שמנהלות את החיבורים של המכשיר לנקודות גישה סמוכות דרך Wi-Fi. האפליקציות האלה צריכות להצהיר על ההרשאה החדשה, NEARBY_WIFI_DEVICES
, כשהן קוראות לכמה ממשקי API שונים של Wi-Fi.
בנוסף, כל עוד האפליקציות לא מפיקות מיקום פיזי מממשקי ה-API של Wi-Fi, הן לא צריכות להצהיר על ההרשאה ACCESS_FINE_LOCATION
כשהן מטרגטות את Android 13 ואילך.
מידע נוסף על ההרשאה למכשירי Wi-Fi בקרבת מקום
הרשאה חדשה לשימוש בהתראות מדויקות
אם האפליקציה שלכם מטרגטת ל-Android 13 ואילך, אתם יכולים להשתמש בהרשאה
USE_EXACT_ALARM
שמוענקת לאפליקציה באופן אוטומטי. עם זאת, כדי שהאפליקציה תוכל להשתמש בהרשאה הזו, היא צריכה לעמוד לפחות באחד מהקריטריונים הבאים:
- האפליקציה שלך היא אפליקציית שעון מעורר או אפליקציית טיימר.
- האפליקציה שלך היא אפליקציית יומן שמציגה התראות על אירועים קרובים.
אם האפליקציה מגדירה התראות מדויקות אבל לא עומדת באף אחד מהתנאים שמופיעים ברשימה הקודמת, צריך להמשיך להצהיר על ההרשאה SCHEDULE_EXACT_ALARM
ולהיערך למצב שבו המשתמש יסרב להעניק לאפליקציה גישה.
הסרת הרשאות מפתחים
החל מ-Android 13, האפליקציה יכולה לבטל את הגישה להרשאות זמן ריצה שלא נעשה בהן שימוש. ממשק ה-API הזה מאפשר לאפליקציה לבצע משימות לשיפור הפרטיות, כמו:
- הסרת הרשאות שלא בשימוש.
- חשוב לפעול לפי השיטות המומלצות בנושא הרשאות, כדי לשפר את אמון המשתמשים. כדאי להציג למשתמשים תיבת דו-שיח שבה מפורטות ההרשאות שביטלתם באופן יזום.
APK Signature Scheme v3.1
ב-Android 13 נוספה תמיכה ב-APK Signature Scheme v3.1, שהוא שיפור של APK Signature Scheme v3 הקיים. הסכימה הזו פותרת חלק מהבעיות הידועות ב-APK Signature Scheme v3 בנוגע לרוטציה. בפרט, ערכת החתימה v3.1 תומכת בטירגוט של גרסת ה-SDK, שמאפשרת מעבר לגרסה מאוחרת יותר של הפלטפורמה.
סכימת החתימה v3.1 משתמשת במזהה בלוק שלא מזוהה בגרסה 12L ומטה. לכן, הפלטפורמה מחילה את התנהגות החותם הבאה:
- במכשירים עם Android 13 ואילך נעשה שימוש בחותם המסובב בבלוק v3.1.
- במכשירים שמופעלות בהם גרסאות ישנות יותר של Android, המערכת מתעלמת מהחתימה המסובבת ומשתמשת במקום זאת בחתימה המקורית בבלוק v3.0.
לא נדרשת פעולה נוספת באפליקציות שעדיין לא עברו סבב של חתימת האפליקציה. בכל פעם שהאפליקציות האלה בוחרות לבצע רוטציה, המערכת מחילה כברירת מחדל את סכימת החתימה v3.1.
אפליקציות שכבר עברו סבב ורוצות להמשיך להשתמש במפתח החתימה שעבר סבב בבלוק החתימה v3.0 צריכות לעדכן את הקריאה שלהן ל-apksigner
:
apksigner sign --ks keystore.jks | --key key.pk8 --cert cert.x509.pem --rotation-min-sdk-version API_LEVEL [signer_options] app-name.apk
…where API_LEVEL
is 32 or lower.
דיווח שגיאות משופר ב-Keystore וב-KeyMint
באפליקציות שיוצרות מפתחות, Keystore ו-KeyMint מספקים עכשיו אינדיקטורים מפורטים ומדויקים יותר לשגיאות. הוספנו היררכיית מחלקות חריגים בקטע java.security.ProviderException
, עם חריגים ספציפיים ל-Android שכוללים קודי שגיאה של Keystore/KeyMint, ומידע על האפשרות לנסות שוב לבצע את הפעולה אם מתרחשת שגיאה. אפשר גם לשנות את השיטות ליצירת מפתחות ולשימוש בהם (חתימה, הצפנה) כדי להפעיל את החריגים החדשים. הדיווח המשופר על שגיאות לא מוגבל ליצירת מפתחות, ועכשיו הוא אמור לספק לכם את מה שאתם צריכים כדי לנסות שוב ליצור מפתחות.
תמיכה בטאבלטים ובמסכים גדולים
גרסה Android 13 מבוססת על האופטימיזציות לטאבלטים שהוצגו ב-Android 12 ובהשקת התכונות של 12L – כולל אופטימיזציות לממשק המשתמש של המערכת, ריבוי משימות משופר ומצבי תאימות משופרים. במסגרת הבדיקות, חשוב לוודא שהאפליקציות נראות הכי טוב בטאבלטים ובמכשירים אחרים עם מסך גדול.
מידע נוסף על החידושים ועל מה כדאי לבדוק מופיע בדף תמיכה בטאבלטים ובמסכים גדולים.
גרפיקה
גופים מטילי צל שניתנים לתכנות

החל מ-Android 13, המערכת כוללת תמיכה באובייקטים RuntimeShader
שניתן לתכנת, עם התנהגות שמוגדרת באמצעות Android Graphics Shading Language (AGSL). התחביר של AGSL דומה מאוד לזה של GLSL, אבל הוא פועל במנוע העיבוד של Android כדי להתאים אישית את הציור בבד הציור של Android, וגם כדי לסנן את התוכן של View.
מערכת Android משתמשת ב-shaders האלה באופן פנימי כדי להטמיע אפקטים של אדוות, טשטוש וגלילה מוגזמת עם מתיחה.
ב-Android 13 ומעלה אפשר ליצור אפקטים מתקדמים דומים לאפליקציה.
שיפורים ב-Choreographer
ב-Android 13 נוספו שיטות API ציבוריות ל-Choreographer
ול-ASurfaceControl
, שמאפשרות לאפליקציות לקבל מידע נוסף על ציר הזמן האפשרי של הפריימים, ומוסיפות הקשר ל-SurfaceFlinger
לגבי מחזור החיים של הפריימים. בדומה למצב הקודם, אפליקציות יכולות לפרסם קריאה חוזרת (callback) אל Choreographer
ולקבל מידע על ציר הזמן של הפריימים. ב-Android 13 (API
level 33), Choreographer
מחזירה כמה זמני הצגה אפשריים ואת המועדים האחרונים המתאימים לפריימים. האפליקציות יכולות לבחור את זמן ההצגה ואז לעדכן את SurfaceFlinger
לגבי הבחירה. במצב כזה, SurfaceFlinger
לא מנסה להחיל עסקאות או מאגרי נתונים זמניים לפני זמן ההצגה הרצוי.

מצלמה
צילום סרטוני HDR
החל מ-Android 13, Camera2 APIs תומכים בצילום וידאו בטווח דינמי גבוה (HDR), כך שאתם יכולים לצפות בתצוגה מקדימה של תוכן וידאו ב-HDR ולצלם אותו באמצעות המצלמה. בהשוואה לטווח דינמי רגיל (SDR), HDR מציע טווח צבעים רחב יותר ומגדיל את הטווח הדינמי של רכיב הבהירות (מ-100 cd/m2 הנוכחיים לאלפי cd/m2). התוצאה היא איכות וידאו שדומה יותר למציאות, עם צבעים עשירים יותר, נקודות אור בהירות יותר וצללים כהים יותר.
מידע נוסף על צילום סרטוני HDR זמין במאמר בנושא צילום סרטוני HDR.
מדיה
אודיו מרחבי
אודיו מרחבי הוא חוויית אודיו סוחפת שגורמת לתוכן מדיה להישמע מציאותי יותר למשתמשים. פרטים על שילוב עם התכונה הזו מופיעים במאמר בנושא אודיו מרחבי.
ניתוב אודיו מראש
כדי לעזור לאפליקציות מדיה לזהות את נתיב האודיו שלהן, ב-Android 13 נוספו ממשקי API של נתיבי אודיו במחלקה AudioManager
. API getAudioDevicesForAttributes()
מאפשר לאחזר רשימה של מכשירים שאפשר להשתמש בהם להפעלת האודיו שצוין, ו-API getDirectProfilesForAttributes()
עוזר להבין אם אפשר להפעיל את זרם האודיו ישירות. אפשר להשתמש בממשקי ה-API האלה כדי לקבוע את AudioFormat
הטוב ביותר לשימוש עבור רצועת האודיו.
נגישות
התיאור הקולי
ב-Android 13 (רמת API 33) מוצגת העדפת נגישות חדשה ברמת המערכת, שמאפשרת למשתמשים להפעיל תיאורי אודיו בכל האפליקציות. תיאור אודיו הוא טראק קריינות נוסף שבו קריין מדבר במהלך המצגת ומתאר את מה שקורה במסך במהלך הפסקות טבעיות באודיו.
אפליקציות יכולות לפעול לפי ההעדפה של המשתמש לגבי טראקים של תיאור אודיו על ידי שליחת שאילתה עם isAudioDescriptionRequested()
, כמו בקטע הקוד הבא:
Kotlin
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (accessibilityManager.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
Java
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
אפליקציות יכולות לעקוב אחרי שינוי בהעדפות המשתמש על ידי הוספת מאזין ל-AccessbilityManager
:
Kotlin
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
Java
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }
פונקציונליות עיקרית
עדכונים של OpenJDK 11
ב-Android 13 התחלנו לעדכן את ספריות הליבה של Android כדי להתאים לגרסת ה-LTS של OpenJDK 11, עם עדכוני ספריות ותמיכה בשפת Java 11 למפתחי אפליקציות ופלטפורמות. שינויי הליבה בספרייה שהוצגו ב-Android 13 יהיו זמינים גם במכשירי Android 12 באמצעות עדכון מערכת של Google Play למודול ART Mainline.
Android 13 כולל את השינויים הבאים בספריות הליבה:
- תמיכה במילת המפתח
var
למשתנים מקומיים ולפרמטרים של ביטויי למדה. שיטות חדשות במחלקת String:
isBlank()
lines()
repeat()
strip()
stripLeading()
stripTrailing()
תמיכה ב-
Collection.toArray(IntFunction)
כדי להקל על התאמת אוסף למערך.תמיכה ב-
ifPresentOrElse()
,isEmpty()
,orElseThrow()
ו-stream()
בכיתותjava.util
Optional
,OptionalDouble
,OptionalInt
ו-OptionalLong
.תמיכה מורחבת ב-
SocketOptions
כולל שימוש חוזר בשקעים.
NullReader
,NullWriter
,InputStream
,OutputStream
ו-transferTo()
Reader
פונקציות שמעבירות תווים שנקראו אלWriter
.נוספה פונקציונליות לקידוד ולפענוח של כתובות URL באמצעות
Charsets
.
Charset
ל-FileReader
,FileWriter
,PrintStream
וגםPrintWriter
.פונקציות חדשות
transferTo()
,readNBytes()
,readAllBytes()
ו-writeBytes()
ל-ByteArrayInput
אוOutputStream
ו-Input
אוOutputStream
.תמיכה בזמן ריצה ובקומפיילר עבור
java.lang.invoke.VarHandle
.עדכונים
java.util.concurrent
ל-OpenJDK 11 API באמצעותVarHandle
באופן פנימי.
Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.