חדשות על מוצרים

גרסת הבטא השנייה של Android 17

משך הקריאה: 6 דקות
Matthew McCullough
סמנכ"ל ניהול מוצר, Android Developer

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

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

חוויית משתמש וממשק משתמש של המערכת

בועות

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

Bubbles.gif

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

התכונה 'בועות' עדיין לא מופעלת באופן מלא בגרסת בטא 2. הם יופיעו בגרסת build עתידית של Android 17.

EyeDropper API

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

Eyedropper_Tester.webp
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 רחבות. הוא מאפשר גם לבחור מתוך הפרופיל האישי או פרופיל העבודה במכשיר.

android-17-contact-picker.gif
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 מתקדמים לטווח

אנחנו מוסיפים תמיכה בשתי טכנולוגיות חדשות למדידת מרחק – 

  1. UWB DL-TDOA שמאפשר לאפליקציות להשתמש ב-UWB לניווט בתוך מבנים. ממשק ה-API הזה תואם למפרט FIRA (Fine Ranging Consortium) 4.0 DL-TDOA ומאפשר ניווט בתוך מבנים תוך שמירה על הפרטיות  (מניעת מעקב אחרי המכשיר על ידי נקודת העיגון).
  2. זיהוי קירבה שמאפשר לאפליקציות להשתמש במפרט החדש של טווח המרחקים שאומץ על ידי WFA (WiFi Alliance). הטכנולוגיה הזו מספקת אמינות ודיוק משופרים בהשוואה למפרט הטווח הקיים שמבוסס על Wi-Fi Aware.

שיפורים בחבילות גלישה

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

פונקציונליות ליבה, פרטיות וביצועים

גישה לרשת המקומית

ב-Android 17 הוצגה הרשאת זמן ההפעלה ACCESS_LOCAL_NETWORK כדי להגן על המשתמשים מפני גישה לא מורשית לרשת המקומית. ההרשאה הזו נכללת בקבוצת ההרשאות הקיימת NEARBY_DEVICES, ולכן משתמשים שכבר העניקו הרשאות אחרות NEARBY_DEVICES לא יתבקשו שוב לאשר את ההרשאה הזו. ההצהרה על ההרשאה הזו והבקשה לקבל אותה מאפשרות לאפליקציה לגלות מכשירים ברשת המקומית (LAN) ולהתחבר אליהם, כמו מכשירים לבית חכם או מכשירי Cast. כך נמנע מאפליקציות זדוניות לנצל גישה בלתי מוגבלת לרשת המקומית כדי לעקוב אחרי משתמשים ולזהות אותם בצורה חשאית. אפליקציות שמיועדות ל-Android בגרסה 17 ואילך יכללו עכשיו שתי דרכים לשמירה על תקשורת עם מכשירים ברשת LAN: שימוש בכלי לבחירת מכשירים שמתווך על ידי המערכת ושומר על הפרטיות כדי לדלג על בקשת ההרשאה, או בקשה מפורשת של ההרשאה החדשה הזו בזמן הריצה כדי לשמור על תקשורת ברשת המקומית.

שידור של שינוי בהסטה מאזור זמן

מערכת Android מספקת עכשיו שידור מהימן של intent, ACTION_TIMEZONE_OFFSET_CHANGED, שמופעל כשחל שינוי בהפרש אזור הזמן של המערכת, למשל במהלך מעבר לשעון קיץ. השינוי הזה משלים את שידורי הכוונות הקיימים ACTION_TIME_CHANGED ו-ACTION_TIMEZONE_CHANGED, שמופעלים כשחותמת הזמן של מערכת Unix משתנה וכשמזהה אזור הזמן משתנה, בהתאמה.

ניהול וקביעת סדרי עדיפויות של יחידות NPU

אפליקציות שמטרגטות ל-Android 17 וצריכות לגשת ישירות ל-NPU חייבות להצהיר על FEATURE_NEURAL_PROCESSING_UNIT במניפסט שלהן כדי למנוע חסימה של הגישה ל-NPU. הדבר כולל אפליקציות שמשתמשות ב-LiteRT NPU delegate, בערכות SDK ספציפיות לספקים וגם ב-NNAPI שהוצא משימוש.

תמיכה ב-ICU 78 וב-Unicode 17

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

הגנה על OTP ב-SMS

