מערכת Android 13 כוללת תכונות וממשקי API חדשים ונהדרים למפתחים. בקטעים הבאים מוסבר על התכונות של האפליקציות ועל תחילת העבודה עם ממשקי ה-API הרלוונטיים.
בדוח ההבדלים של ממשקי ה-API תוכלו למצוא רשימה מפורטת של ממשקי API חדשים, משופרים והוסרו. פרטים על ממשקי API חדשים אפשר למצוא בחומר העזר בנושא API של Android – ממשקי API חדשים מודגשים לצורך חשיפה. בנוסף, כדי לקבל מידע על תחומים שבהם שינויים בפלטפורמה עשויים להשפיע על האפליקציות שלכם, כדאי לבדוק את השינויים בהתנהגות של Android 13 באפליקציות שמטרגטות את Android 13 ובכל האפליקציות.
כלים למפתחים וכלים לשיפור הפרודוקטיביות
סמלי אפליקציות מעוצבים
החל מ-Android 13, אפשר להביע הסכמה לשימוש בסמלי אפליקציות לפי נושא. בעזרת התכונה הזו, סמלי האפליקציות במרכזי האפליקציות הנתמכים ל-Android מקבלים גוון שמתאים לצבע של הטפט והעיצובים האחרים שבחר המשתמש.
כדי לתמוך בתכונה הזו, האפליקציה צריכה לספק גם סמל אדפטיבי וגם סמל אפליקציה מונוכרומטי, ולהפנות לסמל האפליקציה המונוכרומטי מהרכיב <adaptive-icon>
במניפסט. אם המשתמש הפעיל סמלי אפליקציות מעוצבים (כלומר, את האפשרות סמלים מעוצבים בהגדרות המערכת) ומרכז האפליקציות תומך בתכונה הזו, המערכת משתמשת בצבע של הטפט והעיצוב שנבחרו על ידי המשתמש כדי לקבוע את צבע הגוון, ואז היא חלה על סמל האפליקציה המונוכרומטי.
סמל האפליקציה עם העיצוב בהתאמה אישית לא יוצג במסך הבית, ובמקום זאת יוצג סמל האפליקציה הרגיל או הסמל המותאם אישית, בכל אחד מהתרחישים הבאים:
- אם המשתמש לא הפעיל סמלי אפליקציות מעוצבים
- אם באפליקציה לא מוצג סמל מונוכרומטי
- אם מרכז האפליקציות לא תומך בסמלי אפליקציות מעוצבים
לפרטים נוספים והוראות, ראו סמלים מותאמים.
העדפות שפה לכל אפליקציה
במקרים רבים, משתמשים שדוברים כמה שפות מגדירים את שפת המערכת לשפה אחת – כמו אנגלית – אבל רוצים לבחור שפות אחרות לאפליקציות ספציפיות, כמו הולנדית, סינית או הינדי. כדי לעזור לאפליקציות לספק חוויה טובה יותר למשתמשים האלה, ב-Android 13 נוספו התכונות הבאות לאפליקציות שתומכות בכמה שפות:
הגדרות מערכת: מיקום מרוכז שבו המשתמשים יכולים לבחור את השפה המועדפת לכל אפליקציה.
כדי להודיע למערכת שהאפליקציה תומכת בכמה שפות, צריך להצהיר על המאפיין
android:localeConfig
במניפסט של האפליקציה. למידע נוסף, ראו את ההוראות ליצירת קובץ משאבים והצהרה עליו בקובץ המניפסט של האפליקציה.ממשקי API נוספים: ממשקי ה-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, אפליקציות יכולות להפעיל את Text Conversion API החדש כדי שמשתמשים יוכלו למצוא את מה שהם מחפשים מהר יותר ובקלות רבה יותר. לדוגמה, בעבר משתמשים ביפן היו צריכים לבצע את הפעולות הבאות כדי לבצע חיפוש:
- להזין היגאנה כהגייה הפונטית של מונח החיפוש (למשל מקום או שם אפליקציה)
- שימוש במקלדת כדי להמיר את התווים של היפנית לסימני קאנג'י
- מבצעים חיפוש חוזר באמצעות תווים של קאנג'י.
- ולבסוף מקבלים את תוצאות החיפוש
בעזרת ממשק ה-API החדש להמרת טקסט, משתמשים ביפנית יכולים להקליד ביפנית יפנית (hiragana) ולראות מיד את תוצאות החיפוש ביפנית יפנית (kanji) בזמן אמת, בלי לדלג על שלבים 2 ו-3.
גובה שורות משופר לסקריפטים שאינם לטיניים
ב-Android 13 אפשר לשפר את התצוגה של טקסטים שאינם לטיניים (כמו טמילית, בורמזית, טלוגו וטיבטי) באמצעות גובה שורה שמותאם לכל שפה. גובה השורות החדש מונע חיתוך ומשופר את המיקום של התווים. האפליקציה שלך יכולה לנצל את השיפורים האלה רק על ידי טירגוט ל-Android 13. חשוב לבדוק את האפליקציות כשמשתמשים במרווח השורות החדש, כי השינויים עשויים להשפיע על ממשק המשתמש בשפות שאינן לטיניות.
שיפור גלישת הטקסט ביפנית
החל מגרסה 13 של Android, אפשר להשתמש ב-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 זמין במקורות המידע הבאים:
Quick Settings placement API
ההגדרות המהירות בסרגל ההתראות הן דרך נוחה למשתמשים לשנות הגדרות או לבצע פעולות מהירות בלי לצאת מההקשר של האפליקציה. באפליקציות שמציעות משבצות בהתאמה אישית, אנחנו עושים את זה קל יותר למשתמשים לגלות את המשבצות ולהוסיף אותן להגדרות המהירות. בעזרת API חדש למיקום משבצות, עכשיו אפשר לבקש מהמשתמשים להוסיף את המשבצת בהתאמה אישית ישירות לקבוצת המשבצות הפעילות בהגדרות המהירות. תיבת דו-שיח חדשה של המערכת מאפשרת למשתמש להוסיף את כרטיס המידע בשלב אחד, בלי לצאת מהאפליקציה, במקום שתצטרכו להיכנס להגדרות המהירות כדי להוסיף את הלחצן.
תצוגה מקדימה של הלוח
החל מגרסה 13 של Android, המערכת מציגה אישור חזותי רגיל כשתוכן מתווסף ללוח העריכה. האישור החדש מבצע את הפעולות הבאות:
- אישור שהתוכן הועתק בהצלחה.
- תצוגה מקדימה של התוכן שהועתק.
התכונה הזו מאפשרת לאפליקציות להציג התראות שונות לאחר העתקה, ומעניקה למשתמשים יותר שליטה בלוח העריכה. מידע נוסף זמין בדף התכונה העתקה והדבקה.
חיזוי תנועת החזרה
ב-Android 13 יש תנועה חזרה חזותית חזותית למכשירי Android, כמו טלפונים, מסכים גדולים ומכשירים מתקפלים. כדי להשתמש בתכונה הזו, צריך לעדכן את האפליקציה.
למסמכים מפורטים, אפשר לעיין במאמר עדכון האפליקציה כך שתתמוך בתנועת חזרה חזותית. אפשר גם לנסות את codelab שלנו.
Bluetooth LE Audio
אודיו עם צריכת אנרגיה נמוכה (LE) הוא אודיו אלחוטי שנועד להחליף את Bluetooth הקלאסי ולאפשר תרחישי שימוש מסוימים ותצורות חיבור מסוימות. היא מאפשרת למשתמשים לשתף ולשדר את האודיו לחברים ולבני משפחה, או להירשם לשידורים ציבוריים לקבלת מידע, בידור או נגישות. השירות נועד להבטיח שהמשתמשים יוכלו לקבל אודיו באיכות גבוהה בלי לפגוע בחיי הסוללה, ולעבור בצורה חלקה בין תרחישי שימוש שונים שלא זמינים במסגרת Bluetooth Classic. החל מגרסה 13 של Android, המערכת כוללת תמיכה מובנית ב-LE Audio, כך שהמפתחים מקבלים את היכולות האלה בחינם במכשירים תואמים.
MIDI 2.0
החל מ-Android 13, המערכת כוללת תמיכה בתקן MIDI 2.0, כולל היכולת לחבר חומרה של MIDI 2.0 דרך USB. התקן הזה כולל תכונות כמו רזולוציה משופרת לבקרים, תמיכה טובה יותר באינטונציה לא מערבית וביצועים דרמטיים יותר באמצעות בקרי תווים.
שיפורים ביעילות של מסך הפתיחה
ב-Android 13 משופר היעילות של מסכי פתיחה מונפשים ב-SplashScreen API:
המערכת מסיקה את משך האנימציה ישירות מ-
AnimatedVectorDrawable
. לפני Android 13, היה צריך להגדיר אתwindowSplashScreenAnimationDuration
ישירות.אתם יכולים להשתמש במאפיין החדש
windowSplashScreenBehavior
כדי לקבוע אם הסמל של האפליקציה יוצג תמיד במסך הפתיחה ב-Android 13 ואילך.
למסמכי עזרה מפורטים, אפשר לעיין במאמר מסכי פתיחה.
אופטימיזציות של 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 גרסה 3.1
ב-Android 13 נוספה תמיכה ב-APK Signature Scheme v3.1, שמשפר את APK Signature Scheme v3 הקיים. התוכנית הזו מטפלת בחלק מהבעיות הידועות שקשורות ל-APK Signature Scheme v3 בנוגע לכיוון. באופן ספציפי, הסכימה של החתימה בגרסה 3.1 תומכת בטירגוט של גרסת SDK, שמאפשרת לבצע רוטציה לגרסת הפלטפורמה העדכנית יותר.
בסכימת החתימה v3.1 נעשה שימוש במזהה בלוק שלא מזוהה בגרסה 12L ואילך. לכן, הפלטפורמה מחילה את התנהגות החתימה הבאה:
- במכשירים עם Android מגרסה 13 ואילך נעשה שימוש בחתימה של הגורם המאמת המנוהל בבלוק v3.1.
- במכשירים עם גרסאות ישנות יותר של Android, המערכת מתעלמת מהחתימה המנוהלת ומשתמשת במקום זאת בחתימה המקורית בבלוק v3.0.
באפליקציות שעדיין לא ביצעת בהן רוטציה של מפתח החתימה, אין צורך לבצע פעולה נוספת. בכל פעם שהאפליקציות האלה בוחרות לבצע רוטציה, המערכת מחילה את סכמת החתימה של גרסה 3.1 כברירת מחדל.
באפליקציות שכבר ביצעו רוטציה ורוצים להמשיך להשתמש במפתח החתימה שהופעל מחדש בבלוק החתימה בגרסה 3.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
...כאשר API_LEVEL
הוא 32 או פחות.
דיווח משופר על שגיאות ב-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 וגם כדי לסנן את התוכן של 'הצגת התוכן'.
מערכת Android משתמשת בשוליים האלה באופן פנימי כדי להטמיע אפקטים של גלישת מים, טשטוש והתאמת התצוגה למסך במהלך גלילה.
ב-Android 13 ואילך אפשר ליצור אפקטים מתקדמים דומים לאפליקציה.
שיפורים בכוריאוגרפיה
ב-Android 13 נוספו שיטות API ציבוריות ל-Choreographer
ול-ASurfaceControl
, שמספקות לאפליקציות מידע נוסף על לוחות הזמנים האפשריים של הפריימים, ומוסיפות הקשר נוסף ל-SurfaceFlinger
לגבי מחזור החיים של הפריימים. בדומה לעבר, אפליקציות יכולות לשלוח קריאה חוזרת אל Choreographer
ולקבל מידע על ציר הזמן של הפריימים. ב-Android 13 (רמת API 33), הפונקציה Choreographer
מחזירה כמה זמני הצגה אפשריים ואת מועדי ההגשה של הפריימים התואמים. האפליקציות יכולות לבחור את מועד הצגת הנתונים, ולאחר מכן לעדכן את SurfaceFlinger
לגבי הבחירה. SurfaceFlinger
לא ינסה להחיל עסקאות או מאגרי נעילה לפני זמן ההצגה הרצוי.
מצלמה
צילום וידאו HDR
החל מ-Android 13, ממשקי ה-API של Camera2 תומכים בצילום וידאו בטווח דינמי גבוה (HDR), שמאפשר לכם לראות תצוגה מקדימה של תוכן וידאו ב-HDR ולהקליט אותו באמצעות המצלמה. בהשוואה לטווח דינמי סטנדרטי (SDR), איכות ה-HDR מציעה מגוון רחב יותר של צבעים ומגדילה את הטווח הדינמי של רכיב ההארה (מ-100cd/m2 הנוכחי ל-1,000s של 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 כדי להתאים אותן למהדורת OpenJDK 11 LTS, עם עדכוני ספריות ותמיכה בשפה Java 11 למפתחי אפליקציות ופלטפורמות. השינויים בספריית הליבה שהושקו ב-Android 13 יהיו זמינים גם במכשירי Android 12 באמצעות עדכון מערכת של Google Play למודול הראשי של ART.
מערכת Android 13 כוללת את השינויים הבאים בספריות הליבה:
- תמיכה במילות המפתח
var
למשתנים מקומיים וכפרמטרים של פונקציות lambda. שיטות חדשות בכיתה 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
.תמיכה בסביבת זמן ריצה ובמהדר (compiler) ל-
java.lang.invoke.VarHandle
.עדכון
java.util.concurrent
ל-OpenJDK 11 API באמצעותVarHandle
באופן פנימי.
Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של Oracle ו/או של השותפים העצמאיים שלה.