הערות שחרור של אנדרואיד 9

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

לִבנוֹת

תמונת מערכת כללית (GSI)

תמונת מערכת גנרית (GSI) היא תמונת מערכת עם תצורות מותאמות עבור מכשירי אנדרואיד. תמונת מערכת כללית (GSI) כוללת פרטים על הבדלים בין GSI עבור מכשירים המופעלים עם אנדרואיד 9 ומכשירים המשדרגים לאנדרואיד 9.

ארכיטקטורה

שכבת הפשטת חומרה (HAL)

תאימות לאחור של מסגרת HIDL

אימות תאימות לאחור של מסגרת HIDL היא שיטה לאימות תאימות לאחור של המסגרת.

HALs זמינים באופן דינמי

HALs זמינים דינמית תומכים בכיבוי דינמי של תת-מערכות חומרה של אנדרואיד כאשר הן אינן בשימוש או שאינן נחוצות.

HIDL

חסימת זיכרון HIDL

HIDL MemoryBlock היא שכבה מופשטת הבנויה על hidl_memory , HIDL @1.0::IAllocator ו- HIDL @1.0::IMapper . הוא מיועד לשירותי HIDL שיש להם מספר בלוקים של זיכרון החולקים ערימת זיכרון אחת.

שכבות על עץ מכשיר

שכבות על דחוסות

אנדרואיד 9 ואילך כולל תמיכה בשכבות-על דחוסות בתמונת שכבת-על של עץ המכשיר (DTBO) בעת שימוש בגרסה 1 של כותרת טבלת עץ המכשיר.

עדכוני DTO

אנדרואיד 9 ואילך דורש שהמטען האתחול יעביר את גוש עץ המכשיר המאוחד לקרנל לפני שינוי המאפיינים שהוגדרו בשכבות עץ המכשירים (DTOs) .

ניהול גרסאות של כותרות תמונה של DTBO

אנדרואיד 9 ומעלה כולל שדה גרסה בכותרת התמונה של DTBO.

אימות DTBO

אנדרואיד 9 ומעלה דורשת מחיצת DTBO. כדי להוסיף צמתים או לבצע שינויים במאפיינים ב-SoC DT, על טוען האתחול לכסות באופן דינמי DT ספציפי למכשיר על פני ה-SoC DT. למידע נוסף ראה קומפילציה ואימות .

תאימות ליבה

אנדרואיד 9 ומעלה כולל דרישות המשפיעות על הליבה, הממשקים שלה והשימוש ב-DTBOs. למידע נוסף, עיין בעמודים הבאים:

ספק NDK

שינויים בעיצוב

למידע על שינויים בעיצוב VNDK באנדרואיד 9 ואילך, עיין בעמודים הבאים:

בודק ABI

עמוד היציבות של ABI מתאר את בודק הממשק הבינארי של היישום (ABI), המבטיח ששינויים שנעשו בספריות VNDK שומרים על תאימות ABI.

תמונות של VNDK

תמונת מערכת יכולה להשתמש בצילומי מצב של VNDK כדי לספק את ספריות ה-VNDK הנכונות לתמונות הספק גם כאשר תמונות המערכת והספק בנויות מגרסאות שונות של אנדרואיד.

אובייקט ממשק ספק (אובייקט VINTF)

הדפים הבאים בסעיף אובייקט ממשק ספק מתארים עדכונים באנדרואיד 9 ואילך:

לוח זמנים לביטול HIDL

הדפים הבאים מתארים כיצד Android מוציא משימוש ומסיר HIDL HALs:

טוען אתחול

מחיצות מוצר

אנדרואיד 9 ומעלה תומך בבניית מחיצות /product באמצעות מערכת הבנייה של אנדרואיד. בעבר, אנדרואיד 8.x אכף את ההפרדה של רכיבים ספציפיים למערכת-על-שבב (SoC) ממחיצת /system למחיצת /vendor מבלי להקדיש מקום לרכיבים ספציפיים ל-OEM שנבנו ממערכת ה-build של Android.

תאימות לסיבה לאתחול קנונית

