סקירה כללית על תכונות וממשקי API

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

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

כלים למפתחים וכלים לשיפור הפרודוקטיביות

סמלים של אפליקציות בעיצובים

משתמש מביע הסכמה להצגת סמלי אפליקציות מעוצבים
הצטרפות לסמלי אפליקציות מעוצבים ב-Android 13

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

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

מסך הבית לא מציג את סמל האפליקציה המעוצבת, אלא מוצג במקום זאת סמל האפליקציה הרגילה או המותאמת – בכל אחד מהתרחישים הבאים:

  • אם המשתמש לא הפעיל סמלי אפליקציות מעוצבים
  • אם באפליקציה לא מוצג סמל מונוכרומטי
  • אם מרכז האפליקציות לא תומך בסמלי אפליקציות מעוצבים

לפרטים נוספים והוראות, ראו סמלים מותאמים.

העדפות שפה לכל אפליקציה

שפות לכל אפליקציה בהגדרות המערכת

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

  • הגדרות מערכת: מיקום מרכזי שבו המשתמשים יכולים לבחור שפה מועדפת לכל אפליקציה.

    צריך להצהיר על המאפיין android:localeConfig באפליקציה כדי לומר למערכת שהוא תומך בכמה שפות. למידה הוראות נוספות יצירת קובץ משאבים והצהרה עליו בקובץ המניפסט של האפליקציה

  • Additional 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, כדי שמשתמשים יוכלו למצוא שהם מחפשים מהר יותר ובקלות רבה יותר. לדוגמה, בחיפוש Google נדרש משתמש יפני לבצע את השלבים הבאים:

  1. הזן את היראגאנה כהגייה הפונטית של מונח החיפוש (למשל מקום או שם של אפליקציה)
  2. משתמשים במקלדת כדי להמיר את תווי היראגאנה לקאנג'י
  3. חיפוש בעזרת תווי קאנג'י
  4. סוף סוף הם מקבלים את תוצאות החיפוש

עם ממשק ה-API החדש להמרת טקסט, משתמשים מיפן יכולים להקליד בהיראגאנה לראות מיד את תוצאות החיפוש של קאנג'י בזמן אמת, תוך דילוג על שלבים 2 ו-3.

גובה משופר של שורות בסקריפטים לא לטיניים

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

גובהי השורות שנחתכו ב-Android 12 (למעלה) ושמוגדרים עכשיו ממוקם טוב יותר ולא נחתך ב-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, משמש למספרים גדולים.

גופנים של וקטור צבעים

אמוג'י וקטורי של COLRv1 (משמאל) ואמוג'י של מפת סיביות (ימינה)

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

ברוב האפליקציות, המערכת מטפלת בהכול ו-COLRv1 פשוט עובד. אבל, לפעמים אם באפליקציה האפליקציה מעבדת טקסט משלה ומשתמשת בגופנים של המערכת, מומלץ לבדוק את עיבוד האמוג'י.

למידע נוסף על COLRv1, אפשר לעיין במקורות המידע הבאים:

הגדרות מהירות של מיקום API

'הגדרות מהירות' בלוח ההתראות עושות שימוש נוח למשתמשים כדי לבצע את השינוי הגדרות או לבצע פעולות מהירות מבלי לצאת מההקשר של האפליקציה. הוראות לבעלי אפליקציות שמספקים משבצות מותאמות אישית, אנחנו מקלים על המשתמשים לגלות את כרטיסי המידע שלך ולהוסיף אותם הגדרות. באמצעות tile location API, האפליקציה שלך יכולה עכשיו לבקש מהמשתמש להוסיף את כרטיס המידע המותאם אישית ישירות קבוצת משבצות פעילות בהגדרות המהירות. תיבת דו-שיח חדשה של המערכת מאפשרת למשתמש להוסיף לחצן בשלב אחד, בלי לצאת מהאפליקציה, במקום לעבור אל הגדרות להוספת הלחצן.

