היום אנחנו משיקים את גרסת הבטא השנייה של Android 17, וממשיכים לעבוד על פיתוח פלטפורמה שמתמקדת בפרטיות, באבטחה ובביצועים משופרים. העדכון הזה כולל מגוון יכולות חדשות, כולל EyeDropper API והכלי לבחירת אנשי קשר ששומר על הפרטיות. אנחנו מוסיפים גם טווחים מתקדמים, ממשקי API להעברה בין מכשירים ועוד.
הגרסה הזו ממשיכה את השינוי בקצב ההשקה שלנו, אחרי ההשקה השנתית של גרסת ה-SDK הראשית ברבעון השני עם עדכון SDK משני.
חוויית המשתמש וממשק המשתמש של המערכת
בועות
בועות הן תכונה של מצב חלונות שמציעה חוויית ממשק משתמש צף חדשה, בנפרד מה-API של בועות ההודעות. המשתמשים יכולים ליצור בועה של אפליקציה בטלפון, במכשיר המתקפל או בטאבלט שלהם על ידי לחיצה ארוכה על סמל האפליקציה במרכז האפליקציות. במסכים גדולים, יש סרגל בועות כחלק מסרגל האפליקציות, שבו המשתמשים יכולים לארגן בועות, לעבור ביניהן ולהעביר אותן לנקודות מעוגנות במסך וממנו.
כדי לוודא שהאפליקציות פועלות בצורה תקינה כבועות, צריך לפעול לפי ההנחיות לתמיכה במצב ריבוי חלונות.
הבועות עדיין לא מופעלות באופן מלא בגרסת בטא 2. הם יהיו זמינים בגרסה עתידית של Android 17.
EyeDropper API
API חדש של EyeDropper ברמת המערכת מאפשר לאפליקציה לבקש צבע מכל פיקסל במסך בלי לדרוש הרשאות רגישות לצילום מסך.
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
result -> if (result.resultCode == Activity.RESULT_OK) {
val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
// Use the picked color in your app
}
}
fun launchColorPicker() {
val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
eyeDropperLauncher.launch(intent)
}הכלי לבחירת אנשי קשר
כלי חדש לבחירת אנשי קשר ברמת המערכת באמצעות ACTION_PICK_CONTACTS מעניק גישת קריאה זמנית, מבוססת-סשן, רק לשדות הנתונים הספציפיים שהמשתמש ביקש, וכך מפחית את הצורך בהרשאות הרחבות של READ_CONTACTS. הוא גם מאפשר לבחור מתוך הפרופיל האישי או פרופיל העבודה של המכשיר.
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val uri = it.data?.data ?: return@rememberLauncherForActivityResult
// Handle result logic
processContactPickerResults(uri)
}
}
val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
putExtra(EXTRA_ALLOW_MULTIPLE, true)
putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}
contactPicker.launch(intent)תאימות קלה יותר של לכידת סמן עם לוחות מגע
בעבר, לוחות מגע דיווחו על אירועים בצורה שונה מאוד מעכברים כשאפליקציה תיעדה את הסמן, ודיווחו על מיקומי האצבעות בלוח המגע במקום על התנועות היחסיות שדווחו על ידי עכבר. בגלל זה היה קשה מאוד לתמוך בלוחות מגע כמו שצריך במשחקים בגוף ראשון. עכשיו, כברירת מחדל, המערכת תזהה תנועות של הסמן ושל גלילה כשהיא תתעד את לוח המגע, ותדווח עליהן בדיוק כמו על אירועים של העכבר. עדיין אפשר לבקש את נתוני המיקום המפורטים והישנים של האצבעות, על ידי בקשה מפורשת של תיעוד במצב "מוחלט" החדש.
// To request the new default relative mode (mouse-like events) // This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE view.requestPointerCapture() // To request the legacy absolute mode (raw touch coordinates) view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)
גבולות המנוחה של בורר אינטראקטיבי
באמצעות קריאה ל-getInitialRestingBounds ב-ChooserSession של Android, האפליקציה יכולה לזהות את מיקום היעד של בורר השיתוף אחרי שהאנימציות וטעינת הנתונים מסתיימות, וכך לבצע התאמות טובות יותר בממשק המשתמש.
קישוריות וחיבור בין מכשירים
העברת אפליקציות בין מכשירים
Handoff API חדש מאפשר לכם לציין את מצב האפליקציה שאתם רוצים להמשיך במכשיר אחר, כמו טאבלט Android. אחרי שמביעים הסכמה, המערכת מסנכרנת את המצב באמצעות CompanionDeviceManager ומציגה הצעה להעברה במרכז האפליקציות של המכשירים הסמוכים של המשתמש. התכונה הזו נועדה לאפשר למשתמשים להמשיך את המשימות שלהם בצורה חלקה, בדיוק מהנקודה שבה הם הפסיקו, בכל הסביבה העסקית של Android. חשוב לציין שהתכונה "העברה" תומכת גם במעברים מאפליקציית נייטיב אחת לאחרת וגם בחלופה של מעבר מאפליקציה לאתר. כך היא מספקת גמישות מקסימלית ומבטיחה חוויה מלאה גם אם אפליקציית הנייטיב לא מותקנת במכשיר המקבל.
ממשקי API מתקדמים למדידת טווח
אנחנו מוסיפים תמיכה בשתי טכנולוגיות חדשות למדידת טווח:
- UWB DL-TDOA שמאפשר לאפליקציות להשתמש ב-UWB לניווט בתוך מבנים. ממשק ה-API הזה תואם למפרט FIRA (Fine Ranging Consortium) 4.0 DL-TDOA ומאפשר ניווט בתוך מבנים תוך שמירה על הפרטיות (מניעת מעקב אחרי המכשיר על ידי העוגן).
- זיהוי קרבה שמאפשר לאפליקציות להשתמש במפרט החדש של מדידת טווח שאומץ על ידי WFA (WiFi Alliance). הטכנולוגיה הזו מספקת אמינות ודיוק משופרים בהשוואה למפרט הטווח הקיים שמבוסס על Wi-Fi Aware.
שיפורים בחבילות הגלישה
כדי לשפר את איכות המדיה, האפליקציה יכולה עכשיו לאחזר את קצבי הנתונים המקסימליים שהוקצו על ידי הספק לאפליקציות סטרימינג באמצעות getStreamingAppMaxDownlinkKbps ו-getStreamingAppMaxUplinkKbps.
פונקציונליות עיקרית, פרטיות וביצועים
גישה לרשת המקומית
ב-Android 17 נוספה ההרשאה בתחילת ההפעלה ACCESS_LOCAL_NETWORK כדי להגן על המשתמשים מפני גישה לא מורשית לרשת המקומית. ההרשאה הזו נכללת בקבוצת ההרשאות הקיימת NEARBY_DEVICES, ולכן משתמשים שכבר העניקו הרשאות אחרות מסוג NEARBY_DEVICES לא יתבקשו לעשות זאת שוב. אם תצהירו על ההרשאה הזו ותבקשו אותה, האפליקציה שלכם תוכל לגלות מכשירים ברשת המקומית (LAN) ולהתחבר אליהם, למשל מכשירים לבית חכם או מקלטי Cast. כך אפליקציות זדוניות לא יכולות לנצל גישה בלתי מוגבלת לרשת המקומית כדי לעקוב אחרי משתמשים באופן סמוי וליצור טביעת אצבע דיגיטלית. באפליקציות שמטרגטות את Android 17 ואילך, יש עכשיו שתי דרכים לשמור על התקשורת עם מכשירים ברשת המקומית: להשתמש בכלים לבחירת מכשירים ששומרים על הפרטיות ומתווכים על ידי המערכת כדי לדלג על בקשת ההרשאה, או לבקש באופן מפורש את ההרשאה החדשה הזו בזמן הריצה כדי לשמור על התקשורת ברשת המקומית.
שידור שינוי הסטה מאזור זמן
עכשיו Android מספקת Intent אמין לשידור, ACTION_TIMEZONE_OFFSET_CHANGED, שמופעל כשההיסט של אזור הזמן במערכת משתנה, למשל במעבר לשעון קיץ. האירוע הזה משלים את האירועים הקיימים ACTION_TIME_CHANGED ו-ACTION_TIMEZONE_CHANGED, שמופעלים כשחותמת הזמן של Unix משתנה וכשמזהה אזור הזמן משתנה, בהתאמה.
ניהול ותעדוף של NPU
כדי למנוע חסימה של הגישה ל-NPU, אפליקציות שמטרגטות ל-Android 17 וצריכות גישה ישירה ל-NPU חייבות להצהיר על FEATURE_NEURAL_PROCESSING_UNIT במניפסט שלהן. זה כולל אפליקציות שמשתמשות ב-LiteRT NPU delegate, ערכות SDK ספציפיות לספק וגם ב-NNAPI שהוצאה משימוש.
תמיכה ב-ICU 78 וב-Unicode 17
ספריות הליבה של ההתאמה לשוק הבינלאומי עודכנו ל-ICU 78, מה שמרחיב את התמיכה בבלוקים חדשים של סקריפטים, תווים ואמוג'י, ומאפשר עיצוב ישיר של אובייקטים של זמן.
הגנת OTP ב-SMS
אנחנו מרחיבים את ההגנה על OTP ב-SMS ב-Android, ומעכבים באופן אוטומטי את הגישה להודעות SMS עם OTP. בעבר, ההגנה התמקדה בעיקר בפורמט SMS Retriever, שבו העברת ההודעות שמכילות גיבוב (hash) של SMS Retriever מתעכבת בשלוש שעות ברוב האפליקציות. עם זאת, אפליקציות מסוימות, כמו אפליקציית ברירת המחדל להודעות SMS וכו' והאפליקציה שתואמת לגיבוב (hash), פטורות מהעיכוב הזה. העדכון הזה מרחיב את ההגנה לכל הודעות ה-SMS עם OTP. ברוב האפליקציות, הודעות SMS שמכילות OTP יהיו נגישות רק אחרי עיכוב של שלוש שעות, כדי למנוע פריצה ל-OTP. השידור של SMS_RECEIVED_ACTION יימנע, והשאילתות למסד הנתונים של ספק ה-SMS יסוננו. הודעת ה-SMS תהיה זמינה לאפליקציות האלה אחרי העיכוב.
גישה מאוחרת להודעות SMS בפורמט WebOTP
אם לאפליקציה יש הרשאה לקרוא הודעות SMS אבל היא לא הנמענת המיועדת של ה-OTP (כפי שנקבע באימות הדומיין), הודעת ה-SMS בפורמט WebOTP תהיה נגישה רק אחרי שיחלפו שלוש שעות. השינוי הזה נועד לשפר את אבטחת המשתמשים, ולוודא שרק אפליקציות שמשויכות לדומיין שמוזכר בהודעה יכולות לקרוא את קוד האימות באופן פרוגרמטי. השינוי הזה חל על כל האפליקציות, בלי קשר לרמת ה-API המיועדת שלהן.
גישה מאוחרת להודעות SMS רגילות עם סיסמה חד-פעמית
ברוב האפליקציות, הודעות SMS שמכילות סיסמה חד-פעמית ולא משתמשות בפורמטים WebOTP או SMS Retriever יהיו נגישות רק אחרי שלוש שעות. השינוי הזה חל רק על אפליקציות שמטרגטות את Android 17 (רמת API 37) ומעלה.
אפליקציות מסוימות, כמו אפליקציית ברירת המחדל ל-SMS, אפליקציית העזרה, אפליקציות נלוות למכשירים מחוברים וכו', יהיו פטורות מהעיכוב הזה.
כדי להבטיח שהפונקציונליות תמשיך לפעול, כל האפליקציות שמסתמכות על קריאת הודעות SMS לצורך חילוץ OTP צריכות לעבור לשימוש בממשקי ה-API של SMS Retriever או SMS User Consent.
לוח הזמנים של Android 17
אנחנו מתכננים לעבור במהירות מגרסת הבטא הזו לאבן הדרך של יציבות הפלטפורמה, שמתוכננת למרץ. בשלב הזה נספק את ממשקי ה-API הסופיים של SDK/NDK. מאותו רגע, האפליקציה שלכם תוכל לטרגט את SDK 37 ולפרסם אותה ב-Google Play כדי לעזור לכם להשלים את הבדיקות ולאסוף משוב מהמשתמשים בחודשים שלפני הזמינות לכלל המשתמשים (GA) של Android 17.
שנה של גרסאות חדשות
אנחנו מתכננים להמשיך לעדכן את Android 17 בסדרה של גרסאות רבעוניות. הגרסה הבאה שתצא ברבעון השני היא היחידה שבה נציג שינויים מתוכננים בהתנהגות של האפליקציה שעלולים לגרום לתקלות. אנחנו מתכננים להשיק גרסה משנית של ה-SDK ברבעון הרביעי, עם ממשקי API ותכונות נוספים.
איך מתחילים להשתמש ב-Android 17
אתם יכולים לרשום כל מכשיר Pixel נתמך כדי לקבל את העדכון הזה ועדכונים עתידיים של גרסת הבטא של Android באופן אלחוטי. אם אין לכם מכשיר Pixel, אתם יכולים להשתמש בקובצי אימג' של מערכת 64 ביט עם אמולטור Android ב-Android Studio.
אם אתם רשומים כרגע לתוכנית Android Beta, תקבלו הצעה לעדכון אלחוטי לגרסת בטא 2.
אם יש לכם את גרסת הבטא של Android 26Q1 ואתם רוצים להוריד את הגרסה היציבה הסופית של 26Q1 ולצאת מתוכנית הבטא, אתם צריכים להתעלם מהעדכון ב-OTA לגרסת הבטא 2 של 26Q2 ולהמתין להשקה של 26Q1.
נשמח לקבל מכם משוב, אז אתם מוזמנים לדווח על בעיות ולהגיש בקשות להוספת תכונות בדף המשוב. ככל שנקבל את המשוב שלכם מוקדם יותר, כך נוכל לכלול יותר ממנו בעבודה שלנו על הגרסה הסופית.
כדי ליהנות מחוויית הפיתוח הטובה ביותר ב-Android 17, מומלץ להשתמש בגרסת טרום-ההשקה (Preview) העדכנית של Android Studio (Panda). אחרי שתסיימו את ההגדרה, כדאי לבצע את הפעולות הבאות:
- מבצעים קומפילציה מול ה-SDK החדש, בודקים בסביבות CI ומדווחים על בעיות בכלי המעקב שלנו בדף המשוב.
- בודקים את התאימות של האפליקציה הנוכחית, בודקים אם האפליקציה מושפעת מהשינויים ב-Android 17, מתקינים את האפליקציה במכשיר או באמולטור שמותקנת בהם גרסת Android 17 ובודקים אותה באופן נרחב.
אנחנו נעדכן את קובצי האימג' של המערכת בגרסת טרום-השקה (Preview) או בטא ואת ה-SDK באופן קבוע במהלך מחזור ההשקה של Android 17. אחרי שמתקינים גרסת בטא, מקבלים עדכונים עתידיים באופן אוטומטי
אלחוטי בכל גרסאות טרום-ההשקה והבטא הבאות.
מידע מלא זמין באתר למפתחים של Android 17.
הצטרף לשיחה
אנחנו מתקדמים לקראת יציבות הפלטפורמה והזמינות לכלל המשתמשים של Android 17 בהמשך השנה, והמשוב שלכם הוא עדיין הנכס הכי חשוב שלנו. לא משנה אם אתם מראשוני המשתמשים בערוץ Canary או מפתחי אפליקציות שבודקים את גרסת בטא 2, כדאי לכם להצטרף לקהילות שלנו ולשלוח משוב. אנחנו מקשיבים.
-
חדשות על המוצרהיום, במפגש של מפתחי Android, אנחנו מכריזים על הזמינות הרחבה של הרבה כלים וממשקי API שנועדו להסיר את החיכוך היומיומי ולתת לכם יותר גמישות ליצור אפליקציות Android נהדרות.
Matthew McCullough • משך הקריאה: 4 דקות -
חדשות על המוצרהיום אנחנו משיקים את הקבוצה הראשונה של משימות ארוכות-טווח (LHT) – משימות מורכבות מאוד שלמהנדס לוקח כמה ימים או אפילו שבוע להשלים. אנחנו גם משיקים הערכת תפקוד של סוכנים, החל מסוכנים של ספקי מודלים תואמים.
Matthew McCullough • משך הקריאה: 3 דקות -
חדשות על המוצרהיום אנחנו משיקים את Android 17, והיא זמינה ברוב מכשירי Pixel הנתמכים. בחודשים הקרובים יושקו מכשירים חדשים עם Android 17.
Matthew McCullough • משך הקריאה: 13 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?