עמוד סיבת האתחול הקנונית מתאר שינויים במפרט סיבת האתחול של טוען האתחול באנדרואיד 9 ומעלה.

מערכת כשורש

כל המכשירים המופעלים עם אנדרואיד 9 ומעלה חייבים להשתמש ב-system-as-root , הממזג ramdisk.img לתוך system.img (הידוע גם בשם no-ramdisk), שבתורו מותקן כ-rootfs.

ניהול גרסאות של כותרת אתחול של תמונת אתחול

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

DTBO בהחלמה

כדי למנוע כשלי OTA עקב אי התאמה בין תמונת השחזור למחיצת ה-DTBO בהתקנים שאינם A/B, תמונת השחזור חייבת להכיל מידע מתמונת ה-DTBO .

לְהַצִיג

גזרות תצוגה

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

סובב הצעות

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

מעברי אפליקציה מסונכרנים

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

סיווג טקסט (לשעבר TEXTCLASSIFIER)

אנדרואיד 9 ומעלה כולל שירות Text Classifier , שהוא הדרך המומלצת ליישום סיווג טקסט, והטמעת שירות ברירת מחדל.

צבע רחב

אנדרואיד 9 ומעלה כולל תמיכה בצבעים רחבים, כולל:

  • טווח דינמי גבוה (HDR)
  • עיבוד תוכן במרחב הצבעים BT2020, אך לא כמרחב נתונים של יעד קצה

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

תְאִימוּת

מסמך הגדרת תאימות אנדרואיד

מסמך הגדרת התאימות של אנדרואיד 9 (CDD) חוזר על גרסאות קודמות עם עדכונים לתכונות חדשות ושינויים בדרישות לפונקציונליות שפורסמה בעבר.

הגדרות

ווידג'טים של אפליקציה טובים יותר

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

היצרנים צריכים לעדכן את אפליקציות המשגר ​​שלהם (שנשלחות עם מכשירים) כדי לתמוך בתכונה זו אם לא מבוססת על Launcher3. יצרני OEM צריכים לתמוך בשדה ה-widgetFeatures החדש במפעיל ברירת המחדל שלהם.

שימו לב שהתכונה פועלת מקצה לקצה רק כאשר המשגרים מיישמים אותה כצפוי. AOSP כולל יישום לדוגמה. עיין ב-AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca עבור הקוד לדוגמה שסופק.

התראות על שינוי מצב המכשיר למתקיני החבילות

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

קוד מקור ההודעה על שינוי מצב מכשיר נמצא במיקומים הבאים תחת platform/frameworks/base :

  • api/system-current.txt
  • core/java/android/content/Intent.java
  • core/res/AndroidManifest.xml
  • services/core/java/com/android/server/am/ActivityManagerService.java

ארכיטקטורת מידע

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

מבחנים

מבחן

כלי שורת הפקודה Atest מאפשר לך לבנות, להתקין ולהריץ בדיקות אנדרואיד באופן מקומי, ומאיץ מאוד ריצות חוזרות של הבדיקות מבלי לדרוש ידע באפשרויות שורת הפקודה של ה- Trade Federation.

חבילת בדיקת תאימות

הורדות CTS

חבילות מבחן תאימות (CTS) התומכות באנדרואיד 9 זמינות בדף הורדות CTS . ניתן לסנכרן את קוד המקור של הבדיקות הנכללות עם התג android-cts-9.0_r1 בעץ הקוד הפתוח.

אפשרויות CTS

עבור אנדרואיד 9, CTS v2 מקבל את הפקודה והארגומנט הבאים:

  • run retry מנסה שוב את כל הבדיקות שנכשלו או לא בוצעו מההפעלות הקודמות.
  • '--shard-count ש-CTS רץ למספר נתון של נתחים עצמאיים, כדי לרוץ על מספר מכשירים במקביל.

בנוסף, הפקודה שלא תועדה בעבר --retry-type נוספה לאותה התייחסות לפקודת מסוף CTS v2.

שירות Secure Element (SE).