תיבת דו-שיח ששואלת את המשתמש אם הוא רוצה להוסיף כרטיס מידע
          הגדרות מהירות.

תצוגה מקדימה של הלוח

החל מ-Android 13, המערכת תציג אישור חזותי סטנדרטי כש נוסף ללוח. האישור החדש מבצע את הפעולות הבאות:

  • מאשר שהתוכן הועתק בהצלחה.
  • כאן אפשר לראות תצוגה מקדימה של התוכן שהועתק.

התכונה הזו יוצרת סטנדרטיזציה של ההתראות השונות שמוצגות על ידי האפליקציות אחרי ההעתקה ומציע למשתמשים שליטה רבה יותר על הלוח שלהם. למידע נוסף, נכנסים לתכונה העתקה והדבקה. הדף הזה.

העתקה/הדבקה של הווידג&#39;ט
ממשק משתמש חדש שמוצג כשתוכן נכנס ללוח.

תנועת חזרה חזויה

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

לעיון בתיעוד מפורט, כדאי לעיין במאמר עדכון האפליקציה כך שתתמוך בחזרה חזויה תנועה. אפשר גם לנסות את Codelab.

Bluetooth LE Audio

אודיו עם צריכת אנרגיה נמוכה (LE) הוא אודיו אלחוטי שנועד להחליף Bluetooth קלאסי והפעלה של תרחישים לדוגמה וטופולוגיות חיבור מסוימות. הוא מאפשרת למשתמשים לשתף ולשדר את האודיו שלהם לחברים ולבני משפחה, או להירשם לשידורים ציבוריים לקבלת מידע, בידור או נגישות. המטרה היא להבטיח שהמשתמשים יוכלו לקבל אודיו באיכות גבוהה התפשרות על חיי הסוללה, ואפשרות לעבור בקלות בין סוגי השימוש השונים במקרים שלא אפשר להשתמש בהם עם Bluetooth Classic. החל מ-Android 13, כוללת תמיכה מובנית ב-LE Audio, כך שהמפתחים מקבלים יכולות בחינם במכשירים תואמים.

MIDI 2.0

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

שיפורים ביעילות של מסך הפתיחה

מערכת Android 13 משפרת את היעילות של מסכי פתיחה עם אנימציה במסך הפתיחה Screen API:

  • המערכת מסיקה את משך האנימציה ישירות AnimatedVectorDrawable לפני Android 13, היה צורך להגדיר את windowSplashScreenAnimationDuration ישירות.

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

למידע מפורט, ראו מסכי פתיחה.

אופטימיזציות ART

בגרסה Android 13 (רמת API 33) ואילך, ART מבצע את המעבר המקורי את הקוד הרבה יותר מהיר, וקריאות JNI זמינות עכשיו בשיעור של עד פי 2.5. מסמך עזר בנושא זמן ריצה עבוד גם על עיבוד כדי למנוע בעיקר חסימה, היא מפחיתה את ה-jank. בנוסף, אפשר להשתמש Reference.refersTo() ל-API ציבורי כדי להחזיר אובייקטים שלא ניתן להגיע אליהם מוקדם יותר, ותוכלו לראות את רכיב התרגום מהיר יותר עכשיו בזכות חיפושי כיתות ושיטות שעברו אופטימיזציה. ART גם מבצע יותר אימות של קוד בייט בזמן ההתקנה, כדי להימנע מהוצאות בזמן הריצה, כך שזמני ההפעלה של האפליקציה יהיו מהירים.

פרטיות ואבטחה

ייצוא בטוח יותר של נמענים שרשומים לפי ההקשר

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

הגדרות הייצוא האלה זמינות באפליקציות שמבצעות לפחות הבאים:

בורר התמונות