מערכת Android מרחיבה את ההגנה על OTP ב-SMS על ידי עיכוב אוטומטי של הגישה להודעות SMS עם OTP. בעבר, ההגנה התמקדה בעיקר בפורמט SMS Retriever, שבו מסירת הודעות שמכילות גיבוב של SMS Retriever מתעכבת ברוב האפליקציות למשך שלוש שעות. עם זאת, אפליקציות מסוימות כמו אפליקציה ל-SMS שמוגדרת כברירת מחדל וכו', והאפליקציה שתואמת לגיבוב, פטורות מההשהיה הזו. העדכון הזה מרחיב את ההגנה לכל הודעות ה-SMS עם OTP. ברוב האפליקציות, אפשר לגשת להודעות SMS שמכילות קוד אימות רק אחרי שלוש שעות, כדי למנוע חטיפת קוד אימות. השידור SMS_RECEIVED_ACTION ייחסם והשאילתות במסד הנתונים של ספק ה-SMS יסוננו. הודעת ה-SMS תהיה זמינה באפליקציות האלה אחרי העיכוב. 

גישה מושהית להודעות SMS בפורמט WebOTP

אם לאפליקציה יש הרשאה לקרוא הודעות SMS אבל היא לא הנמען המיועד של ה-OTP (כפי שנקבע באימות הדומיין), אפשר יהיה לגשת להודעת ה-SMS בפורמט WebOTP רק אחרי שלוש שעות. השינוי הזה נועד לשפר את אבטחת המשתמשים. הוא מבטיח שרק אפליקציות שמשויכות לדומיין שמוזכר בהודעה יוכלו לקרוא את קוד האימות באופן פרוגרמטי. השינוי הזה חל על כל האפליקציות, ללא קשר לרמת ה-API שהן מטרגטות.

גישה מושהית להודעות SMS רגילות עם OTP

ברוב האפליקציות, אם הודעת ה-SMS עם הסיסמה החד-פעמית לא מגיעה בפורמט WebOTP או SMS Retriever, אפשר לגשת אליה רק אחרי שלוש שעות. השינוי הזה חל רק על אפליקציות שמטרגטות Android 17 (רמת API‏ 37) ומעלה.

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

כל האפליקציות שמסתמכות על קריאת הודעות SMS כדי לחלץ קודי אימות חד-פעמיים צריכות לעבור לשימוש בממשקי ה-API של SMS Retriever או SMS User Consent כדי להבטיח שהפונקציונליות שלהן תמשיך לפעול.

לוח הזמנים של Android 17

אנחנו מתכננים לעבור במהירות מגרסת הבטא הזו לאבן הדרך של יציבות הפלטפורמה, שאמורה להתרחש במרץ. בשלב הזה, נספק את ממשקי ה-API הסופיים של SDK/NDK. מנקודת הזמן הזו ואילך, תוכלו לטרגט את SDK 37 ולפרסם את האפליקציה ב-Google Play כדי להשלים את הבדיקות ולאסוף משוב משתמשים בחודשים שלפני הזמינות לכלל המשתמשים (GA) של Android 17.

Android Release Timeline.png

שנה של השקות

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

Android Release Timeline_2.png

איך מתחילים להשתמש ב-Android 17

אתם יכולים לרשום כל מכשיר Pixel נתמך כדי לקבל את העדכון הזה ועדכוני בטא עתידיים של Android דרך OTA. אם אין לכם מכשיר Pixel, אתם יכולים להשתמש בקובצי אימג' של מערכת 64 ביט עם Android Emulator ב-Android Studio.

אם אתם משתתפים כרגע בתוכנית Android Beta, תוצע לכם אפשרות לעדכן את המכשיר לגרסת בטא 2 באמצעות עדכון אלחוטי (OTA).

אם יש לכם Android 26Q1 Beta ואתם רוצים לקבל את הגרסה היציבה הסופית של 26Q1 ולצאת מגרסת הבטא, אתם צריכים להתעלם מעדכון ה-OTA ל-26Q2 Beta 2 ולחכות לפרסום של 26Q1.

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

כדי ליהנות מחוויית הפיתוח הטובה ביותר עם Android 17, מומלץ להשתמש בגרסת הטרום-השקה (Preview) העדכנית של Android Studio (Panda). אחרי ההגדרה, הנה כמה דברים שכדאי לעשות:

  • קומפילציה מול ה-SDK החדש, בדיקה בסביבות CI ודיווח על בעיות בכלי המעקב שלנו בדף המשוב.
  • בודקים את התאימות של האפליקציה הנוכחית, בודקים אם האפליקציה מושפעת משינויים ב-Android 17, מתקינים את האפליקציה במכשיר או באמולטור עם Android 17 ומבצעים בדיקות מקיפות.

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

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

מידע מלא זמין באתר למפתחים של Android 17.

הצטרף לשיחה

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

נכתב על ידי:

להמשך הקריאה