שירות Secure Element בודק רכיבים מאובטחים הנתמכים בפלטפורמה גלובלית על ידי זיהוי האם למכשירים יש מימוש SE HAL ואם כן, כמה. זה משמש כבסיס לבדיקת ה-API והטמעת הרכיב המאובטח הבסיסי.

תיבת היתוך חיישן

תיבת היתוך החיישנים משמשת במבחן היתוך חיישן של Camera Image Test Suite (Camera ITS) ובבדיקת סינכרון מרובה מצלמות ומספקת סביבת בדיקה עקבית למדידת דיוק חותמת הזמן של המצלמה וחיישנים אחרים עבור טלפונים אנדרואיד. ראה דפים אלה למידע נוסף:

שדה ראייה רחב ITS-in-a-box

שדה הראייה הרחב ITS-in-a-box היא מערכת אוטומטית המיועדת לבחון מערכות מצלמות של שדה ראייה רחב (WFoV) ושדה ראייה רגיל (RFoV) במצלמה ITS.

חבילת בדיקה של ספקים

ארכיטקטורת בקר מארח

ארכיטקטורת הבקר המארח של ספק בדיקות חבילת (VTS) היא הארכיטקטורה של מסגרת הבדיקה של VTS המשולבת עם שירות הגשת הבדיקות מבוסס הענן שלה.

בדיקת HAL עם שם שירות

בדיקת HAL המודעה לשירות VTS תומכת בקבלת שם השירות של מופע HAL נתון בהתבסס על המכשיר עליו פועלות בדיקות VTS.

בדיקת בדיקת HAL

בדיקת בדיקת VTS HAL כוללת שיטת זמן ריצה לשימוש בתצורת המכשיר כדי לזהות על אילו בדיקות VTS יש לדלג עבור יעד התקן זה.

תשתית בדיקה אוטומטית

תשתית הבדיקות האוטומטיות היא תשתית VTS לבדיקה אוטומטית של VTS, CTS או בדיקות אחרות במכשירי שותפים המריצים את תמונת המערכת הגנרית של AOSP (GSI).

איתור באגים

טלמטריה מתקדמת

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

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

לפרטים נוספים, ראה frameworks/base/cmds/statsd/ .

מאפייני אבטחה

חתימת אפליקציה

ערכת החתימה של v3 APK תומכת בסיבוב מפתח APK.

תמיכה ביומטרית

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

ניתוח דינמי

אנדרואיד 9 כולל תמיכה בכלים נוספים להפחתת ניצול וניתוח .

שלמות זרימת בקרה (CFI)

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

ליבה CFI

בנוסף למערכת CFI, המופעלת כברירת מחדל, אנדרואיד 9 ואילך כולל תמיכה בשלמות זרימת בקרת ליבה (CFI) .

הצפנה

הצפנה מבוססת קבצים

הצפנה מבוססת קבצים (FBE) מתעדכנת כך שתעבוד עם אחסון שניתן לאמץ . מכשירים חדשים צריכים להשתמש בהצפנה מבוססת קבצים במקום בהצפנת דיסק מלא.

הצפנת מטא נתונים

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

מאגר מפתחות

אנדרואיד 9 ומעלה כולל את Keymaster 4 , שיש לו את התכונות הללו.

כַּסֶפֶת

אנדרואיד 9 ומעלה כולל תמיכה במפתחות Android Keystore המאוחסנים ומשמשים במעבד נפרד פיזית שנבנה במיוחד עבור יישומים בעלי אבטחה גבוהה, כגון אלמנט מאובטח מוטבע (SE) . StrongBox Keymaster הוא יישום של Keymaster HAL בחומרה מאובטחת בדידה. ל-StrongBox יש:

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

ייבוא ​​מפתח מאובטח

כדי לייבא מפתח בצורה מאובטחת ל-Keymaster 4, מפתח שנוצר מחוץ למכשיר מוצפן עם מפרט של ההרשאות שמגדירות כיצד ניתן להשתמש במפתח.

תמיכה ב-3DES

Keymaster 4 כולל 3DES עבור תאימות למערכות מדור קודם המשתמשות ב-3DES.

