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. - הוספנו את קטגוריית הרבים
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
Low Energy (LE) Audio הוא אודיו אלחוטי שנועד להחליף את Bluetooth classic ולאפשר תרחישי שימוש מסוימים וטופולוגיות חיבור. האפליקציה מאפשרת למשתמשים לשתף את האודיו שלהם עם חברים ובני משפחה או להירשם לשידורים ציבוריים כדי לקבל מידע, בידור או גישה. הטכנולוגיה הזו נועדה להבטיח שהמשתמשים יוכלו לקבל אודיו באיכות גבוהה בלי לפגוע בחיי הסוללה, ולעבור בצורה חלקה בין תרחישי שימוש שונים שלא אפשריים ב-Bluetooth Classic. החל מ-Android 13, המערכת כוללת תמיכה מובנית ב-LE Audio, כך שמפתחים מקבלים את היכולות האלה בחינם במכשירים תואמים.
MIDI 2.0
החל מ-Android 13, המערכת כוללת תמיכה בתקן MIDI 2.0, כולל היכולת לחבר חומרת MIDI 2.0 באמצעות USB. התקן הזה מציע תכונות כמו רזולוציה גבוהה יותר לבקרי MIDI, תמיכה טובה יותר באינטונציה לא מערבית וביצועים יותר אקספרסיביים באמצעות בקרי MIDI לכל תו.
שיפורים ביעילות של מסך הפתיחה
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 (AGSL). התחביר של AGSL דומה מאוד לזה של GLSL, אבל הוא פועל במנוע העיבוד של Android כדי להתאים אישית את הציור בבד הציור של Android, וגם כדי לסנן את התוכן של View.
מערכת Android משתמשת ב-shaders האלה באופן פנימי כדי להטמיע אפקטים של אדוות, טשטוש וגלילה מוגזמת עם מתיחה.
ב-Android מגרסה 13 ואילך אפשר ליצור אפקטים מתקדמים דומים לאפליקציה.
שיפורים ב-Choreographer
ב-Android 13 מוצגות שיטות API ציבוריות ל-Choreographer ול-ASurfaceControl, שמספקות לאפליקציות מידע נוסף על ציר הזמן האפשרי של הפריימים ומוסיפות הקשר נוסף ל-SurfaceFlinger לגבי מחזור החיים של הפריימים. בדומה למצב הקודם, אפליקציות יכולות לפרסם קריאה חוזרת ל-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.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ל-API של OpenJDK 11 באמצעותVarHandleבאופן פנימי.
Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.