מערכת Android 13 (רמת API 33) ואילך כוללת הכלי לבחירת תמונות חוויה אישית. מתי האפליקציה מפעילה את בוחר תמונות, משתמשים בוחרים תמונות וסרטונים ספציפיים לשיתוף עם האפליקציה שלכם, כמו תמונות פרופיל, במקום לתת לאפליקציה גישה לצפייה במלואה ספריית המדיה. זו הדרך המומלצת לגשת לתמונות של המשתמש סרטונים.

הכלי לבחירת תמונות מספק למשתמשים פרטיות משופרת, כי האפליקציה שלך לא צריך להצהיר על הרשאות בתחילת ההפעלה. בנוסף, הכלי לבחירת תמונות מספק ממשק משתמש מובנה וסטנדרטי לאפליקציות, שיוצר חוויה אישית.

הרשאת זמן ריצה חדשה למכשירי Wi-Fi בקרבת מקום

מערכת Android 13 (רמת API 33) כוללת תכונה חדשה הרשאת זמן ריצה קבוצת הרשאות NEARBY_DEVICES לאפליקציות שמנהלות את חיבורי המכשיר אל נקודות גישה בקרבת מקום באמצעות Wi-Fi. האפליקציות האלה צריכות להצהיר על ההרשאה החדשה. NEARBY_WIFI_DEVICES כשהם לקרוא לכמה ממשקי API שונים של Wi-Fi. בנוסף, כל עוד האפליקציות לא מסיקה את המיקום הפיזי מרשת ה-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. משפרת את גרסה 3 של חתימת APK. סכימה זו מתייחס לחלק מהבעיות המוכרות עם APK Signature Scheme v3 בנוגע לרוטציה. באופן ספציפי, גרסה 3.1 סכימת החתימה תומכת בטירגוט לפי גרסת SDK, שמאפשר לבצע רוטציה לטרגט לגרסה מאוחרת יותר של הפלטפורמה.

סכימת החתימה v3.1 משתמשת במזהה בלוק שאינו מזוהה ב- 12L או פחות. לכן, הפלטפורמה מחילה את החותמים הבאים:

  • במכשירים עם Android 13 ואילך נעשה שימוש בחותם המסובב את הבלוק גרסה 3.1.
  • במכשירים עם גרסאות ישנות יותר של Android, מתעלמים מהחותם המסובב וגם במקום זאת, צריך להשתמש בחותם המקורי בבלוק של גרסה 3.0.

באפליקציות שעדיין לא התבצעו רוטציה למפתח החתימה שלהן אין צורך פעולה. בכל פעם שהאפליקציות האלה בוחרות לבצע סיבוב, המערכת מחילה את גרסה 3.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

...כאשר API_LEVEL הוא 32 ומטה.

דיווח טוב יותר על שגיאות ב-Keystore וב-KeyMint

לאפליקציות שמייצרות מפתחות, Keystore ו-KeyMint מספקים עכשיו מידע מפורט יותר סימנים מדויקים של שגיאות. הוספנו היררכיית כיתה חריגה בקטע java.security.ProviderException, עם חריגים ספציפיים ל-Android שכוללים קודי שגיאה של Keystore/KeyMint, ואם ניתן לנסות שוב את השגיאה. אפשר גם לשנות את השיטות של המקשים ושימוש בהם (חתימה, הצפנה) כדי לזרוק את החריגים החדשים. דיווח משופר על שגיאות אינו מוגבל ליצירת מפתחות, ועכשיו הוא אמור לספק את מה שדרוש לכם כדי לנסות שוב ליצור מפתחות.

תמיכה בטאבלטים ובמסכים גדולים

מערכת Android 13 מתבססת על האופטימיזציה של הטאבלטים שהושקה ב-Android 12 השקת תכונות של 12L – כולל אופטימיזציות לממשק המשתמש של המערכת, ריבוי משימות משופר, ומצבי תאימות משופרים. כחלק מהבדיקה, יש לוודא שהאפליקציות להיראות במיטבם בטאבלטים ובמכשירים אחרים עם מסך גדול.

לקבלת מידע נוסף על מה חדש ומה כדאי לבדוק, אפשר לעיין תמיכה בטאבלטים ובמסכים גדולים הדף הזה.