מחייב גרסה

כדי לתמוך במבנה המודולרי של Treble ולשבור את הקישור של system.img ל- boot.img , Keymaster 4 שינה את מודל הקישור של גרסת המפתח כך שיהיו לו רמות תיקון נפרדות עבור כל מחיצה. זה מאפשר לעדכן כל מחיצה באופן עצמאי תוך מתן הגנה לאחור.

Android Protected Confirmation API

מכשירים נתמכים המופעלים עם Android 9 מותקן נותנים למפתחים את היכולת להשתמש ב- Android Protected Confirmation API . עם API זה, אפליקציות יכולות להשתמש במופע של ConfirmationPrompt כדי להציג הנחיה למשתמש, לבקש ממנו לאשר הצהרה קצרה. הצהרה זו מאפשרת לאפליקציה לאשר מחדש שהמשתמש רוצה להשלים עסקה רגישה, כגון ביצוע תשלום.

SELinux

ארגז חול SELinux לכל אפליקציה

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

טרבל שינויים ב-SELinux

עדכונים ל-Treble SELinux באנדרואיד 9 ומעלה מתועדים במספר דפים בסעיף SELinux .

איניט של ספק

ספק init סוגר את החור בפיצול מערכת/ספק טרבל על ידי שימוש בדומיין SELinux נפרד כדי להפעיל פקודות /vendor עם הרשאות ספציפיות לספק.

מאפייני מערכת

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

מבחני תכונות SELinux

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

שֶׁמַע

אפקטי שמע ברזולוציה גבוהה

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

מַצלֵמָה

מצלמות USB חיצוניות

אנדרואיד 9 ומעלה תומך בשימוש במצלמות USB Plug-and-Play (כלומר, מצלמות רשת) המשתמשות ב- Android Camera2 API הסטנדרטי ובממשק HIDL של המצלמה.

מעקב תנועה

התקני מצלמה יכולים לפרסם יכולת מעקב אחר תנועה .

תמיכה בריבוי מצלמות

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

פרמטרי הפעלה

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

יצרן יחיד, חוצץ צרכנים מרובה

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

קישוריות

שיחות והודעות

יישום תוכניות נתונים

אנדרואיד 9 ומעלה מספקת תמיכה משופרת לספקים המיישמים תוכניות נתונים באמצעות ממשקי ה-API של SubscriptionPlan.

אפליקציות להתקשרות של צד שלישי

אנדרואיד 9 ומעלה מספקת ממשקי API המאפשרים לאפליקציות שיחות של צד שלישי (3P) לטפל בשיחות נכנסות מקבילות של הספק ולהכניס שיחות ביומן השיחות של המערכת.

מוֹבִיל

זיהוי ספק

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

eSIM

SIM משובץ (eSIM או eUICC) היא הטכנולוגיה העדכנית ביותר המאפשרת למשתמשים ניידים להוריד פרופיל ספק ולהפעיל שירות של ספק מבלי שיהיה להם כרטיס SIM פיזי. באנדרואיד 9 ומעלה, מסגרת Android מספקת ממשקי API סטנדרטיים לגישה ל-eSIM ולניהול פרופילי מנויים ב-eSIM. למידע נוסף, ראה:

תמיכה ב-Multi-SIM עבור הגדרות IMS

אנדרואיד 9 ומעלה מספק שיפורים להגדרות המשתמש עבור תת-מערכת מולטימדיה IP (IMS) . אתה יכול להגדיר קריינות LTE (VoLTE), שיחות וידאו ושיחות Wi-Fi על בסיס מנוי במקום לשתף את ההגדרות הללו בכל המינויים.

שידורי מצב SIM

ב-Android 9 ומעלה, Intent.ACTION_SIM_STATE_CHANGED הוצא משימוש, ונוספים שני שידורים נפרדים עבור מצב כרטיס ומצב יישום כרטיס, TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED ו- TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED .

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

שני השידורים החדשים הם @SystemApis ואינם דביקים. רק מקלטים עם הרשאת READ_PRIVILEGED_PHONE_STATE יכולים לקבל את השידורים.

