Android 10 כולל תכונות ויכולות נהדרות למשתמשים, למפתחים. במסמך הזה נדגיש את האפשרויות שזמינות למפתחים.
למידע נוסף על ממשקי ה-API, אפשר לקרוא את דוח ההבדלים של ממשקי ה-API. אפשר גם להיכנס אל חומר עזר בנושא Android API — מחפשים ממשקי API ש"נוספו רמת API 29. חשוב גם לבדוק את ההתנהגות של Android 10 (עבור אפליקציות שמטרגטות ברמת API 29 ועבור כל האפליקציות), וגם פרטיות , כדי ללמוד על תחומים שבהם עשויים להיות שינויים בפלטפורמה להשפיע על האפליקציות שלך.
שיפורי אבטחה
ב-Android 10 יש כמה תכונות אבטחה, שמפורטות בקטעים הבאים.
תיבות דו-שיח משופרות לאימות ביומטרי
ב-Android 10 השקנו את השיפורים הבאים: תמיכה באימות ביומטרי:
- בדיקה של היכולת לבצע אימות ביומטרי.
- מנגנון חלופי שמאפשר למשתמש לבצע אימות באמצעות המכשיר קוד אימות, קו ביטול נעילה או סיסמה, אם הם לא יכולים לבצע אימות באמצעות המידע הביומטרי שלהם מהקלט.
- רמז שמורה למערכת לא לדרוש אישור מהמשתמש אחרי שהמשתמש ביצע אימות באמצעות מודל ביומטרי משתמע. לדוגמה, אפשר: להודיע למערכת שאין צורך באישור נוסף לאחר שהמשתמש בוצע אימות באמצעות אימות פנים.
הרצת קוד DEX מוטמע ישירות מ-APK
החל מ-Android 10, אפשר להנחות את הפלטפורמה להריץ DEX מוטמע את הקוד ישירות מקובץ ה-APK של האפליקציה. האפשרות הזו יכולה לעזור במניעת מתקפה אם תוקף הצליח לשנות את הקוד שהורכב באופן מקומי במכשיר.
מידע נוסף זמין במאמר הפעלת קוד DEX מוטמע ישירות מ-APK.
תמיכה ב-TLS 1.3
ב-Android 10 נוסיף תמיכה TLS 1.3 TLS 1.3 הוא גרסה מעודכנת של תקן TLS, שכוללת יתרונות בביצועים ואבטחה משופרת. לפי מדדי הביצועים שלנו, אפשר ליצור חיבורים מאובטחים עד 40% מהר יותר באמצעות TLS 1.3 בהשוואה ל-TLS 1.2.
פרטים נוספים על ההטמעה שלנו של TLS 1.3 זמינים בקטע TLS בדף 'שינויים בהתנהגות בכל האפליקציות'.
ממשק API של Public Conscrypt
החל מ-Android 10, ספק האבטחה של Conscrypt כולל API ציבורי לפונקציונליות של TLS.
אוסף הכיתות
android.net.ssl
מכיל ערכים סטטיים
שיטות לגישה לפונקציונליות שאינה זמינה
ממשקי API של javax.net.ssl
. אפשר לבסס את השמות של המחלקות האלה בתור רבים
של הכיתה המתאימה ב-javax.net.ssl
. לדוגמה, קוד שפועל על מכונות של javax.net.ssl.SSLSocket
יכול להשתמש במקום זאת בשיטות מ-SSLSockets
.
תכונות הקישוריות
Android 10 כולל כמה שיפורים שקשורים לרשתות ולקישוריות.
ממשק API לחיבור לרשת Wi-Fi
ב-Android 10 נוספה תמיכה בחיבורים ישירים מקצה לקצה. הזה
מאפשרת לאפליקציה לבקש מהמשתמש לשנות את נקודת הגישה
אל המכשיר מחובר באמצעות
WifiNetworkSpecifier
כדי לתאר מאפיינים של רשת מבוקשת. החיבור מחשבון לחשבון משמש למטרות שאינן קשורות לספק הרשת, כמו הגדרת אתחול למכשירים משניים כמו חומרת Chromecast ו-Google Home.
אפשר לקרוא מידע נוסף במאמר בנושא API של בקשת רשת Wi-Fi מקצה לקצה (P2P) קישוריות..
ממשק API של הצעות לרשת Wi-Fi
ב-Android 10 נוספה תמיכה באפליקציה כדי לבקש מהמשתמשים להתחבר לנקודת גישה ל-Wi-Fi. אפשר להציע הצעות לרשת להתחברות ל. הפלטפורמה תבחר בסופו של דבר איזו נקודת גישה לאשר, בהתאם של קלט מאפליקציות אחרות ומאפליקציות אחרות.
מידע נוסף על התכונה הזו זמין במאמר הצעות לרשתות Wi-Fi.
שיפורים במצבים של ביצועים גבוהים וזמן אחזור קצר של ה-Wi-Fi
ב-Android 10 אפשר לספק רמז למודם הבסיסי כדי למזער זמן אחזור.
ב-Android 10 יש הרחבה של Wi-Fi lock API כדי לתמוך ביעילות במצב ביצועים גבוהים ובמצב זמן אחזור קצר. החיסכון בחשמל של Wi-Fi מושבת לביצועים גבוהים במצב זמן אחזור מהיר ושימוש באופטימיזציה נוספת של זמן האחזור ניתן. בהתאם לתמיכה במודם.
מצב זמן אחזור מהיר מופעל רק כאשר האפליקציה שמקבלת את הנעילה פועלת בחזית והמסך פועל. מצב זמן האחזור הקצר הוא שימושי במיוחד לאפליקציות משחקים לנייד בזמן אמת.
בדיקות מיוחדות במקודד DNS
ב-Android 10 נוספה תמיכה מקורית בחיפושים מיוחדים של DNS באמצעות חיפושים בטקסט ללא הצפנה ומצב DNS-over-TLS. בעבר, ה-DNS של הפלטפורמה
המקודד תומך רק ברשומות A ו-AAAA, שמאפשרות לחפש רק את כתובת ה-IP
כתובות שמשויכות לשם, אך לא תמכו בסוגי רשומות אחרים.
ה-API של DnsResolver
מספק מידע כללי,
רזולוציה אסינכרונית, שתאפשר לך לחפש SRV
, NAPTR
ועוד
סוגי רשומות. חשוב לזכור שניתוח התגובה נשאר באפליקציה לביצוע.
לאפליקציות שמבוססות על NDK:
android_res_nsend
חיבור קל ל-Wi-Fi
ב-Android 10 אפשר להשתמש ב-Easy Connect כדי להקצות Wi-Fi
פרטי כניסה למכשיר להשוואה, כתחליף ל-WPS שיצא משימוש.
אפליקציות יכולות לשלב את Easy Connect בתהליך ההגדרה וההקצאה שלהן באמצעות
ה
ACTION_PROCESS_WIFI_EASY_CONNECT_URI
בכוונה טובה.
למידע נוסף על התכונה הזו, אפשר לעיין במאמר בנושא Wi-Fi Easy Connect.
ממשק API של חיבור ישיר ל-Wi-Fi
למחלקות ה-API WifiP2pConfig
ו-WifiP2pManager
יש עדכונים ב-Android 10
כדי לתמוך ביכולות של יצירת חיבור מהיר אל Wi-Fi ישיר באמצעות
מידע שנקבע מראש. המידע הזה משותף דרך ערוץ צדדי,
Bluetooth או NFC.
דוגמת הקוד הבאה מראה איך ליצור קבוצה באמצעות ערכים שנקבעו מראש מידע:
Kotlin
val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager val channel = manager.initialize(this, mainLooper, null) // prefer 5G band for this group val config = WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build() // create a non-persistent group on 5GHz manager.createGroup(channel, config, null)
Java
WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); Channel channel = manager.initialize(this, getMainLooper(), null); // prefer 5G band for this group WifiP2pConfig config = new WifiP2pConfig.Builder() .setNetworkName("networkName") .setPassphrase("passphrase") .enablePersistentMode(false) .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ) .build(); // create a non-persistent group on 5GHz manager.createGroup(channel, config, null);
כדי להצטרף לקבוצה עם פרטי כניסה, צריך להחליף את המחרוזת manager.createGroup()
הבאים:
Kotlin
manager.connect(channel, config, null)
Java
manager.connect(channel, config, null);
ערוצים שמתמקדים בחיבור (CoC) ב-Bluetooth LE
מערכת Android 10 מאפשרת לאפליקציה להשתמש בחיבורי BLE CoC כדי להעביר נתונים גדולים יותר סטרימינג בין שני מכשירי BLE. הממשק הזה מפשט את ה-Bluetooth מכניקה של קישוריות כדי לפשט את ההטמעה.
תכונות של שירותי טלפוניה
ב-Android 10 יש כמה שיפורים שקשורים לטלפוניה.
שיפורים באיכות השיחה
ב-Android 10 נוספה האפשרות לאסוף מידע על איכות הדיווח שיחות IP המולטימדיה (IMS), כולל איכות אל הרשת וממנה, במכשירים שתומכים בתכונה הזו.
סינון שיחות וזיהוי מתקשר
מערכת Android 10 מספקת לאפליקציה אמצעי לזיהוי שיחות שלא
בפנקס הכתובות של המשתמש כשיחות ספאם פוטנציאליות וכדי לנהל שיחות ספאם
נדחה בטעות בשם המשתמש. כדי לספק למשתמשים שקיפות רבה יותר לגבי שיחות שהם מפספסים, המידע על השיחות החסומים מתועד ביומן השיחות כשיחות חסומים. השימוש ב-API הזה מבטל את הדרישה
כדי לקבל הרשאות READ_CALL_LOG
מהמשתמש כדי לבצע סינון שיחות
וזיהוי מתקשר.
ממשק ה-API של שירות הפניה אוטומטית של שיחות
מערכת Android 10 משנה את אופן הטיפול בכוונות שיחה.
השידור של NEW_OUTGOING_CALL
הוצא משימוש ומוחלף ב-
CallRedirectionService
API. ה-API של CallRedirectionService
מספק
ממשקים שמאפשרים לשנות שיחות יוצאות שמתבצעות באמצעות פלטפורמת Android. עבור
לדוגמה, אפליקציות צד שלישי עשויות לבטל שיחות ולנתב אותן מחדש באמצעות VoIP.
שיפורים ביצירת קבצים באחסון חיצוני
בנוסף להצגת היקף ההרשאות אחסון, ב-Android 10 נוספו היכולות הבאות שקשורות לאפליקציות חיצוניות אחסון:
- אפשר להשתמש ב
IS_PENDING
סימון כדי לתת לאפליקציה גישה בלעדית לקובץ מדיה כפי שהוא נכתב בדיסק. - אם ידוע לך על מיקום ספציפי שבו צריך לאחסן קבצים, יש לך אפשרות לספק למערכת רמז היכן לאחסן את הקבצים החדשים שנכתבו.
- לכל התקן אחסון חיצוני יש נפח אחסון ייחודי name.
מדיה וגרפיקה
ב-Android 10 יש את התכונות והממשקי ה-API החדשים הבאים לווידאו ולגרפיקה:
מתבצע שיתוף של קלט האודיו
ב-Android 10 נוספה האפשרות לשתי אפליקציות לשתף את קלט האודיו בו-זמנית. מידע מלא זמין במאמר שיתוף קלט אודיו.
הקלטת הפעלת אודיו
ב-Android 10, אפליקציה יכולה להקליט אודיו שנשמע מאפליקציות אחרות. לקבלת מידע מלא, ראו צילום תוכן.
סרגל דילוג בהתראות MediaStyle
החל מ-Android 10, התראות של MediaStyle
מציגות סרגל דילוג. סרגל הדילוג מראה
התקדמות ההפעלה מ:
PlaybackState.getPosition()
ובמקרים מסוימים ניתן להשתמש בסרגל הדילוג כדי לאתר מיקום במהלך ההפעלה
בתוכנית. המראה וההתנהגות של סרגל הדילוג נקבעים לפי הכללים הבאים:
- סרגל הדילוג מופיע אם יש
MediaSession
פעיל ומשך הזמן שלו (צוין על ידיMediaMetadata.METADATA_KEY_DURATION
) גדול מאפס. פירוש הדבר הוא שהסרגל לא מופיע עבור זרמים לא מוגדרים כמו שידורים חיים ושידורי רדיו. - אם בסשן מוטמע
ACTION_SEEK_TO
, המשתמש יכול לגרור את סרגל הדילוג כדי לשלוט במיקום ההפעלה.
Native MIDI API
ממשק Android Native MIDI API (AMidi) מאפשר למפתחי אפליקציות לשלוח ולקבל נתוני MIDI עם קוד C/C++, תוך שילוב הדוק יותר עם את לוגיקת האודיו/הבקר של C/C++ ומפחיתה את הצורך ב-JNI.
מידע נוסף זמין במאמר ממשק API של Android Native MIDI.
שיפורים ב-MediaCodecInfo
מערכת Android 10 מוסיפה שיטות אל
MediaCodecInfo
עם מידע נוסף
מידע על קודק.
מידע נוסף זמין במאמר קודקים של מדיה.
Thermal API
כשהמכשירים מתחממים מדי, יכול להיות שהם יגרמו לויסות הנתונים (CPU) או ה-GPU, והפעולה הזו עלולה משפיעים על אפליקציות ומשחקים בדרכים בלתי צפויות. אפליקציות שמשתמשות בגרפיקה מורכבת, או פעילות רשת ממושכת יותר הם בעלי סבירות גבוהה יותר לבעיות, הם עשויים להשתנות בהתאם למכשיר, בהתאם לערכת שבבים ולתדרי הליבה, וגם אריזת מכשיר וגורם צורה.
ב-Android 10, אפליקציות ומשחקים יכולים להשתמש ב-API תרמי כדי לעקוב אחר שינויים ב- במכשיר ולבצע פעולה כדי לשמור על צריכת אנרגיה נמוכה ולהחזיר את הסוללה למצב רגיל לטמפרטורה. אפליקציות רישום אוזן ב-PowerManager, שדרכו המערכת מדווח על מצב תרמי מתמשך שנע בין קל ובינוני לחזק, במצב קריטי, במקרי חירום ובכיבוי.
כשהמכשיר מדווח על מתח תרמי, אפליקציות ומשחקים יכולים לעזור בגיבוי פעילויות שוטפות להפחתת צריכת החשמל בדרכים שונות. לדוגמה, אפליקציות סטרימינג יכולות לצמצם את הרזולוציה/קצב העברת הנתונים או את התנועה ברשת, אפליקציה יכולה להשבית Flash או שיפור תמונה אינטנסיבי, משחק עלול להפחית קצב פריימים או עיצוב של פוליגון, אפליקציית מדיה עשויה להפחית את עוצמת הקול של הרמקול, ואפליקציית מפות Google יכולה לכבות את ה-GPS.
ל-API התרמי נדרשת שכבת HAL חדשה למכשיר – היא נתמכת כרגע במכשירי Pixel עם Android 10, ואנחנו עובדים עם יצרן המכשירים שלנו כדי לספק תמיכה רחבה בסביבה העסקית במהירות האפשרית.
מצלמה ותמונות
ב-Android 10 יש את התכונות החדשות הבאות שקשורות למצלמה ולתמונות:
תמיכה במצלמה מונוכרומטי
ב-Android 9 (רמת API 28) הושקה לראשונה יכולת שימוש במצלמה מונוכרומטית. ב-Android 10 נוספו כמה שיפורים לתמיכה במצלמות מונוכרום:
- תמיכה בפורמט זרם Y8 לשיפור יעילות הזיכרון.
- תמיכה בצילום DNG גולמי מונוכרומטי.
- הוספת ספירת CFA של MONO ו-NIR כדי להבדיל בין מצלמה רגילה מונוכרומטית לבין מצלמות אינפרה-אדום קרוב.
אפשר להשתמש בתכונה הזו כדי לצלם תמונה מונוכרום מקורית. היגיון מכשיר עם כמה מצלמות עשוי להשתמש במצלמה מונוכרומטית כמצלמת משנה פיזית כדי להשיג איכות תמונה טובה יותר בתאורה חלשה.
פורמט עומק דינמי
החל מ-Android 10, מצלמות יכולות לאחסן את נתוני העומק של תמונה נפרד, באמצעות סכימה חדשה שנקראת Dynamic Depth Format (DDF). האפליקציות יכולות גם את תמונת ה-JPG וגם את המטא-נתונים של העומק שלה, באמצעות מידע זה להחיל כל טשטוש שהם רוצים לאחר עיבוד בלי לשנות את המקור של נתוני תמונה.
כדי לקרוא את המפרט של הפורמט הזה: פורמט עומק דינמי.
פורמט של קובץ תמונה ביעילות גבוהה
פורמט 'קובץ תמונה' של יעילות גבוהה (HEIF) הוא פורמט סטנדרטי של תמונות וסרטונים לקבלת קידוד באיכות גבוהה יותר וגודל קובץ קטן יותר בהשוואה בפורמטים אחרים של קבצים.
למידע נוסף על פורמט הקובץ: HEIC.
שיפורים במספר מצלמות
מערכת Android 10 משפרת את השילוב של מספר מצלמות למצלמה לוגית אחת, תכונה שהוצגה ב-Android 9 (רמת API 28). הפריטים הבאים נוספו אל ה API של מצלמה2:
isSessionConfigurationSupported(SessionConfiguration sessionConfig)
– מאפשר לשאול אם הסשן שהועבר אפשר להשתמש בהגדרות האישיות כדי ליצור סשן של צילום מצלמה.LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
– מאפשר לכם לקבוע את המזהה של המצלמה הפיזית הפעילה שתומכת במכשיר המצלמה הלוגי. אפשר להשתמש במזהים שמוחזרים כדי לבקש שידורים לוגיים סטרימינג פיזי ממצלמות משנה להשגת יעילות אנרגטית טובה יותר.
ממשק API של שירותי נגישות
ב-Android 10 נוספו התכונות וממשקי ה-API החדשים הבאים לשירותי הנגישות:
סימון מפתח הרשומה של AccessibilityNodeInfo
החל מ-Android 10 אפשר להתקשר
isTextEntryKey()
כדי לקבוע אם AccessibilityNodeInfo
מייצג מפתח להזנת טקסט
שהוא חלק ממקלדת או ממקלדת.
קורא מסך קולי של תיבת דו-שיח בנושא נגישות
אם המשתמשים צריכים לבצע את קיצור הדרך לנגישות כדי להפעיל שירות נגישות, Android 10 מאפשר להציג את תיבת הדו-שיח ביחד עם הנחיה של המרת טקסט לדיבור, אם השירות מבקש זאת.
קיצור דרך לנגישות כאשר הניווט באמצעות תנועות מופעל
כשהתכונה ניווט באמצעות תנועות מופעלת ב-Android 10, תכונת הנגישות הלחצן לא גלוי או ניתן לבחירה. כדי לגשת לתפריט שירותי הנגישות, המשתמשים צריכים לבצע אחת מהתנועות הבאות:
- מחליקים למעלה עם שתי אצבעות.
- מחליקים למעלה עם שתי אצבעות ומחזיקים.
קיצור דרך לנגישות במקלדות פיזיות
ב-Android 10, המשתמשים יכולים להפעיל את קיצור הדרך לנגישות במקלדת פיזית על ידי לחיצה על Control+Alt+Z.
שיפור שלט רחוק למקלדת רכה
ב-Android 10, שירותי הנגישות יכולים לבקש תוצג גם כשהמכשיר מזהה מקלדת קשיחה. המשתמשים יכולים לשנות את ההתנהגות הזו.
זמן קצוב לתפוגה של נגישות בהגדרת המשתמש
Android 10 כולל את
getRecommendedTimeoutMillis()
API. השיטה הזו מספקת תמיכה בזמנים קצובים לתפוגה שהוגדרו על ידי המשתמש לביצוע פעולות אינטראקטיביות
ורכיבים לא אינטראקטיביים בממשק המשתמש. הערך המוחזר מושפע משני המשתמשים
וממשקי ה-API של שירות הנגישות.
שיפורים במילוי האוטומטי
מערכת Android 10 כוללת את השיפורים הבאים בשירות המילוי האוטומטי.
בקשות למילוי אוטומטי שקשורות לתאימות
אפשר להשתמש
FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST
סימון כדי לקבוע אם בקשה למילוי אוטומטי נוצרה באמצעות תאימות
במצב 'סינון תוכן'.
שמירת שם משתמש וסיסמה בו-זמנית
אפשר להשתמש בדגל SaveInfo.FLAG_DELAY_SAVE
כדי לתמוך במקרים שבהם אפליקציה משתמשת בכמה פעילויות כדי להציג שם משתמש, סיסמה ושדות אחרים.
אינטראקציה של משתמשים עם ממשק המשתמש של השמירה
אפשר להגדיר פעולה כדי להציג או להסתיר שדה סיסמה בתיבת הדו-שיח לשמירה של ה-listener בתיבת הדו-שיח ושינוי הרשאות הגישה של הסיסמה המתאימה. תצוגה מרחוק.
תמיכה בעדכון של מערכי נתונים
המילוי האוטומטי יכול לעדכן סיסמאות קיימות. לדוגמה, אם משתמש כבר מאוחסנים בסיסמה חדשה, והם שומרים סיסמה חדשה, תכונת המילוי האוטומטי מבקשת מהמשתמש לעדכן את הסיסמה הקיימת במקום לשמור סיסמה חדשה.
שיפורים בסיווג השדות
מערכת Android 10 כוללת את השיפורים הבאים ב-Field Classification API.
constructor של UserData.Builder
UserData.Builder
constructor השתנה כדי ליישר טוב יותר את הדפוס Builder
.
מתן הרשאה למפות ערך לכמה סוגים של מזהי קטגוריות
בזמן השימוש
UserData.Builder
אינץ'
ב-Android 10 אפשר עכשיו למפות ערך לכמה סוגים של מזהי קטגוריות. לחשבון
בגרסאות קודמות, נרשמה חריגה אם ערך נוסף יותר מפעם אחת.
תמיכה משופרת במספרי כרטיסי אשראי
סיווג השדות יכול עכשיו לזהות מספרים בני ארבע ספרות כארבע הספרות האחרונות של מספר כרטיס אשראי.
תמיכה בסיווג שדות ספציפיים לאפליקציה
הוספה של Android 10
FillResponse.setUserData()
,
שמאפשר להגדיר נתוני משתמש ספציפיים לאפליקציה במהלך הסשן.
כך שירות המילוי האוטומטי יכול לזהות סוגים של שדות עם נתונים ספציפיים לאפליקציה
תוכן.
רכיבים אינטראקטיביים ואמצעי בקרה במערכת
ב-Android 10 יש את השיפורים הבאים בממשק המשתמש:
תמיכה במכסות של JVMTI PopFrame
ב-Android 10 נוסיף תמיכה
can_pop_frames
בהטמעת JVMTI של Android. התכונה הזו במהלך ניפוי באגים
מאפשרת להריץ מחדש פונקציות אחרי השהיה בנקודת עצירה
מקומיים, שאלות ותשובות או יישום של פונקציה. מידע נוסף זמין במאמר הבא:
דף העזר בנושא מסגרת Pop של Oracle.
ממשק API לבקרת משטח
מערכת Android 10 מספקת
SurfaceControl
API
לגישה ברמה נמוכה למרכיב המערכת
(SurfaceFlinger
). עבור
רוב המשתמשים, SurfaceView הוא הדרך הנכונה להשתמש במרכיב.
SurfaceControl
API יכול להיות שימושי במקרים מסוימים, לדוגמה:
- סנכרון של כמה פלטפורמות
- הטמעה של משטח במספר תהליכים
- ניהול משך חיים ברמה נמוכה יותר
ממשק ה-API של SurfaceControl
זמין גם בSDK וגם בקישור ל-NDK.
הטמעת NDK כוללת API להחלפה ידנית של אגירת נתונים עם
קומפוזיטור. הדבר מספק חלופה למשתמשים שנתקלו
מגבלות של
BufferQueue
זיהוי מצב רעב ב-WebView
Android 10 כולל את
WebViewRenderProcessClient
מופשט, שבו אפליקציות יכולות להשתמש כדי לזהות
WebView
לא מגיב. שפת תרגום
להשתמש בכיתה הזו:
- להגדיר מחלקה משנית ולהטמיע אותה
onRenderProcessResponsive()
וגםonRenderProcessUnresponsive()
שיטות. - צירוף מופע של
WebViewRenderProcessClient
לאחד או יותרWebView
אובייקטים. - אם ה-
WebView
לא מגיב, המערכת קוראת לשיטהonRenderProcessUnresponsive()
של הלקוח, ומעבירה את הערכיםWebView
ו-WebViewRenderProcess
. (אםWebView
הוא בתהליך יחיד, הערך שלWebViewRenderProcess
null). האפליקציה יכולה לבצע את הפעולה המתאימה, כמו הצגת תיבת דו-שיח למשתמש ששואלת אם הוא רוצה לעצור את תהליך העיבוד.
אם WebView
לא מגיב, המערכת קוראת ל-onRenderProcessUnresponsive()
מדי פעם (לא יותר מפעם אחת בכל חמש שניות), אבל לא מבצעת כל פעולה אחרת.
אם WebView
מגיב
שוב, המערכת קוראת ל-onRenderProcessResponsive()
רק פעם אחת.
חלוניות ההגדרות
ב-Android 10 מופיע חלונית ההגדרות, ממשק API שמאפשר לאפליקציות להציג למשתמשים הגדרות בהקשר של האפליקציה. כך המשתמשים לא צריכים להיכנס להגדרות כדי לשנות דברים כמו NFC או נתונים ניידים כדי להשתמש באפליקציה.
לדוגמה, נניח שמשתמש פותח דפדפן אינטרנט בזמן שהמכשיר שלו במצב טיסה. לפני Android 10, האפליקציה הייתה יכולה להציג רק הודעה גנרית. ולבקש מהמשתמש לפתוח את ההגדרות כדי לשחזר את הקישוריות. ב-Android 10, אפליקציית הדפדפן יכולה להציג חלונית מוטבעת שמציגה את הגדרות הקישוריות העיקריות כמו מצב טיסה, Wi-Fi (כולל רשתות בקרבת מקום) ונתונים סלולריים. ב- בחלונית הזו, משתמשים יוכלו לשחזר את הקישוריות בלי לצאת מהאפליקציה.
כדי להציג חלונית הגדרות, יש להפעיל Intent באמצעות אחת מהאפשרויות הבאות
Settings.Panel
פעולות:
Kotlin
val panelIntent = Intent(Settings.Panel.settings_panel_type) startActivityForResult(panelIntent)
Java
Intent panelIntent = new Intent(Settings.Panel.settings_panel_type); startActivityForResult(panelIntent);
הערך של settings_panel_type
יכול להיות אחד מהערכים הבאים:
ACTION_INTERNET_CONNECTIVITY
- הצגת הגדרות שקשורות לקישוריות לאינטרנט, כמו מצב טיסה, Wi-Fi, וחבילת הגלישה.
ACTION_WIFI
- הצגת הגדרות Wi-Fi, אבל לא הגדרות הקישוריות האחרות. הדבר שימושי לאפליקציות שצריכות חיבור Wi-Fi כדי לבצע העלאות גדולות או הורדות.
ACTION_NFC
- כאן מוצגות כל ההגדרות שקשורות לתקשורת מטווח קצר (NFC).
ACTION_VOLUME
- הצגת הגדרות עוצמת הקול לכל שידורי האודיו.
שיפורים בשיתוף
ב-Android 10 יש כמה שיפורים בשיתוף:
API לשיתוף קיצורי דרך
שיתוף קיצורי דרך ב-API מחליפה את השיתוף הישיר ממשקי API.
במקום לאחזר תוצאות לפי דרישה, Share Shortcuts API
מאפשרת לאפליקציות לפרסם יעדי שיתוף ישיר מראש. כך
ShortcutManager
פועל.
שני ממשקי ה-API דומים, ולכן הרחבנו את ShortcutInfo
API כדי להקל על השימוש בשתי התכונות. באמצעות Share Shortcuts API אפשר להקצות באופן ישיר
קטגוריות או אנשים ליעד שיתוף. יעדי השיתוף נשמרים במערכת
עד שאותה אפליקציה תעדכן אותם או שהיא תוסר.
המנגנון הישן של שיתוף ישיר עדיין פועל, אבל לאפליקציות שמשתמשות בו יש בעדיפות גבוהה יותר מאשר אפליקציות שמשתמשות בממשק ה-API של קיצורי דרך לשיתוף.
ShortcutInfo.Builder
מוסיף ומשפר שיטות כדי לספק מידע נוסף על יעד השיתוף.
יעדי שיתוף ישיר
אפשר לפרסם קיצור דרך דינמי בתור יעד שיתוף ישיר. למידע נוסף, ראו פרסום של יעדי שיתוף ישיר.
ShortcutManagerCompat
הוא ממשק API חדש של AndroidX שמספק תאימות לאחור עם DirectShare API הישן. הזה
היא הדרך המועדפת לפרסם יעדי שיתוף.
תצוגה מקדימה של טקסט
כשאפליקציה משתפת תוכן טקסט, היא יכולה להציג תצוגה מקדימה אופציונלית של את התוכן בממשק המשתמש של Sharesheet.
הוספת תצוגות מקדימות של טקסט עשיר
מידע נוסף
כדי לקבל מידע נוסף על הדרכים שבהן אפליקציות יכולות לשתף נתונים: אפשר לקרוא את המאמר שליחת נתונים פשוטים לאפליקציות אחרות קבלת נתונים פשוטים מאפליקציות אחרות
עיצוב כהה
ב-Android 10 יש עיצוב כהה שרלוונטי גם ל-Android ממשק המשתמש של המערכת והאפליקציות שפועלות במכשיר. כדי לקבל את המידע המלא, ראו עיצוב כהה.
סוגי השירותים שפועלים בחזית
Android 10 כולל את
foregroundServiceType
למאפיין מניפסט XML, שאותו כוללים בהגדרה של כמה
שירותים שונים. ניתן להקצות מספר פונקציות, אך לעיתים רחוקות
סוגי שירותים שפועלים בחזית לשירות מסוים.
בטבלה הבאה מוצגים הסוגים השונים של השירותים שפועלים בחזית שירותים שבהם מתאים להצהיר על סוג ספציפי:
סוג השירות שפועל בחזית | תרחיש לדוגמה של שירות שצריך להצהיר עליו מהסוג הזה |
---|---|
connectedDevice
| מעקב אחר מכשיר מעקב כושר לביש |
dataSync
| הורדת קבצים מרשת |
location
| המשך פעולה ביוזמת המשתמש |
mediaPlayback
| להשמיע ספר אודיו, פודקאסט או מוזיקה. |
mediaProjection
| צילום סרטון של תצוגת המכשיר במשך פרק זמן קצר |
phoneCall
| טיפול בשיחה פעילה בטלפון |
Kotlin
Android 10 כולל את העדכונים הבאים לפיתוח ב-Kotlin.
הערות עם אפשרות ביטול בממשקי API של libcore
ב-Android 10 יש שיפור בכיסוי של הערות אפסיות SDK של ממשקי API של libcore. ההערות האלה מאפשרות למפתחי אפליקציות שמשתמשים ניתוח יכולת האפס ב-Android Studio או ב-Kotlin או ב-Java כדי לקבל null במהלך האינטראקציה עם ממשקי ה-API האלה.
בדרך כלל, הפרות של חוזה אפסיות ב-Kotlin גורמות להידור
שגיאות. כדי להבטיח תאימות עם הקוד הקיים, עליך להזין רק את
נוספו @RecentlyNullable
ו-@RecentlyNonNull
הערות. כלומר
שהפרות של יכולת null גורמות להצגת אזהרות במקום לשגיאות.
בנוסף, כל ההערות של @RecentlyNullable
או @RecentlyNonNull
שנוספו ב-Android 9 ישתנו ל-@Nullable
ול-@NonNull
בהתאמה.
המשמעות היא שב-Android 10 ואילך, הפרות של תכונת ה-null
יובילו לשגיאות במקום לאזהרות.
מידע נוסף על השינויים בהערות זמין במאמר Android Pay SDK ידידותי יותר ל-Kotlin ב-Android Developers Blog.
NDK
ב-Android 10 נכללים השינויים הבאים ב-NDK.
שיפור ניפוי הבאגים של הבעלות על מתאר הקובץ
ב-Android 10 נוספה fdsan, שבעזרתה קל יותר למצוא ולתקן בעיות בעלות של מתאר קובץ.
באגים שקשורים לטיפול לקוי בבעלות של מתארי קבצים, שבדרך כלל בא לידי ביטוי כמו שימוש אחרי סגירה וסגירה כפולה, מקבילים להקצאת זיכרון באגים use-after-free ו-Doubles, אבל הם נוטים להיות הרבה יותר קשים לאבחן ולתקן. fdsan מנסה לזהות תיאור של קובץ ו/או למנוע אותו ניהול שגוי על ידי אכיפת הבעלות על מתאר הקבצים.
למידע נוסף על קריסות שקשורות לבעיות האלה, ראו שגיאה שזוהתה על ידי fdsan. למידע נוסף על fdsan, כדאי לעיין דף Googlesource ב-fdsan.
TLS (אבטחת שכבת התעבורה) ב-ELF
אפליקציות שפותחו באמצעות ה-NDK עם רמת API מינימלית של 29 יכולות להשתמש ב-ELF TLS
במקום emutls
. נוספה תמיכה במנגנון לקישור דינמי וסטטי
השיטה הזאת לטיפול במשתנים מקומיים בשרשורים.
יושמו שיפורים באפליקציות שמיועדות לרמת API 28 ומטה
ל-libgcc/compiler-rt
כדי לפתור כמה בעיות שקשורות ל-emutls
.
מידע נוסף זמין במאמר הבא: שינויים ב-Android למפתחי NDK.
סביבת זמן הריצה
ב-Android 10 נכללים השינויים הבאים בסביבת זמן הריצה.
הפעלת איסוף אשפה מבוסס-mallinfo
כשאובייקטים של Java בפלטפורמה קטנים מפנים לאובייקטים עצומים בערימת C++ , לעיתים קרובות אפשר להחזיר אובייקטים מסוג C++ רק כאשר אובייקט Java נאסף, וגם לדוגמה, סופי. במהדורות קודמות, הפלטפורמה העריכה את המידות של הרבה אובייקטים של C++ שמשויכים לאובייקטים של Java. ההערכה הזו לא תמיד הייתה ולפעמים הביא לעלייה משמעותית בשימוש בזיכרון, הפלטפורמה לא הצליחה לאסוף אשפה כשהדבר היה אמור להיות.
ב-Android 10, מנקה האשפה (GC) עוקב אחרי הגודל הכולל של אשכול הזיכרון שהוקצה על ידי המערכת malloc()
, כדי לוודא שהקצאות גדולות של malloc()
תמיד נכללות בחישובים שמפעילים את GC. כתוצאה מכך, יכול להיות שבאפליקציות שמשתמשות בשילוב של מספר גדול של הקצאות ב-C++ עם ביצוע ב-Java תהיה עלייה בתדירות האיסוף של האשפה. באפליקציות אחרות עשויה להיות ירידה קטנה.
בדיקה וניפוי באגים
מערכת Android 10 כוללת את השיפורים הבאים לצורך בדיקה וניפוי באגים.
שיפורים במעקב אחר המערכת במכשיר
החל מ-Android 10, אפשר לציין מגבלות על הגודל והמשך של המעקב כשמבצעים מעקב מערכת במכשיר. כשמציינים בכל אחד מהערכים האלה, המערכת מבצעת מעקב ארוך ומעתיקה מדי פעם את המעקב מאגר נתונים זמני לקובץ היעד בזמן שהמעקב מתועד. המעקב מסתיים כשמגיעים למגבלת הגודל או משך הזמן שציינתם.
הפרמטרים הנוספים הבאים מאפשרים לכם לבדוק תרחישים לדוגמה שונים מאלה שהייתם בודקים עם מעקב סטנדרטי. לדוגמה, יכול להיות שאתם מאבחנים באג בביצועים שמתרחש רק אחרי שהאפליקציה פועלת במשך זמן רב. במקרה כזה, תוכלו לתעד מעקב ארוך במשך יום שלם, ואז לנתח את מתזמן המעבד, את פעילות הדיסק, את שרשראות האפליקציות ונתונים אחרים בדוח כדי לקבוע את הגורם לבאג.
ב-Android מגרסה 10 ואילך, קובצי מעקב נשמרים בפורמט אפשר לפתוח אותו באמצעות Perfetto, פרויקט בקוד פתוח לאינסטרומנטציה של ביצועים ולמעקב. אפשר המרת קובצי מעקב של Perfetto ל-Systrace .
שיפורים במסווגי טקסט
ב-Android 10 יש פונקציונליות נוספת של סיווג טקסט
TextClassifier
גרפי.
זיהוי שפה
השיטה detectLanguage()
פועלת באופן דומה לשיטות סיווג קיימות. הוא
מקבל
TextLanguage.Request
ומחזירה את הפונקציה
TextLanguage
לאובייקט.
TextLanguage
אובייקטים מורכבים מרשימה של זוגות סדורים. כל זוג מכיל מקום ותוצאת סבירות תואמת לסיווג.
הצעות לפעולות בשיחה
השיטה suggestConversationActions()
פועלת באופן דומה לשיטות סיווג קיימות. הוא מקבל
ConversationActions.Request
ומחזירה את הפונקציה
ConversationActions
לאובייקט.
ConversationActions
אובייקטים מורכבים מרשימה של
ConversationAction
אובייקטים. כל אובייקט ConversationAction
כולל פוטנציאל
פעולה שהוצעה וציון המהימנות שלה.
תשובות/פעולות חכמות בהתראות
ב-Android 9 נוספה האפשרות להציג הצעות לתשובות בתוך התראה. מערכת Android 10 מרחיבה את התכונה הזו עם היכולת לכלול הצעות לפעולות שמבוססות על כוונת רכישה. בנוסף, הפלטפורמה יכולה ליצור את ההצעות האלה באופן אוטומטי. אפליקציות עדיין יכולות לספק משלהן הצעות כאלה, או לבטל את ההסכמה לקבלת הצעות שהמערכת יוצרת.ה-API שמשמש ליצירת התשובות האלה הוא חלק מ-TextClassifier
, וגם נחשף ישירות למפתחים ב-Android 10.
מידע נוסף זמין בקטע על השיפורים ב-TextClassifier.
אם האפליקציה מספקת הצעות משלה, הפלטפורמה לא יוצרת
הצעות אוטומטיות. אם לא רוצים שההתראות מהאפליקציה יוצגו
הצעות לתשובות או לפעולות, אפשר לבטל את ההסכמה לתשובות שהמערכת יוצרת
ופעולות באמצעות
setAllowGeneratedReplies()
וגם
setAllowSystemGeneratedContextualActions()