Android 13 כולל תכונות חדשות וממשקי API חדשים למפתחים. בקטעים הבאים תוכלו לקרוא על התכונות של האפליקציות ולהתחיל להשתמש בממשקי ה-API שקשורים אליהן.
רשימה מפורטת של ממשקי API חדשים, ממשקי API שעברו שינוי וממשקי API שהוסרו מופיעה בדוח ההבדלים בין גרסאות ה-API. לפרטים על ממשקי API חדשים, אפשר לעיין בהפניית Android API. ממשקי API חדשים מסומנים כדי שיהיה קל לראות אותם. כדי ללמוד על תחומים שבהם שינויים בפלטפורמה עשויים להשפיע על האפליקציות שלכם, כדאי לעיין בשינויים בהתנהגות ב-Android 13 באפליקציות שמטרגטות את Android 13 ובכל האפליקציות.
פרודוקטיביות וכלים למפתחים
סמלים מעוצבים של אפליקציות
החל מ-Android 13, אפשר להפעיל סמלי אפליקציות עם עיצוב. באמצעות התכונה הזו, סמלי האפליקציות ב-Launchers נתמכים של Android מקבלים גוון שמשלים את הצבעים של הטפט ושל ערכות העיצוב האחרות שהמשתמש בחר.
כדי לתמוך בתכונה הזו, האפליקציה צריכה לספק גם סמל דינמי וגם סמל אפליקציה מונוכרומטי, ולציין את סמל האפליקציה המונוכרומטי מרכיב <adaptive-icon> במניפסט. אם משתמש הפעיל סמלי אפליקציות עם עיצוב (כלומר, העביר את המתג סמלים עם עיצוב בהגדרות המערכת למצב מופעל), ומרכז האפליקציות תומך בתכונה הזו, המערכת משתמשת בצבעים של הטפט והעיצוב שהמשתמש בחר כדי לקבוע את גוון הצבע, ואז היא מחילה אותו על סמל האפליקציה המונוכרומטי.
הסמל של האפליקציה עם ערכת הנושא לא מוצג במסך הבית, ובמקומו מוצג הסמל הרגיל או הסמל הדינמי של האפליקציה, באף אחד מהתרחישים הבאים:
- אם המשתמש לא הפעיל סמלי אפליקציות מעוצבים
- אם באפליקציה אין סמל מונוכרומטי
- אם מרכז האפליקציות לא תומך בסמלי אפליקציות מעוצבים
פרטים נוספים והוראות מופיעים במאמר סמלים דינמיים.
העדפות שפה לכל אפליקציה
במקרים רבים, משתמשים שדוברים כמה שפות מגדירים את שפת המערכת שלהם לשפה אחת – למשל אנגלית – אבל רוצים לבחור שפות אחרות לאפליקציות ספציפיות, כמו הולנדית, סינית או הינדי. כדי לעזור לאפליקציות לספק חוויה טובה יותר למשתמשים האלה, ב-Android 13 הוספנו את התכונות הבאות לאפליקציות שתומכות בכמה שפות:
הגדרות מערכת: מקום מרכזי שבו המשתמשים יכולים לבחור את השפה המועדפת לכל אפליקציה.
כדי שהמערכת תדע שהאפליקציה תומכת בכמה שפות, צריך להצהיר על מאפיין
android:localeConfigבמניפסט של האפליקציה. למידע נוסף, אפשר לעיין בהוראות בנושא יצירת קובץ משאבים והצהרה עליו בקובץ המניפסט של האפליקציה.APIs נוספים: ממשקי ה-API הציבוריים האלה, כמו השיטות
setApplicationLocales()ו-getApplicationLocales()ב-LocaleManager, מאפשרים לאפליקציות להגדיר שפה שונה משפת המערכת בזמן הריצה.ממשקי ה-API האלה מסתנכרנים אוטומטית עם הגדרות המערכת. לכן, אפליקציות שמשתמשות בממשקי ה-API האלה כדי ליצור כלי לבחירת שפה בהתאמה אישית בתוך האפליקציה, יבטיחו שלמשתמשים תהיה חוויית משתמש עקבית, לא משנה איפה הם בוחרים את העדפות השפה שלהם. ממשקי ה-API הציבוריים גם עוזרים לצמצם את כמות הקוד הסטנדרטי, הם תומכים ב-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. - הקטגוריה
manyplural נוספה לשפות ספרדית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
Low Energy (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 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 ואילך אפשר ליצור אפקטים מתקדמים דומים לאפליקציה.
שיפורים ב-Choreographer
ב-Android 13 נוספו שיטות API ציבוריות ל-Choreographer ול-ASurfaceControl, שבאמצעותן האפליקציות יכולות לקבל מידע נוסף על ציר הזמן האפשרי של הפריימים, ונוסף הקשר ל-SurfaceFlinger לגבי מחזור החיים של הפריימים. בדומה למצב הקודם, אפליקציות יכולות לפרסם קריאה חוזרת ל-Choreographer ולקבל מידע על ציר הזמן של המסגרת. ב-Android 13 (API ברמה 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.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 ו/או של השותפים העצמאיים שלה.