הכוונות אינן משודרות מחדש כאשר אתה פותח את המכשיר. מקלטים התלויים בשידורים שנשלחו לפני ביטול הנעילה חייבים להשתמש directBootAware , או שהם חייבים לשאול את המצב לאחר ביטול נעילת המשתמש. ניתן לשאול את המצבים באמצעות ממשקי ה-API המתאימים ב-TelephonyManager, getSimCardState() ו- getSimApplicationState() .

וויי - פיי

ספק Wi-Fi

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

רנדומיזציה של MAC

רנדומיזציה של MAC מאפשרת למכשירים להשתמש בכתובות MAC אקראיות בעת חיפוש אחר רשתות חדשות בזמן שהם אינם משויכים כעת לרשת. באנדרואיד 9 ומעלה, ניתן להפעיל אפשרות מפתח כדי לגרום למכשיר להשתמש בכתובת MAC אקראית בעת חיבור לרשת Wi-Fi.

הפעל את ה-Wi-Fi באופן אוטומטי

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

זמן נסיעה הלוך ושוב Wi-Fi

זמן Wi-Fi הלוך ושוב (RTT) מאפשר למכשירים למדוד את המרחק למכשירים תומכים אחרים, בין אם הם נקודות גישה (APs) או עמיתים Wi-Fi Aware (אם Wi-Fi Aware נתמך במכשיר). תכונה זו בנויה על פרוטוקול IEEE 802.11mc, ומאפשרת לאפליקציות להשתמש ברמת דיוק ומודעות מיקום משופרים.

שיפורי ניקוד Wi-Fi

דגמי ניקוד Wi-Fi משופרים קובעים במהירות ובדייקנות מתי מכשיר צריך לצאת מרשת Wi-Fi מחוברת או להיכנס לרשת Wi-Fi חדשה. מודלים אלה מספקים חוויה אמינה וחלקה למשתמשים על ידי הימנעות מפערים בקישוריות.

סקור וכוונו את ערכי ה-RSSI במשאבי config.xml , במיוחד את הערכים הבאים:

  • config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz

Wi-Fi STA/AP במקביל

בו-זמנית Wi-Fi STA/AP היא היכולת של מכשירים לפעול במצבי תחנה (STA) ונקודת גישה (AP) במקביל. עבור מכשירים התומכים ב-Wi-Fi בו-זמנית כפולה (DBS), זה פותח יכולות כמו לא לשבש STA Wi-Fi כאשר משתמש רוצה להפעיל נקודה חמה (SoftAP).

שיפורים ב-WiFiStateMachine

WifiStateMachine היא המחלקה העיקרית המשמשת לשליטה בפעילות Wi-Fi, תיאום קלט משתמש (מצבי פעולה: נקודה חמה, סריקה, חיבור או כיבוי), ושליטה בפעולות רשת Wi-Fi (כגון סריקה או התחברות).

באנדרואיד 9 ומעלה, קוד המסגרת של ה-Wi-Fi והטמעה של WifiStateMachine נבנה מחדש, מה שמוביל לגודל קוד מופחת, לוגיקה קלה יותר לביצוע של בקרת Wi-Fi, שיפור גרעיני הבקרה, והגדלת הכיסוי והאיכות של בדיקות יחידות .

ברמה גבוהה, WifiStateMachine מאפשר ל-Wi-Fi להיות באחד מארבעה מצבים:

  • מצב לקוח (יכול להתחבר ולסרוק)
  • מצב סריקה בלבד
  • מצב SoftAP (נקודה חמה של Wi-Fi)
  • מושבת (Wi-Fi כבוי לחלוטין)

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

עדכוני הרשאות Wi-Fi

ב-Android 9 ומעלה, הרשאת האפליקציה CHANGE_WIFI_STATE מופעלת כברירת מחדל. אתה יכול להשבית את ההרשאה עבור כל אפליקציה בדף ההגדרות בהגדרות > אפליקציות והתראות > גישה מיוחדת לאפליקציה > בקרת Wi-Fi .

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

