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במניפסט של האפליקציה. למידע נוסף, אפשר לעיין בהוראות בנושא יצירת קובץ משאבים והצהרה עליו בקובץ המניפסט של האפליקציה.ממשקי API נוספים: ממשקי ה-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. בנוסף, בוצעו שינויים בעיבוד של הפניות בזמן ריצה כדי שיהיה ברובו לא חוסם, וכך צומצם עוד יותר ה-jank. בנוסף, אפשר להשתמש ב-API הציבורי Reference.refersTo() כדי לשחזר אובייקטים שלא ניתן להגיע אליהם מוקדם יותר, ותוכלו להבחין שהמתורגמן מהיר יותר עכשיו בזכות חיפושים אופטימליים של מחלקות ושיטות. בנוסף, ART מבצע אימות נוסף של בייטקוד בזמן ההתקנה, וכך נמנעות עלויות האימות בזמן הריצה וזמני ההפעלה של האפליקציה נשארים מהירים.
פרטיות ואבטחה
ייצוא בטוח יותר של מקלטים שרשומים בהקשר
כדי להפוך את מקלטי השידורים בזמן ריצה לבטוחים יותר, ב-Android 13 נוספה אפשרות לאפליקציה לציין אם מקלט שידורים רשום צריך להיות מיוצא וגלוי לאפליקציות אחרות במכשיר. בגרסאות קודמות של Android, כל אפליקציה במכשיר יכולה לשלוח שידור לא מוגן למקלט שרשום באופן דינמי, אלא אם המקלט מוגן על ידי הרשאת חתימה.
הגדרת הייצוא הזו זמינה באפליקציות שמבצעות לפחות אחת מהפעולות הבאות:
- משתמשים במחלקה
ContextCompatמגרסה 1.9.0 ואילך של ספריית AndroidX Core. - טרגוט ל-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 (AGSL). התחביר של AGSL דומה מאוד לזה של GLSL, אבל הוא פועל במנוע העיבוד של Android כדי להתאים אישית את הציור בבד הציור של Android, וגם כדי לסנן את התוכן של View.
מערכת Android משתמשת ב-shaders האלה באופן פנימי כדי להטמיע אפקטים של אדוות, טשטוש ומתיחה של גלילה מעבר לקצה.
ב-Android מגרסה 13 ומעלה אפשר ליצור אפקטים מתקדמים דומים לאפליקציה.
שיפורים בכוריאוגרף
ב-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 }
אפליקציות יכולות לעקוב אחרי שינוי בהעדפות המשתמש על ידי הוספת listener ל-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 כדי להתאים לגרסת OpenJDK 11 LTS, עם עדכוני ספריות ותמיכה בשפת 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.utilOptional,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 ו/או של השותפים העצמאיים שלה.