גרפיקה

תוכנות הצללה (shader) שניתן לתכנות

כלי ההצללה (shader) מונפש של AGSL, מותאם מתוך GLSL Shader.

החל מ-Android 13, המערכת כוללת תמיכה בתכונות שניתן לתכנות RuntimeShader אובייקטים, עם התנהגות שמוגדרת באמצעות Android Graphics Shading Language (AGSL). שיתופים ב-AGSL חלק גדול מהתחביר שלו ב-GLSL, אבל הוא פועל במנוע העיבוד של Android כדי להתאים אישית את ציור בתוך אזור העריכה של Android וגם סינון של 'הצגת תוכן'. מערכת Android משתמשת בתוכנות ההצללה (shader) האלה באופן פנימי כדי להטמיע אפקטים של גלים, טשטוש, וגם למתח יתר. עם Android מגרסה 13 ואילך, אפשר ליצור אפקטים מתקדמים דומים אפליקציה.

שיפורים בכוריאוגרפים

ב-Android 13 הוספנו שיטות API ציבוריות שמאפשרות Choreographer ו- ASurfaceControl לספק לאפליקציות מידע נוסף על לוחות הזמנים האפשריים של פריימים ולהוסיף הקשר נוסף SurfaceFlinger על מחזור החיים של המסגרת. בדומה לתכונות הקודמות, אפליקציות יכולות לפרסם קריאה חוזרת (callback) אל Choreographer ולקבל מידע על ציר הזמן של המסגרת. ב-Android 13 (API רמה 33), Choreographer מחזירה כמה פעמים אפשריות של שיתוף המסך המועדים האחרונים של הפריים. האפליקציות יכולות לבחור את זמן ההצגה לאחר מכן שליחת התראה ל-SurfaceFlinger מבחירה. לאחר מכן, SurfaceFlinger לא מנסה להחיל עסקאות או לסגור את מאגר הנתונים הזמני לפני שעת ההצגה הרצויה.

אם האפליקציה משתמשת בשיטות החדשות של Choreographer ו-SurfaceControl, אפשר להציג את מחזור החיים של מסגרת האפליקציה במעקב של Perfetto.

מצלמה

צילום סרטונים באיכות HDR

החל מ-Android 13, ממשקי API של Camera2 לתמוך בצילום סרטונים עם טווח דינמי גבוה (HDR), כדי לאפשר תצוגה מקדימה ומקליטים תוכן של סרטונים באיכות HDR באמצעות המצלמה. בהשוואה לדינמיקה רגילה Range (SDR) מאפשר לכם ליהנות ממגוון רחב יותר של צבעים ומגדיל את הטווח הדינמי של רכיב הבהירות (החל מ- 100 cd/m2 עד 1,000s של cd/m2). כך מתקבלת איכות וידאו שקרובה יותר לאיכות האמיתית, ומאפשרת צבעים בהירים יותר, אזורים בהירים יותר וצלליות כהות יותר.

למידע נוסף על צילום סרטונים באיכות HDR, אפשר לבקר תיעוד בנושא צילום סרטון HDR

מדיה

אודיו מרחבי

אודיו מרחבי הוא חוויית אודיו סוחפת שבה נשמע תוכן מדיה מציאותי יותר למשתמשים. להציג את אודיו המרחבי לפרטים על אופן השילוב עם תכונה זו.

ניתוב אודיו צפוי

כדי לעזור לאפליקציות מדיה לזהות את אופן ניתוב האודיו שלהן, Android 13 מציגה ממשקי API של נתיבי אודיו AudioManager. 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 Mainline.

מערכת Android 13 כוללת את השינויים הבאים בספריות הליבה:

  • תמיכה במילת המפתח var עבור משתנים מקומיים ובתור פרמטרים lambdas.
  • שיטות חדשות במחלקה 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 ו/או לשותפים עצמאיים.