כדי לאמת התנהגות זו, הפעל את הבדיקות הרובו-אלקטריות והידניות.

לבדיקה ידנית:

  1. עבור אל הגדרות > אפליקציות והתראות > גישה מיוחדת לאפליקציה > בקרת Wi-Fi .
  2. בחר וכבה את ההרשאה לאפליקציה שלך.
  3. ודא שהאפליקציה שלך יכולה להתמודד עם התרחיש שבו הרשאת CHANGE_WIFI_STATE לא ניתנת.

הוצאה משימוש WPS

עקב בעיות אבטחה, הגדרה מוגנת Wi-Fi (WPS) ב- WiFiManager הוצאה משימוש ומושבתת באנדרואיד 9 ומעלה. עם זאת, WiFiDirect עדיין משתמש ב-WPS בבקשת ה-WPA.

גרָפִיקָה

יישום

API של Vulkan 1.1

אנדרואיד 9 ומעלה תומך ביישום ה- API הגרפי של Vulkan 1.1 .

כלי WinScope למעקב אחר מעברי חלונות

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

קוד המקור של הכלי WinScope נמצא ב- platform/development/tools/winscope .

אינטראקציה

אודיו לרכב

Automotive Audio מתאר את ארכיטקטורת האודיו עבור יישומי אנדרואיד הקשורים לרכב.

ה- Neural Networks (NN) HAL מגדיר הפשטה של ​​המאיצים השונים. הנהגים של מאיצים אלה חייבים להתאים ל-HAL זה.

רכב HAL

מאפייני הרכב מתארים שינויים בממשק HAL של הרכב.

בחירת לווין GNSS

כשעובדים עם HALs חדשות למערכת ניווט לוויינית (GNSS) (v1.1+), ה-Android Framework עוקבת אחר הגדרות אנדרואיד. שותפים יכולים לשנות את ההגדרות משירותי Google Play או עדכוני מערכת אחרים. הגדרות אלו מספרות ל-GNSS HAL אם אין להשתמש בלווייני GNSS מסוימים. זה יכול להיות שימושי במקרה של שגיאות מתמשכות בלוויין או קונסטלציה של GNSS, או כדי להגיב מהר יותר לבעיות יישום GNSS HAL שעלולות להתרחש בעת ערבוב של קבוצות כוכבים באמצעות מערכות זמן שונות ואירועים חיצוניים, כגון סיבובי שנייה, יום או שבוע. .

דגם חומרה של GNSS

באנדרואיד 9, GNSS HAL גרסה 1.1 ומעלה יכולה להעביר מידע על ה-API של החומרה לפלטפורמה. הפלטפורמה צריכה ליישם את ממשק IGnssCallback ולהעביר ידית ל-HAL. ה-GNSS HAL מעביר את מידע מודל החומרה דרך שיטת LocationManager#getGnssHardwareModelName() ‎. יצרני התקנים צריכים לעבוד עם ספקי ה-GNSS HAL שלהם כדי לספק מידע זה במידת האפשר.

הרשאות

הגדרת עדכוני בקרת גישה לפי שיקול דעת

הגדרת בקרת גישה לפי שיקול דעת (DAC) מכילה עדכונים למנגנון מזהי אנדרואיד (AIDs) להרחבת יכולות מערכת הקבצים.

הוספת הרשאות לאפליקציות מורשות

ב-Android 9 ומעלה, אם יש הרשאות שיש לדחות, ערוך את ה-XML כך שישתמש בתג deny-permission במקום בתג permission ששימשה במהדורות קודמות.

נתונים

שיפורים בהערכת רוחב הפס

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

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

אבל במכשירים שבהם פועל 9 ומעלה, ההתקשרות חוזרת onCapabilitiesChanged() מופעלת אוטומטית כאשר יש שינוי משמעותי ברוחב הפס המשוער, וקריאה ל- requestBandwidthUpdate() היא חוסר פעולה; getLinkDownstreamBandwidthKbps() ו- getLinkUpstreamBandwidthKbps() המשויכים מאוכלסים במידע מעודכן המסופק על ידי השכבה הפיזית.

