מערכת Android 12 כוללת תכונות וממשקי API חדשים ונהדרים למפתחים. הסעיפים הבאים יעזרו לכם ללמוד על תכונות של האפליקציות שלכם ולהתחיל בעבודה עם ממשקי ה-API הקשורים.
כדי לקבל רשימה מפורטת של ממשקי API חדשים, שהשתנו והוסרו, אפשר לעיין במאמר ההבדלים ב-API דוח. לפרטים על ממשקי ה-API החדשים, אפשר להיכנס אל Android הפניית API — ממשקי API חדשים מודגשים כדי לאפשר חשיפה. כמו כן, כדי למידע על התחומים שבהם שינויי פלטפורמה עשויים להשפיע על האפליקציות שלך, חשוב שינויים בהתנהגות של Android 12 באפליקציות שמטרגטות Android 12 וכולם אפליקציות.
חוויית משתמש
Material You
ב-Android 12 אנחנו משיקים שפת עיצוב חדשה שנקראת Material אתם, ועוזרים לכם לבנות אפליקציות יפות ומותאמות אישית. כדי להביא את כל התכונות החדשות ביותר של Material Design 3 לעדכונים באפליקציות שלך, כדאי לנסות גרסת אלפא של Material Design רכיבים.
שיפורים בווידג'טים
ב-Android 12 שיפרנו את Widgets API הקיים כדי לשפר את המשתמשים והמפתחים בפלטפורמה ובמרכזי האפליקציות. יצרנו מדריך שיעזור לך צריך לוודא שהווידג'ט תואם ל-Android 12 ולרענן אותו עם לבינה מלאכותית גנרטיבית.
אפשר לעיין בשיפורים בווידג'טים של Android 12 מידע נוסף.
הוספת תוכן עשיר
Android 12 כולל ממשק API מאוחד חדש שמאפשר לאפליקציה שלכם לקבל תוכן עשיר מכל מקור זמין: לוח, מקלדת או גרירה ירידה.
מידע נוסף זמין במאמר קבלת תוכן עשיר .
API של מסכי פתיחה של אפליקציה
ב-Android 12 אנחנו משיקים אנימציה חדשה של הפעלת האפליקציה לכל האפליקציות שכוללת תנועה בתוך האפליקציה מנקודת ההפעלה, מסך פתיחה שמראה את סמל האפליקציה, ומעבר לאפליקציה עצמה. למידע נוסף, אפשר לעיין במפתח מסכי הפתיחה guide לפרטים נוספים.
ממשקי API עם פינות מעוגלות
חדש: RoundedCorner
ב-Android 12
וגם WindowInsets.getRoundedCorner(int
position)
,
שמספקים את הרדיוס ונקודת המרכז של פינות מעוגלות.
אפשר לקרוא מידע נוסף בקטע פינות מעוגלות.
משוב פיזי עשיר
מערכת Android 12 מרחיבה את הכלים ליצירת משוב פיזי אינפורמטיבי לממשק המשתמש אפקטים סוחפים ומעניינים לגיימינג, ומשוב פיזי פרודוקטיביות.
אפקטים של אקטואטור
ב-Android 12 נוספו אפקטים אקספרסיביים כמו רמה נמוכה מסמנים תנצלו את רוחב הפס הרחב יותר של האקטואטורים הכי עדכניים. משחק מפתחים יכולים עכשיו לגשת לכמה אקטואטורים באופן עצמאי במשחק בקרים לספק את אותו אפקט באופן סינכרוני או שונים במספר אקטואטורים. למפתחים, אנחנו ממליצים להשתמש קבועים וגם פרימיטיבים בתור אבני בניין ליצירת אפקטים פיזיים עשירים - קבועים להעשרת אירועים בממשק המשתמש מלחין פיזי לרצף פרימיטיביים להשפעות מורכבות יותר. אפשר לנסות את ממשקי ה-API האלה ב-Pixel 4 ואנחנו ממשיכים לעבוד עם יצרני המכשירים השותפים שלנו כדי להביא תמיכה המשובית האחרונה למשתמשים בכל הסביבה העסקית.
אפקטים פיזיים בצימוד אודיו
אפליקציות ל-Android 12 יכולות ליצור משוב פיזי שנגזר מסשן אודיו באמצעות את הרטט של הטלפון. כך יש הזדמנות להתנסות במשחק חוויות אודיו. לדוגמה, רינגטונים עם משוב פיזי יכולים לעזור בזיהוי המתקשרים או משחק נהיגה יכולים לדמות את התחושה של פני שטח קשים.
פרטים נוספים זמינים בHapticGenerator
לקבלת מידע נוסף.
חיפוש אפליקציות
Android 12 כולל את AppSearch, מנוע חיפוש עם ביצועים גבוהים במכשיר, כשירות מערכת. AppSearch מאפשר לאפליקציות להוסיף לאינדקס נתונים מובְנים. ולחפש אותה באמצעות יכולות מובנות של חיפוש טקסט מלא. בנוסף, AppSearch תומך בתכונות של חיפוש מקורי, כמו הוספה לאינדקס יעילה במיוחד ואחזור, תמיכה בשפות שונות ודירוג רלוונטיות.
ל-AppSearch יש שני טעמים: אינדקס מקומי לשימוש באפליקציה שתואם לגרסאות ישנות של Android או אינדקס מרכזי מתוחזק לכל המערכת ב-Android 12. באמצעות האינדקס המרכזי, יכולה לאפשר את הצגת הנתונים בפלטפורמות של ממשק המשתמש של המערכת של רכיב ה-AI שמותקן מראש במערכת. אילו נתונים בדיוק מקבלים שמוצגים בפלטפורמות של ממשק המשתמש של המערכת תלויים ב-OEM. בנוסף, יכול לשתף נתונים באופן מאובטח עם אפליקציות אחרות, כדי לאפשר להן כדי לבצע חיפוש גם בנתונים האלה.
מידע נוסף על AppSearch זמין במדריך למפתחים, ולהתחיל להשתמש בו עם ספריית AppSearch Jetpack, שמספק פלטפורמת API ידידותית למפתחים וגם מעבד הערות תמיכה.
מצב משחק
Game Mode API ו-Game Mode שיטות התערבות שמאפשרות לכם לבצע אופטימיזציה גיימפליי על ידי תעדוף מאפיינים, כמו ביצועים או חיי סוללה על סמך הגדרות המשתמשים או תצורות ספציפיות למשחק.
מידע נוסף זמין במאמר בנושא מצב משחק.
המלצות ושיפורים של 'תמונה בתוך תמונה' (PiP)
ב-Android 12 מוצגים השיפורים הבאים במצב 'תמונה בתוך תמונה':
תמיכה בתנועות חדשות של 'תמונה בתוך תמונה'
מערכת Android 12 תומכת עכשיו בשמירה בהצמדה ובשינוי מרחק התצוגה תנועות בשביל 'תמונה בתוך תמונה' חלון:
כדי להסתיר את החלון, המשתמש יכול לגרור את החלון שמאלה או ימינה קצה. כדי לפתוח את החלון, המשתמש יכול להקיש על החלק הגלוי של את החלון השמור או גוררים אותו החוצה.
המשתמש יכול עכשיו לשנות את גודל החלון של 'תמונה בתוך תמונה' באמצעות תנועת צביטה לשינוי מרחק התצוגה.
תכונות חדשות מומלצות שתומכות בחוויית מעבר מטופחת ב'תמונה בתוך תמונה'
נוספו שיפורים משמעותיים קוסמטיים ל-Android 12 לאנימציה עובר בין חלונות מסך מלא וחלון 'תמונה בתוך תמונה'. מומלץ מאוד יישום כל השינויים הרלוונטיים; לאחר מכן, השינויים האלה ניתן להתאים את הגודל באופן אוטומטי למסכים גדולים כגון מכשירים מתקפלים וטאבלטים ללא וכל עבודה נוספת שנדרשת.
אלו התכונות:
סימון API חדש למעבר חלק יותר למצב 'תמונה בתוך תמונה' באמצעות ניווט באמצעות תנועות
שימוש ב
setAutoEnterEnabled
כדי לספק מעברים חלקים יותר למצב 'תמונה בתוך תמונה' כשמחליקים למעלה למסך הבית מצב ניווט באמצעות תנועות. בעבר, מערכת Android המתנתה להחלקה למעלה מהבית אנימציה שתסתיים לפני שייעלמה בחלון 'תמונה בתוך תמונה'.אנימציות חלקות יותר בכניסה למצב 'תמונה בתוך תמונה' וביציאה ממנו
SourceRectHint
נעשה שימוש חוזר בסימון הזה כדי ליישם אנימציה חלקה יותר בכניסה ויציאה מצב 'תמונה בתוך תמונה'.סימון API חדש להשבתת שינוי חלק של גודל בתוכן שאינו וידאו
SeamlessResizeEnabled
הדגל מספק אנימציה חלקה יותר של עמעום הדרגתי בעת שינוי הגודל של תמונות שאינן וידאו תוכן בחלון 'תמונה בתוך תמונה'. בעבר, שינוי הגודל של תוכן שאינו וידאו במצב 'תמונה בתוך תמונה' החלון עלול ליצור ארטיפקטים חזותיים יצירתיים.
התראות חדשות על שיחות טלפון מאפשרות לדרג את החשיבות של שיחות נכנסות
ב-Android 12 נוסף סגנון ההתראות החדש
Notification.CallStyle
לשיחות טלפון. השימוש בתבנית הזו מאפשר לאפליקציה לציין את החשיבות של
שיחות פעילות על ידי הצגת צ'יפ בולט שמראה את שעת השיחה
שורת הסטטוס; המשתמש יכול להקיש על הצ'יפ כדי לחזור לשיחה שלו.
שיחות נכנסות ומתמשכות הן הכי חשובות למשתמשים, לכן ההתראות מקבלות את הדירוג הגבוה ביותר בצל. הדירוג הזה מאפשר גם כדי שתהיה אפשרות להעביר את השיחות המועדפות האלה למכשירים אחרים.
צריך להטמיע את הקוד הבא לכל סוגי השיחות.
Kotlin
// Create a new call with the user as caller. val incoming_caller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as caller. Person incoming_caller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
שימוש ב-forIncomingCall()
כדי ליצור התראה בסגנון שיחה על שיחה נכנסת.
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller);
שימוש ב-forOngoingCall()
כדי ליצור התראה על סגנון שיחה על שיחה פעילה.
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller);
שימוש ב-forScreeningCall()
כדי ליצור התראה על סגנון שיחה לסינון שיחה.
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
תמיכה בתמונה משודרגת בהתראות
ב-Android 12, עכשיו אפשר להעשיר את חוויית ההתראות באפליקציה באמצעות
מתן תמונות מונפשות ב-MessagingStyle()
ו-BigPictureStyle()
התראות. בנוסף, האפליקציה שלך יכולה עכשיו לאפשר למשתמשים לשלוח הודעות תמונה כאשר
הם משיבים להודעות מלוח ההתראות.
שיפורים במצב עשיר לניווט באמצעות תנועות
מערכת Android 12 מאחדת את נתוני ההתנהגות הקיימים כדי שלמשתמשים יהיה קל יותר ביצוע פקודות לניווט באמצעות תנועות תוך כדי צפייה במסך . לחשבון בנוסף, מערכת Android 12 מספקת התנהגות תאימות לאחור של מיקום קבוע סוחף .
שיתוף כתובות URL מהזמן האחרון (Pixel בלבד)
במכשירי Pixel, משתמשים יכולים עכשיו לשתף קישורים לתוכן אינטרנט שנצפו לאחרונה ישירות מהמסך 'אחרונים'. אחרי שנכנסו לתוכן באפליקציה, המשתמש יכול להחליק למסך 'אחרונים' ולמצוא את האפליקציה שבה הוא צפה בתוכן, לאחר מכן מקישים על לחצן הקישור כדי להעתיק או לשתף את כתובת ה-URL.
מידע נוסף זמין במאמר בנושא הפעלת כתובת ה-URL האחרונה. שיתוף.
אבטחה ופרטיות
מרכז בקרת הפרטיות
במכשירים נתמכים עם Android 12 ואילך, הגדרת פרטיות מסך מרכז הבקרה מופיע בהגדרות המערכת. במסך הזה המשתמשים יכולים לגשת מסכים נפרדים שמוצגים כשאפליקציות ניגשות למיקום, למצלמה ולמיקרופון מידע. בכל מסך מוצג ציר זמן שמציג מתי אפליקציות שונות ניגשו סוג מסוים של נתונים. איור 1 מציג את ציר הזמן של הגישה לנתונים של מיקום מידע.
האפליקציה יכולה לספק נימוקים משתמשים כדי לעזור להם להבין למה האפליקציה ניגשת למיקום, למצלמה או למיקרופון מידע. הנימוקים האלה יכולים להופיע במסך החדש של מרכז הבקרה להגדרות הפרטיות, את מסך ההרשאות של האפליקציה, או את שניהם.
הרשאות Bluetooth
Android 12 כולל את
BLUETOOTH_SCAN
BLUETOOTH_ADVERTISE
,
וגם
BLUETOOTH_CONNECT
הרשאות. ההרשאות האלה מאפשרות לאפליקציות שמטרגטות בקלות
Android 12 מאפשר אינטראקציה עם Bluetooth
, במיוחד באפליקציות
נדרשת גישה למיקום המכשיר.
צריך לעדכן את ההצהרות של הרשאות ה-Bluetooth באפליקציה שלך
כדי להכין את המכשיר לטירגוט ל-Android 12 ואילך, צריך לעדכן ללוגיקה של האפליקציה. במקום להצהיר על קבוצת Bluetooth מדור קודם ההרשאות, להצהיר על קבוצה מודרנית יותר של Bluetooth .
חיפוש קבוצת הרשאות
ב-Android מגרסה 12 ואילך, אפשר להריץ שאילתות על האופן שבו המערכת מארגנת בהרשאות שסופקו על ידי הפלטפורמה קבוצות של הרשאות:
- כדי לקבוע את קבוצת ההרשאות שבה המערכת הציבה
הרשאה בהגדרת פלטפורמה, קריאה
getGroupOfPlatformPermission()
- לקבוע את ההרשאות שמוגדרות על ידי הפלטפורמה שאליהן המערכת העניקה
לקבוצת הרשאות מסוימת,
getPlatformPermissionsForGroup()
הסתרת חלונות שכבת-על של אפליקציה
כדי להעניק למפתחים שליטה רבה יותר על מה שהמשתמשים רואים כשהם מקיימים אינטראקציה עם
ל-Android 12, נוספה אפשרות להסתיר
כשכבת-על של חלונות-על שנמשכים על ידי אפליקציות שיש להן את
SYSTEM_ALERT_WINDOW
הרשאה.
לאחר הצהרה על
HIDE_OVERLAY_WINDOWS
הרשאה, אפליקציה יכולה לקרוא
setHideOverlayWindows()
כדי לציין שכל החלונות מהסוג הזה
TYPE_APPLICATION_OVERLAY
צריכות להיות מוסתרות כשניתן לראות את החלון של האפליקציה עצמה. האפליקציות עשויות לבקש לעשות זאת
הזה כשמציגים מסכים רגישים, כמו תהליכי אישור עסקה.
לאפליקציות עם חלונות מסוג TYPE_APPLICATION_OVERLAY
כדאי לבדוק
חלופות שעשויות להתאים יותר לתרחיש לדוגמה שלהם, כגון
תמונה בתוך תמונה או
בועות.
סימון הגנה על הרשאות חותמים מוכרים
החל מ-Android 12,
מאפיין knownCerts
עבור
הרשאות ברמת החתימה
מאפשר לעיין בתקצירים של חתימות ידועות
אישורים בהצהרה
בזמן האימון.
האפליקציה יכולה להצהיר על המאפיין הזה ולהשתמש בדגל knownSigner
כדי לאשר
למכשירים ולאפליקציות כדי להעניק הרשאות חתימה למשתמשים אחרים
אפליקציות, ללא
ולחתום על האפליקציות בזמן הייצור והמשלוח של המכשיר.
אימות (attestation) של מאפייני המכשיר
מערכת Android 12 מרחיבה את קבוצת האפליקציות שיכולות לאמת את מאפייני המכשיר נמצאים באימות (attestation) אישור כשהאפליקציות האלה יוצרות מפתח חדש.
החל מ-Android 9 (רמת API 28), מדיניות המכשיר
בעלים (DPO) שמשתמשים
Keymaster 4.0 ואילך
לאמת את מאפייני המכשיר באישורי האימות האלה. מתחיל בעוד
עם Android 12, כל אפליקציה שמטרגטת את Android 12 (רמת API 31) ואילך יכולה להניב ביצועים
את האימות הזה באמצעות
setDevicePropertiesAttestationIncluded()
.
מאפייני המכשיר שנוצרים כוללים את הדברים הבאים
Build
שדות:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
פעולות מאובטחות במסך הנעילה
החל מ-Android 12, הכיתה Notification.Action.Builder
תומך
setAuthenticationRequired()
שמאפשרת לאפליקציה לדרוש שמכשיר
לא נעול
לפני שהאפליקציה מפעילה פעולת התראה נתונה. השיטה הזאת עוזרת להוסיף
שכבת אבטחה נוספת להתראות במכשירים נעולים.
מחרוזות שניתן להתאים לשוק המקומי עבור BiומטרPrompt
ב-Android 12 מוצגים ממשקי API חדשים שיעזרו לך לשפר את המידע הביומטרי של האפליקציה
את חוויית המשתמש באימות. הממשק החדש של BiometricManager.Strings
המחלקה הפנימית כוללת את getButtonLabel()
,
getPromptMessage()
,
וגם getSettingName()
שיטות שמאפשרות לאפליקציה לאחזר תווית לחצן שניתנת לקריאה על ידי המשתמשים ומותאמת לשוק המקומי,
או שם ההגדרה של האפליקציה. השתמשו בתוויות האלה כדי ליצור
הוראות גלויות למשתמשים שספציפיות לאימות הביומטרי
השיטות שבהן נעשה שימוש, כמו 'שימוש בפתיחה ע"י זיהוי הפנים' או 'יש להשתמש בטביעת האצבע כדי להמשיך'.
זיהוי פישינג באפליקציות להעברת הודעות (Pixel בלבד)
במכשירי Pixel נתמכים, מערכת Android 12 מפעילה זיהוי פישינג בהודעות שהתקבלו באפליקציות פופולריות של הודעות. המערכת משתמשת בלמידת מכונה במכשיר כדי לזהות פעילויות חשודות. כשהמערכת תזהה זיהוי, המערכת תציג אמצעי בטיחות מעל לממשק המשתמש של אפליקציית ההודעות, כדי להזהיר את המשתמשים. לדוגמה, פישינג הוא יכול להזהיר משתמשים לגבי הסיכונים הפוטנציאליים הבאים:
- בקשות חשודות, כמו שליחת קוד, כסף או בקשות דומות
- כתובות URL לא מהימנות
- קבצים מצורפים זדוניים
- קישורים לאפליקציות זדוניות
בנוסף לאזהרת המשתמש, שכבת-העל מאפשרת למשתמש גם לדווח על הודעה חשודה ולספק משוב לגבי אזהרות שהמערכת יצרה.
מפתחים יכולים לבטל את ההסכמה לשימוש בתכונה הזו על ידי הוספה של תג מטא-נתונים חדש, כולל
המחרוזת com.google.android.ALLOW_PHISHING_DETECTION
בקובץ המניפסט של האפליקציה
. לדוגמה:
<manifest>
<application android:name="com.messagingapp">
<meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />
</application>
</manifest>
מדיה
המרת קידוד תואמת של מדיה
החל מ-Android 12 (רמת API 31), המערכת יכולה לבצע המרת קידוד באופן אוטומטי HEVC(H.265) וגם HDR (HDR10 ו-HDR10+ ) סרטונים שהוקלטו במכשיר ל-AVC (H.264), פורמט נפוץ תואמים לנגנים רגילים. הם מנצלים את היתרונות של רכיבי קודק מודרניים הם זמינים מבלי להתפשר על התאימות עם יישומים ישנים יותר.
פרטים נוספים זמינים במאמר המרת קידוד של מדיה תואמת.
רמת ביצועים
ב-Android 12 יש תקן שנקרא סיווג ביצועים. א' סיווג הביצועים מציין יכולות חומרה מעבר לאלה של Android בדרישות שלנו. כל מכשיר Android מצהיר על סיווג הביצועים שהוא נתמך. המפתחים יכולים לבדוק את רמת הביצועים של המכשיר בזמן הריצה לספק חוויות משודרגות שמנצלות את מלוא הפוטנציאל של המכשיר יכולות.
לעיון בסיווג הביצועים אפשר לקבל פרטים נוספים.
שיפורים בקידוד הווידאו
ב-Android 12 מוגדרת קבוצה סטנדרטית של מפתחות לשליטה ערך של פרמטר קוונטיזציה (QP) לקידוד וידאו, וכך מאפשר למפתחים להימנע מקוד ספציפי לספק.
המפתחות החדשים זמינים
MediaFormat
API
וגם
ספריית המדיה של NDK.
מתחילים לעבוד עם מקודדי וידאו ב-Android 12 אוכפים על איכות מינימלית לסף מינימום. כך ניתן להבטיח שהמשתמשים לא יקבלו איכות נמוכה במיוחד כשמקודדים סרטונים בעלי מורכבות גבוהה של סצנות.
מיקוד אודיו
החל מ-Android 12 (רמת API 31), כשאפליקציה מבקשת התמקדות באודיו המיקוד של אפליקציה אחרת פועל, והמערכת מעמעמת את עוצמת האפליקציה שפועלת.
למידע נוסף, כדאי לעיין במאמר מיקוד אודיו ב-Android 12 ואילך אפשר לקבל פרטים נוספים.
עדכוני MediaDrm
כדי לקבוע אם נדרש רכיב של מפענח מאובטח
ממשקי ה-API הנוכחיים של MediaDrm
, עליכם לבצע את השלבים הבאים:
- יוצרים
MediaDrm
. - פותחים סשן כדי לקבל מזהה סשן.
- צריך ליצור
MediaCrypto
באמצעות מזהה הסשן. - התקשרות אל
MediaCrypto.requiresSecureDecoderComponent(mimeType)
.
באמצעות השיטות החדשות requiresSecureDecoder(@NonNull String mime)
ו-
requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)
אפשר לקבוע זאת ברגע שיוצרים MediaDrm
.
מצלמה
תוספי ספקים של Camera2
הרבה מהשותפים שלנו מיצרני המכשירים בנו תוספי מצלמה מותאמים אישית, כמו כמו בוקה, HDR, מצב לילה ואחרים – הם רוצים שהאפליקציות ישתמשו בהן כדי ליצור לחוויות שונות במכשירים שלהם. מצלמת CameraX הספרייה כבר תומכת תוספי הספקים המותאמים אישית האלה. ב-Android 12, ההגדרות האלה תוספי הספקים נחשפים עכשיו ישירות בפלטפורמה.
התוספת הזו עוזרת לאפליקציות
Camera2
מנצלות את תוספי הספקים בלי צורך
שינויים משמעותיים בקוד מהדור הקודם. ממשקי ה-API של התוסף Camera2 חושפים בדיוק
את אותה קבוצה של
תוספים בתור
ב- CameraX, ותמונות אלה כבר נתמכות במגוון רחב של
, כך שאפשר להשתמש בהם בלי
של הגדרות אישיות נוספות.
מידע נוסף זמין במאמר הבא:
CameraExtensionCharacteristics
תמיכה בחיישן מצלמה בארבעה תדרים
רוב מכשירי Android כוללים כיום חיישני מצלמה ברזולוציה גבוהה במיוחד, בדרך כלל עם דפוסים של ארבעה או נונה באייר, והם מציעים גמישות רבה מבחינת איכות התמונה וביצועי תאורה חלשה. חדש ב-Android 12 ממשקי API של פלטפורמה שמאפשרים לאפליקציות של צד שלישי לנצל את מלוא היתרונות של מחיישנים. ממשקי ה-API החדשים תומכים בהתנהגות הייחודית של החיישנים האלה, ומביאים בחשבון עשויה לתמוך בהגדרות ובשילובים שונים של השידור רזולוציה מלאה או מצב 'רזולוציה מקסימלית' לעומת מצב 'ברירת מחדל'.
גרפיקה ותמונות
מתן גישה ישירה לאפליקציות עם עקבות של מצבות
החל מ-Android 12, אפשר לגשת למצב הקריסה המקורית של האפליקציה בתור
מאגר אחסון לפרוטוקולים דרך
ApplicationExitInfo.getTraceInputStream()
. מאגר הנתונים הזמני של הפרוטוקול עובר סריאליזציה באמצעות הסכימה הזו.
בעבר, הדרך היחידה לקבל גישה למידע הזה הייתה באמצעות
Android Debug Bridge (adb).
מידע נוסף זמין במאמר שמסביר איך נותנים לאפליקציות גישה ישירה למעקב אחרי מצבות
תמיכה בתמונות ב-AVIF
ב-Android 12 יש תמיכה בתמונות עם פורמט קובץ תמונה AV1 (AVIF). AVIF הוא פורמט קונטיינר לתמונות ורצפים של תמונות מקודדות באמצעות AV1. AVIF מנצל את היתרונות של תוכן מקודד-בתוך-פריים בווידאו דחיסה. אפשרות זו משפרת משמעותית את איכות התמונה עבור אותו גודל קובץ בהשוואה לפורמטים ישנים יותר של תמונות, כגון JPEG. כדי לקבל הסבר מעמיק היתרונות של הפורמט הזה, ראו בלוג של ג'ייק ארצ'יבלד פוסט.
טשטוש קל יותר, פילטרים צבעוניים ואפקטים אחרים
מערכת Android 12 מוסיפה את RenderEffect
החדש
שבו מחילים אפקטים גרפיים נפוצים כמו טשטוש, מסנני צבע או תוכנת הצללה (shader) של Android
אפקטים ועוד View
והיררכיות של עיבוד. אפשר לשלב את האפקטים בתור כל אחד מהאפקטים בשרשרת.
(שמרכיבים אפקט פנימי וחיצוני) או אפקטים מעורבים. מכשיר Android אחר
מכשירים לא תומכים בתכונה הזו בגלל כוח עיבוד מוגבל.
אפשר להחיל את האפקטים גם על RenderNode
.
לView
שניות על ידי חיוג אל View.setRenderEffect(RenderEffect)
.
כדי להטמיע RenderEffect
:
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
פענוח תמונה מונפשת רגילה
ב-Android 12, ה-NDK
ה-API של ImageDecoder
הורחב
כדי לפענח את כל הפריימים ונתוני התזמון מתמונות
שמשתמשים ב-GIF האנימציה
פורמטים של קובצי WebP עם אנימציה. אחרי
ב-Android 11, ה-API הזה פענח רק את התמונה הראשונה
אנימציות בפורמטים האלה.
מומלץ להשתמש ב-ImageDecoder
במקום בספריות של צד שלישי כדי להקטין את ה-APK עוד יותר
מידה
וליהנות מעדכונים עתידיים שקשורים לאבטחה ולביצועים.
פרטים נוספים על ה-API זמינים בהפניית API ובדוגמה ב-GitHub.
קישוריות
השארת אפליקציות נלוות במצב פעיל
כדי לתמוך בצורך של אפליקציות נלוות להמשיך לפעול ולנהל את המכשיר: ב-Android 12 אנחנו משיקים ממשקי API שמאפשרים לבצע את הפעולות הבאות:
- מתן אפשרות להוציא אפליקציה ממצב שינה כשמכשיר נלווה נמצא בטווח.
- להבטיח שהתהליך ימשיך לפעול בזמן שהמכשיר יישאר בתקן טווח.
כדי להשתמש בממשקי ה-API, המכשירים שלך צריכים להיות מחוברים באמצעות מכשיר נלווה
מנהל. לקבלת מידע נוסף
מידע נוסף, ראה
CompanionDeviceManager.startObservingDevicePresence()
וגם
CompanionDeviceService.onDeviceAppeared()
פרופילים של ניהול מכשירים נלווים
אפליקציות של שותפים ב-Android 12 (רמת API 31) ואילך יכולות להשתמש במכשיר נלווה פרופילים כשמתחברים לשעון. השימוש בפרופיל מפשט את ההרשמה תהליך באמצעות קיבוץ ההענקה של קבוצת הרשאות שספציפית לסוג מכשיר לשלב אחד.
ההרשאות בחבילה מוענקות לאפליקציה הנלווית ברגע שהמכשיר והם יחזיקו מעמד רק כל עוד המכשיר מקושר. מחיקת האפליקציה או הסרת השיוך מסירה את ההרשאות.
מידע נוסף זמין במאמר הבא:
AssociationRequest.Builder.setDeviceProfile()
שיפורים בהערכת רוחב הפס
ב-Android 12, היכולות להערכת רוחב הפס שמספקות
getLinkDownstreamBandwidthKbps()
וגם
getLinkUpstreamBandwidthKbps()
הם משופרים גם ל-Wi-Fi וגם לרשת סלולרית. הערכים שמוחזרים עכשיו
מייצגים את התפוקה הממוצעת המשוקללת של המשתמש בכל הזמנים לכל ספק או Wi-Fi
SSID, סוג הרשת ורמת האות, בכל האפליקציות במכשיר.
כך ניתן לקבל הערכה מדויקת ומציאותית יותר של התפוקה הצפויה,
מספקים אומדנים לגבי הפעלה במצב התחלתי (cold start) של האפליקציה, שדורשים פחות מחזורים
בהשוואה לשימוש בשיטות אחרות להערכת תפוקה.
שיפורים ב-Wi-Fi Aware (NAN)
ב-Android 12 נוספו כמה שיפורים ל-Wi-Fi Aware:
- במכשירים עם Android בגרסה 12 (רמת API 31) ואילך, אפשר להשתמש
onServiceLost()
להתקשרות חזרה כדי לקבל התראה כשהאפליקציה איבדה שירות שהתגלו עקב הפסקת השירות או יציאה מהטווח. - הדרך שבה מוגדרים נתיבי נתונים מרובים (נתיבי נתוני NAN) משתנה ליעילות רבה יותר. גרסאות קודמות השתמשו בהעברת הודעות L2 כדי לתקשר עם אפליקציות להשוואה מידע על היוזמים, שהתוצאה שלו היא זמן אחזור. במכשירים פועלים עם Android מגרסה 12 ואילך, ניתן להגדיר את המגיב (שרת) לא לקבל עמיתים – כלומר לא צריך לדעת מי יוזם מראש. כך מזרזים את העלאת נתיבי הנתונים ומאפשרים מספר קישורים מנקודה לנקודה עם בקשת רשת אחת בלבד.
- כדי למנוע מה-framework לדחות גילוי או בקשות חיבור
עד שהמשאבים עומדים להיגמר, במכשירים עם Android 12
אתם יכולים להתקשר
WifiAwareManager.getAvailableAwareResources()
הערך המוחזר בשיטה הזו מאפשר לקבל את מספר הנתונים הזמינים נתיבים, מספר הסשנים הזמינים לפרסום ומספר הסשנים הזמינים של מינויים.
עמית לעמית + חיבור לאינטרנט בו-זמנית
כשמכשירים שמטרגטים את Android 12 (רמת API 31) ואילך פועלים במכשירים עם
תמיכה בחומרה באמצעות עמית לעמית
חיבורים לא ינתקו את
חיבור Wi-Fi קיים בזמן יצירת החיבור למכשיר התואם. שפת תרגום
אם יש תמיכה בתכונה הזו, השתמשו
WifiManager.isMultiStaConcurrencySupported()
הפעלת כיבוי המסך לתשלומים באמצעות NFC
באפליקציות שמטרגטות את Android 12 ואילך, אפשר להפעיל NFC
לביצוע תשלומים מבלי שמסך המכשיר פועל באמצעות הגדרה
requireDeviceScreenOn
עד
false
למידע נוסף על תשלומים באמצעות NFC כשהמסך כבוי או נעול:
כיבוי המסך ונעילת המסך
של התנהגות המשתמשים.
אחסון
ב-Android 12 חדש: ניהול האחסון יכולות:
- תמיכה של
MediaDocumentsProvider
בחנות המדיה כאשר האפליקציה מאחזרת מזהה URI של מדיה שמקביל לספק מסמכים נתון URI. - ספרייה לשיחות קוליות הקלטות.
MANAGE_MEDIA
הרשאה שמאפשרת לאפליקציה לבצע ניהול מדיה תפעול בלי להציג למשתמש תיבת דו-שיח לאישור לגבי כל פעולה.- אפליקציות שכוללות גם את שכבת הקשב העצמי
MANAGE_EXTERNAL_STORAGE
ואת ההרשאהQUERY_ALL_PACKAGES
הרשאה מסוימת — כגון אפליקציות לניהול קבצים — יכולה להפעיל פעילות לניהול נפח האחסון של אפליקציה אחרת, בתנאי שהאפליקציה האחרת יוצרת את הפעילות המותאמת אישית.
פונקציונליות עיקרית
עדכונים אוטומטיים לאפליקציות
Android 12 כולל את
setRequireUserAction()
לאפליקציות שמשתמשות ב-
API של PackageInstaller
.
השיטה הזו מאפשרת לאפליקציות של מנהל ההתקנה לבצע עדכונים לאפליקציות בלי לדרוש
משתמש כדי לאשר את הפעולה.
מידע על ערכת השבבים של המכשיר
מערכת Android 12 מוסיפה שני קבועים ל-android.os.Build
שחושפים
מידע על ספק ערכת שבבים של SoC והמודל דרך ה-SDK. אפשר לאחזר את הערך הזה
מידע על ידי חיוג אל Build.SOC_MANUFACTURER
ואל Build.SOC_MODEL
בהתאמה.
עדכונים לממשקי ה-API של הליבה של Java
על סמך בקשות ושיתוף פעולה עם מפתחים, הוספנו את הפריטים הבאים ספריות הליבה ב-Android 12:
כיתה | ממשקי API |
---|---|
java.lang.Deprecated
|
|
java.lang.Byte
|
|
java.lang.Short
|
|
java.lang.Math
|
|
java.lang.StrictMath
|
|
java.util.Set
|
copyOf()
|
java.util.Map
|
copyOf()
|
java.util.List
|
copyOf()
|
java.time.Duration
|
|
java.time.LocalTime
|