בדומה לגרסאות קודמות, Android 17 כולל שינויים בהתנהגות שעשויים להשפיע על האפליקציה שלכם. שינויי ההתנהגות הבאים רלוונטיים רק לאפליקציות שמטרגטות את Android 17 ואילך. אם האפליקציה שלכם מטרגטת את Android מגרסה 17 ואילך, אתם צריכים לשנות את האפליקציה כדי שהיא תתמוך בהתנהגויות האלה, במקרים הרלוונטיים.
חשוב גם לבדוק את רשימת השינויים בהתנהגות שמשפיעים על כל האפליקציות שפועלות ב-Android 17, בלי קשר ל-targetSdkVersion של האפליקציה.
פונקציונליות עיקרית
Android 17 כוללת את השינויים הבאים, שמשנים או מרחיבים יכולות ליבה שונות של מערכת Android.
הטמעה חדשה של MessageQueue שלא דורשת נעילה
Beginning with Android 17, apps targeting Android 17
or higher receive a new lock-free implementation of
android.os.MessageQueue. The new implementation improves performance and
reduces missed frames, but may break clients that reflect on MessageQueue
private fields and methods.
For more information, including mitigation strategies, see MessageQueue behavior change guidance.
נגישות
ב-Android 17 בוצעו השינויים הבאים כדי לשפר את הנגישות.
תמיכה בנגישות של הקלדה במקלדת פיזית באמצעות כלי IME מורכבים
התכונה הזו כוללת ממשקי API חדשים של AccessibilityEvent ושל TextAttribute
שמשפרים את קורא המסך הקולי לקלט בשפות CJKV. אפליקציות של CJKV IME יכולות עכשיו לסמן אם נבחר מועמד להמרת טקסט במהלך כתיבת הטקסט. אפליקציות עם שדות עריכה יכולות לציין סוגים של שינויי טקסט כששולחים אירועי נגישות של שינוי טקסט.
לדוגמה, אפליקציות יכולות לציין ששינוי בטקסט התרחש במהלך כתיבת הטקסט, או ששינוי בטקסט נבע מביצוע commit.
הפעולה הזו מאפשרת לשירותי נגישות כמו קוראי מסך לספק משוב מדויק יותר על סמך אופי השינוי בטקסט.
אימוץ האפליקציה
אפליקציות IME: כשמגדירים כתיבת טקסט בשדות עריכה, אפליקציות IME יכולות להשתמש ב-
TextAttribute.Builder.setTextSuggestionSelected()כדי לציין אם נבחר מועמד ספציפי להמרה.אפליקציות עם עריכת שדות: אפליקציות ששומרות
InputConnectionמותאם אישית יכולות לאחזר נתונים של בחירת מועמדים על ידי קריאה ל-TextAttribute.isTextSuggestionSelected(). אחרי זה, האפליקציות האלה צריכות לקרוא ל-AccessibilityEvent.setTextChangeTypes()כששולחים אירועיTYPE_VIEW_TEXT_CHANGED. התכונה הזו מופעלת כברירת מחדל באפליקציות שמטרגטות Android 17 ומשתמשות ב-TextViewהרגיל. (כלומר,TextViewיטפל באחזור נתונים מ-IME ובהגדרת סוגי שינויים בטקסט כששולחים אירועים לשירותי נגישות).שירותי נגישות: שירותי נגישות שמבצעים עיבוד של אירועי
TYPE_VIEW_TEXT_CHANGEDיכולים לבצע קריאה ל-AccessibilityEvent.getTextChangeTypes()כדי לזהות את אופי השינוי ולהתאים את אסטרטגיות המשוב שלהם בהתאם.
אבטחה
ב-Android 17 בוצעו השיפורים הבאים באבטחת המכשירים והאפליקציות.
אבטחת פעילות
In Android 17, the platform continues its shift toward a "secure-by-default" architecture, introducing a suite of enhancements designed to mitigate high-severity exploits such as phishing, interaction hijacking, and confused deputy attacks. This update requires developers to explicitly opt in to new security standards to maintain app compatibility and user protection.
Key impacts for developers include:
- BAL hardening & improved opt-in: We are refining Background Activity
Launch (BAL) restrictions by extending protections to
IntentSender. Developers must migrate away from the legacyMODE_BACKGROUND_ACTIVITY_START_ALLOWEDconstant. Instead, you should adopt granular controls likeMODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE, which restricts activity starts to scenarios where the calling app is visible, significantly reducing the attack surface. - Adoption tools: Developers should utilize strict mode and updated lint checks to identify legacy patterns and ensure readiness for future target SDK requirements.
הגנות ב-localhost
כדי לשפר את אבטחת הפלטפורמה ואת פרטיות המשתמשים, ב-Android 17 מוצגת הרשאה חדשה בזמן ההתקנה, USE_LOOPBACK_INTERFACE. השינוי הזה מגביל את התקשורת בין אפליקציות ובין פרופילים דרך ממשק לולאה חוזרת (לדוגמה, 127.0.0.1 או ::1), שהייתה מותרת באופן מרומז בעבר עם ההרשאה INTERNET. באפליקציות שמטרגטות ל-Android 17 ואילך, הכללים הבאים חלים:
- נדרשת הסכמה הדדית: כברירת מחדל, התקשורת בין אפליקציות ובין פרופילים חסומה. כדי שהחיבור יצליח, גם האפליקציה השולחת וגם האפליקציה המקבלת צריכות להצהיר במפורש על ההרשאה
USE_LOOPBACK_INTERFACEבמניפסטים שלהן. - תנועה בתוך האפליקציה שפטורה מההרשאה: תקשורת לולאה חוזרת בתוך אותה אפליקציה (תקשורת בתוך האפליקציה) לא מושפעת מהשינוי ולא דורשת את ההרשאה החדשה הזו.
- התנהגות של גרסת יעד של SDK:
- האפליקציה מטרגטת ל-Android 17 ומעלה: צריך לבקש את ההרשאה באופן מפורש. אם הוא חסר, פעולות שקע (כמו חיבור TCP או שליחת UDP) נכשלות, ובדרך כלל מחזירות שגיאה
EPERM(הפעולה לא מורשית). - האפליקציה מכוונת לרמת API 36 ומטה: ההרשאה נחשבת להרשאה מפוצלת ב-
INTERNET. אפליקציות שמטרגטות רמות API נמוכות יותר מקבלות את ההרשאה הזו באופן אוטומטי אם יש להן הרשאהINTERNET.
- האפליקציה מטרגטת ל-Android 17 ומעלה: צריך לבקש את ההרשאה באופן מפורש. אם הוא חסר, פעולות שקע (כמו חיבור TCP או שליחת UDP) נכשלות, ובדרך כלל מחזירות שגיאה
- אזהרת תאימות: אם אפליקציה מקבלת מעדכנת את הטירגוט שלה ל-Android 17, אבל לא מבקשת את ההרשאה הזו, חיבורים נכנסים מאפליקציות אחרות יידחו, גם אם אפליקציית השליחה מטרגטת רמת API נמוכה יותר.
הפעלה של CT כברירת מחדל
If an app targets Android 17 or higher, certificate transparency (CT) is enabled by default. (On Android 16, CT is available but apps had to opt in.)
DCL מקורי מאובטח יותר – C
אם האפליקציה שלכם מטרגטת Android 17 ואילך, ההגנה על טעינת קוד דינמית (DCL) בטוחה יותר, שהוצגה ב-Android 14 לקובצי DEX ו-JAR, חלה עכשיו גם על ספריות מקוריות.
כל הקבצים המקוריים שנטענו באמצעות System.load() צריכים להיות מסומנים כקריאה בלבד.
אחרת, המערכת תציג את השגיאה UnsatisfiedLinkError.
מומלץ להימנע ככל האפשר מטעינה דינמית של קוד באפליקציות, כי פעולה כזו מגדילה מאוד את הסיכון שאפליקציה תיפרץ על ידי הזרקת קוד או שינוי קוד.
גורמי צורה של מכשירים
Android 17 כוללת את השינויים הבאים לשיפור חוויית המשתמש במגוון גדלים וסוגים של מכשירים.
שינויים ב-API של הפלטפורמה כדי להתעלם מהגבלות על כיוון, שינוי גודל ויחס גובה-רוחב במסכים גדולים (sw>=600dp)
We introduced Platform API changes in Android 16 to ignore orientation, aspect ratio, and resizability restrictions on large screens (sw >= 600dp) for apps targeting API level 36 or higher. Developers have the option to opt out of these changes with SDK 36, but this opt-out will no longer be available for apps that target Android 17 or higher.
For more information, see Restrictions on orientation and resizability are ignored.