דף זה מסכם את התכונות העיקריות במהדורת אנדרואיד 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 ואילך, עיין בעמודים הבאים:
- ערכת פיתוח מקורית של ספקים (VNDK)
- תמיכה בבניית מערכת VNDK
- כלי ההגדרה של VNDK
- ספריות, כללים ומדיניות
- הרחבות VNDK
- מרחב שמות מקשר
בודק 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) ובבדיקת סינכרון מרובה מצלמות ומספקת סביבת בדיקה עקבית למדידת דיוק חותמת הזמן של המצלמה וחיישנים אחרים עבור טלפונים אנדרואיד. ראה דפים אלה למידע נוסף:
- מדריך התחלה מהירה ל-Sensor Fusion Box מספק שלבים להגדרת בדיקת היתוך החיישן ותיבת היתוך החיישן בפעם הראשונה.
- מכלול תיבת היתוך חיישן מספק שלבים להרכבת תיבת היתוך חיישנים.
שדה ראייה רחב 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
לא ניתנת.
כדי לאמת התנהגות זו, הפעל את הבדיקות הרובו-אלקטריות והידניות.
לבדיקה ידנית:
- עבור אל הגדרות > אפליקציות והתראות > גישה מיוחדת לאפליקציה > בקרת Wi-Fi .
- בחר וכבה את ההרשאה לאפליקציה שלך.
- ודא שהאפליקציה שלך יכולה להתמודד עם התרחיש שבו הרשאת
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% ובריאות טובה עם קריאת טמפרטורה רגילה על התרמיסטור שלו.