בנוסף, מכשירים יכולים לבדוק את רוחבי הפס של תאים LTE באמצעות ServiceState.getCellBandwidths() . זה מאפשר ליישומים לקבוע כמה רוחב פס (תדר) זמין בתא נתון. מידע על רוחב הפס של התא זמין דרך תפריט נסתר כך שבוחני שטח יוכלו לבדוק את המידע העדכני ביותר.

ניטור תעבורה eBPF

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

שחזר לממשקי API נמוכים יותר

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

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

שקול להשתמש במאמת כדי לבדוק אם קיימים ערכים לא חוקיים של נתוני גיבוי נתון ולשחזר נתונים חוקיים בלבד, כמו ב- core/java/android/provider/SettingsValidators.java .

התכונה מופעלת כברירת מחדל. ניתן לבטל תמיכה ב- SettingsBackupAgent לשחזור מגרסאות עתידיות דרך Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION . אין צורך ביישום נוסף אלא אם יצרן המכשיר מרחיב את אחד מסוכני הגיבוי הכלולים ב-ROM (או מוסיף סוכן מותאם אישית).

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

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

  • SystemBackupAgent מציין restoreAnyVersion = false באנדרואיד 9 ומעלה. הוא אינו תומך בשחזור מגרסאות גבוהות יותר של ה-API.

  • SettingsBackupAgent מציין restoreAnyVersion = true ב-Android 9 ומעלה. תמיכה חלקית קיימת באמצעות מאמתים. ניתן לשחזר הגדרה מגרסת API גבוהה יותר אם קיים אימות עבורה במערכת ההפעלה היעד. הוספת כל הגדרה צריכה להיות מלווה במאמת שלה. בדוק את הכיתה לפרטים.

  • כל סוכן גיבוי מותאם אישית הכלול ב-ROM צריך להגדיל את קוד הגרסה שלו בכל פעם שנעשה שינוי לא תואם בפורמט נתוני הגיבוי ולהבטיח restoreAnyVersion = false (ברירת המחדל) אם הסוכן שלו לא מוכן להתמודד עם נתוני גיבוי מגרסה עתידית של הקוד שלהם.

מִפְעָל

שיפורי פרופיל מנוהלים

שינויים ב-UX עבור פרופילים מנוהלים מקלים על המשתמשים לזהות, לגשת ולשלוט בפרופיל המנוהל.

השהה OTAs

@SystemApi חדש מאפשר לבעלי מכשירים להשהות עדכוני OTA ללא הגבלת זמן , כולל עדכוני אבטחה.

ביצועים

בריאות 2.0

אנדרואיד 9 ומעלה כולל android.hardware.health HAL 2.0, שדרוג גרסה מרכזי מ- health@1.0 HAL. למידע נוסף עיין בעמודים הבאים:

פתרון מטמון APK

אנדרואיד 9 ומעלה כולל פתרון APK לאחסון במטמון להתקנה מהירה של אפליקציות טעונות מראש במכשיר התומך במחיצות A/B. יצרני OEM יכולים למקם טעינות מוקדמות ואפליקציות פופולריות במטמון ה-APK המאוחסן בעיקר במחיצת B הריקה במכשירים חדשים עם מחיצות A/B מבלי להשפיע על מרחב נתונים הפונה למשתמש.

אופטימיזציה מונחית פרופיל

אנדרואיד 9 ומעלה תומכת בשימוש באופטימיזציה מונחה פרופיל (PGO) של Clang במודולי אנדרואיד מקוריים שיש להם כללי בניית שרטוט.

רישום כתיבה קדימה

מצב מיוחד של SQLiteDatabase הנקרא תאימות Write-ahead logging (WAL) מאפשר למסד נתונים להשתמש journal_mode=WAL תוך שמירה של מקסימום חיבור אחד לכל מסד נתונים.

זמני אתחול

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

כּוֹחַ

הגבלות רקע

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

מכשירים ללא סוללה

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