Android 17 כבר כאן
משך הקריאה: 13 דקות
היום אנחנו משיקים את Android 17 ומפרסמים אותו ברוב מכשירי Pixel הנתמכים. בחודשים הקרובים יושקו מכשירים חדשים עם Android 17.
Android 17 מסמן את תחילת המעבר שלנו למערכת חכמה, שבה האפליקציות שלכם נמצאות במרכז. אנחנו עוברים לסטנדרטים של פיתוח שמתבססים על יכולת הסתגלות, ומציגים חובה של שינוי גודל במסכים גדולים, תוך כדי שאנחנו מספקים פרטיות, אבטחה, מדיה, מצלמה וביצועים מהדור הבא. בפוסט הזה נסביר על כל אלה, וגם על האופן שבו אנחנו משלבים בין כלים, ספריות ויכולות של סוכנים מהדור הבא כדי לעזור לאפליקציות שלכם לנצל את ההזדמנות הזו.
במהלך השנה האחרונה, משלב ערוץ Canary ועד לגרסאות הבטא, שיתפנו פעולה עם רבים מכם בקהילת המפתחים כדי ליצור פלטפורמה שאתם והמשתמשים שלכם יכולים לסמוך עליה. לשם כך, אנחנו מכריזים על הזמינות של קוד המקור ב-פרויקט קוד פתוח של Android (AOSP). כך תוכלו לבחון את קוד המקור כדי להבין טוב יותר איך Android פועלת.
בואו נצלול לעומק של Android 17.
מערכת מודיעין
השילוב העמוק בין חומרה, תוכנה ו-AI מאפשר לנו להפוך את Android ממערכת הפעלה למערכת חכמה. המטרה היא לספק חוויות חדשות ומועילות שמצליחות לצפות את הצרכים של המשתמשים, וליצור יותר הזדמנויות לאינטראקציה עם האפליקציות שלכם. לשם כך, ב-Android 17 הרחבנו את היכולות של AppFunctions, שהוא API של פלטפורמה עם ספריית Jetpack תואמת. היא מאפשרת לכם לתרום את היכולות הייחודיות של האפליקציה שלכם כ'כלים' שאפשר לתזמן ב-Android MCP, המקבילה במכשיר ל-Model Context Protocol. סוכני AI ועוזרים דיגיטליים (כמו Google Gemini) יכולים לגלות ולבצע AppFunctions כדי לבצע תהליכי עבודה בשם המשתמש עם גישה ישירה למצב המקומי של האפליקציה.
ספריית Jetpack, שנמצאת כרגע בשלב אלפא, מאפשרת להוסיף AppFunctions בקלות רבה – פשוט מוסיפים הערות לכיתה ותגובות KDoc.
/** * A note app's [AppFunction]s. */ class NoteFunctions( private val noteRepository: NoteRepository ) { /** * Adds a new note to the app. * * @param appFunctionContext The execution context. * @param title The title of the note. * @param content The note's content. */ @AppFunction(isDescribedByKDoc = true) suspend fun createNote( appFunctionContext: AppFunctionContext, title: String, content: String ): Note { return noteRepository.createNote(title, content) } }
השקנו גם מיומנות של סוכן AppFunctions שמנתחת את תהליכי העבודה העיקריים באפליקציה, יוצרת באופן אוטומטי את קוד ה-Kotlin הנדרש, מבצעת אופטימיזציה של מסמכי ה-KDoc לקריאה של כלים על ידי מודלים של שפה גדולה, ומספקת פקודות ADB לבדיקה ולניפוי באגים.
השילוב של Gemini נמצא כרגע בגרסת טרום-השקה פרטית עם בודקים מהימנים, אבל אתם יכולים להתחיל להכין את האפליקציות שלכם כבר עכשיו. בנוסף לפקודות ADB להפעלת AppFunctions, סיפקנו אפליקציית סוכן לבדיקה שכוללת ממשק לגילוי ולהפעלה של AppFunctions, ולסימולציה של שילוב סוכן AI. כדי לקבל הזדמנות להיות בין האפליקציות הראשונות שפורסות את AppFunctions בסביבת הייצור, אפשר להצטרף לתוכנית הגישה המוקדמת (EAP) לשילוב בכתובת goo.gle/eap-af.
התאמה דינמית
המשתמשים שלכם כבר לא מסתמכים על גורם צורה אחד. הם עוברים בין טלפונים, מכשירים מתקפלים, טאבלטים, מחשבים ניידים, מסכים ברכב וסביבות XR סוחפות. עכשיו, כשיש למשתמשים יותר מ-580 מיליון מכשירים עם מסך גדול ולקראת ההשקה של Googlebooks, הדור הבא של ChromeOS מבוסס על Android, וההתאמה כבר לא רק מטרה טכנית. זו הזדמנות מצוינת להגיע למשתמשים פעילים מאוד, וזו אחת הסיבות לכך שאנחנו עוברים לתקן פיתוח שמתמקד בהתאמה.
אין הגבלות על שינוי הגודל או הכיוון במסכים גדולים
כדי להבטיח שהאפליקציות יספקו חוויה פרימיום בכל גורמי הצורה, כולל מכשירים ניידים שפועלים בממשק מחשב במסכים מחוברים, ב-Android 17 (רמת API 37) הוסרה האפשרות למפתחים לבטל את ההגבלות על כיוון ושינוי גודל במכשירים עם מסך גדול (sw > 600 dp) עבור אפליקציות שמטרגטות רמת API 37. המערכת תתעלם ממאפייני מניפסט מדור קודם ומממשקי API של זמן ריצה, כולל screenOrientation, setRequestedOrientation(), resizeableActivity=false והגבלות על יחס גובה-רוחב (minAspectRatio/maxAspectRatio). משחקים (על סמך קטגוריית האפליקציה ב-Google Play) עדיין פטורים. האפליקציה שלכם צריכה להיות מוכנה להתאמה לכל גודל חלון, להתחשב במצב המכשיר המועדף על המשתמש ולתמוך בחלונות חופשיים באופן מקורי.
ריבוי משימות מהדור הבא: בועות של אפליקציות, סרגל בועות ותמונה אינטראקטיבית בתוך תמונה במחשב
ב-Android 17 מוצגות יכולות חדשות ומתקדמות של חלונות, שמשנות את האופן שבו המשתמשים מבצעים ריבוי משימות. לכן, האפליקציות שלכם צריכות להיות גמישות יותר מבחינת הפריסה:
- בועות של אפליקציות: בנוסף ל-API של בועות הצ'אט, המשתמשים יכולים עכשיו להפוך כל אפליקציה לבועה צפה על ידי לחיצה ארוכה על הסמל שלה במפעיל האפליקציות. התכונה הזו זמינה בטלפונים, במכשירים מתקפלים ובטאבלטים, ומאפשרת לבצע משימות מרובות בקלות בכל תהליך עבודה.
- סרגל הבועות: במסכים גדולים (טאבלטים ומכשירים מתקפלים), סרגל האפליקציות של המערכת כולל עכשיו סרגל בועות ייעודי לארגון בועות האפליקציות הצפות, למעבר ביניהן ולעיגון שלהן.
- תמונה אינטראקטיבית בתוך תמונה (PiP) במחשב: בגרסה Android 17 מוצגת תמונה אינטראקטיבית בתוך תמונה (PiP) בסביבות מחשב. בניגוד לחלונות רגילים של תמונה בתוך תמונה שהם לקריאה בלבד, החלונות המוצמדים האלה נשארים אינטראקטיביים לחלוטין, ומוצגים תמיד מעל חלונות של אפליקציות אחרות.
עדכונים לגבי יצירה מחדש של פעילויות
כדי למנוע אובדן של מצב מפריע וגמגום, ב-Android 17 עודכן אופן הפעולה שמוגדר כברירת מחדל לגבי יצירה מחדש של פעילות. המערכת לא תפעיל מחדש פעילויות כברירת מחדל לשינויים טיפוסיים בהגדרות שלא דורשים ציור מחדש של ממשק המשתמש (כולל CONFIG_KEYBOARD, CONFIG_KEYBOARD_HIDDEN, CONFIG_NAVIGATION, CONFIG_TOUCHSCREEN ו- CONFIG_COLOR_MODE).
במקום זאת, פעילויות שפועלות יקבלו את העדכונים האלה באמצעות onConfigurationChanged(), מה שיאפשר מעברים חלקים. אם האפליקציה שלכם מסתמכת באופן מפורש על הפעלה מחדש מלאה כדי לטעון מחדש משאבים לשינויים האלה, עכשיו אתם צריכים להביע הסכמה מפורשת באמצעות מאפיין המניפסט החדש android:recreateOnConfigChanges.
המשך במכשיר אחר
ב-Android 17 נוספה התכונה 'המשך פעולה' כדי לעזור למשתמשים להעביר בצורה חלקה משימה בין מכשירי Android. המשתמש רואה בהצעות בסרגל המשימות בטאבלט את האפליקציה האחרונה שהוא פתח בנייד, ויכול להקיש עליה כדי להפעיל אותה ולעבור ישירות למקום שבו הוא הפסיק להשתמש בה. התכונה 'המשך פעולה' יכולה לתמוך במעברים מאפליקציה לאתר, כולל מעבר לשימוש באתר אם האפליקציה לא מותקנת.
class MyHandoffActivity : Activity() {
...
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Do stuff
...
// Enable handoff
setHandoffEnabled(true, null)
}
// Override and implement onHandoffActivityDataRequested
override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
// Create and return handoff data
}
}פיתוח אפליקציות מותאמות אישית באמצעות Jetpack Compose
כדי לעזור לכם להתאים את האפליקציות לדרישות החדשות של Android 17, השקנו את המדריך לשימוש ב-Jetpack Compose. תהליך העבודה למפתחים שמבוסס על AI עוזר לכם ליישם את השיטות המומלצות להתאמה:
- ניווט מותאם: מעבר אוטומטי בין סרגלי ניווט בתחתית במסכים ניידים לבין סרגלי ניווט שמעוגנים לקצה במסכים גדולים באמצעות
NavigationSuiteScaffoldמהספרייה המותאמת של Material 3. - פריסות עם כמה חלוניות: הטמעת פריסות של רשימה ופרטים ופריסות תומכות באופן מקורי באמצעות Navigation 3 Scenes (
ListDetailSceneStrategyו-SupportingPaneSceneStrategy) במקום טרנזקציות שבריריות של פרגמנטים. - FlexBox & Grid APIs: אפשר להשתמש ברכיבי הפריסה הדינמיים של Compose 1.11 כדי לשנות בקלות את טווחי השורות והעמודות תוך כדי תנועה, וכך לוודא שהתוכן תמיד ממלא את המקום בצורה יפה.
- קלט מתקדם ללא מגע: אפשר לנצל את התמיכה המשופרת במשטח מגע ובעכבר ב-Compose 1.11, כולל טבעות מיקוד מקוריות וממשקי API חדשים (כמו
TrackpadInjectionScopeו-performTrackpadInput) כדי לבדוק בקלות ולספק חוויה אמיתית של מחשב נייד ב-Googlebooks ובממשק מחשב. - מצבי חלון דינמיים: אפשר להשתמש במודל המצב הריאקטיבי של Compose כדי להתאים את ממשק המשתמש בצורה חלקה כשעוברים ממסך מלא לבועת אפליקציה צפה או לחלון אינטראקטיבי של תמונה בתוך תמונה במחשב. כך אפשר להבטיח חוויה מעולה גם בממדים מינימליים.
Android הוא Compose-first
Compose היא הדרך הקלה ביותר ליצור אפליקציות שמותאמות למכשירים שונים, וזו רק אחת מהסיבות הרבות שבגללן אנחנו מאמינים שכל ממשקי המשתמש של Android צריכים להיבנות באמצעות Compose. לכן, פיתוח ל-Android מבוסס עכשיו על Compose. כל ממשקי ה-API, הספריות, הכלים וההנחיות למפתחים החדשים של Android ייבנו באופן בלעדי עבור Jetpack Compose. רכיבי View מדור קודם (בחבילה android.widget) וספריות Jetpack שמבוססות על View (כמו Fragments, RecyclerView ו-ViewPager) נמצאים עכשיו במצב תחזוקה. הם יקבלו רק תיקוני באגים קריטיים, ולא יתווספו להם תכונות חדשות.
טיפ מוכנים להעביר את הפריסות? אתם יכולים להשתמש ב-XML to Compose Migration Skill (כלי להעברת פריסות מ-XML ל-Compose) שמבוסס על AI כדי לנתח באופן אוטומטי את פריסות התצוגה הקודמות ולהמיר אותן לקוד Compose שמותאם מאוד.
ביצועים ויעילות
ביצועי האפליקציה כוללים ממשק משתמש חלק, זמני הפעלה מהירים של האפליקציה וריבוי משימות יעיל. ב-Android 17 יש שיפורים משמעותיים בכל התחומים האלה.
מגבלות זיכרון באפליקציות
השימוש בזיכרון הוא אחד מהגורמים שמשפיעים על הביצועים הכוללים, בלי ששמים לב אליהם. כשאפליקציה שפועלת בחזית או שירות גדלים ללא בקרה, ניהול הזיכרון גורם לעלייה חדה בשימוש במעבד ובסוללה, ובסופו של דבר מוביל לסיום של אפליקציות אחרות שנשמרו במטמון ועבודות ברקע שמתנהלות בצורה תקינה. התוצאה היא הפעלה במצב התחלתי איטית יותר וריבוי משימות פחות יעיל.
החל מ-Android 17, המערכת תאכוף מגבלות מחמירות על הזיכרון של האפליקציות בהתאם לזיכרון ה-RAM הכולל של המכשיר, ותסיים באופן פתאומי תהליכים בעייתיים. הוספנו דברים חדשים שיעזרו לכם לעמוד בדרישות המחמירות האלה:
- כלי האופטימיזציה של R8: כלי האופטימיזציה של R8 מקטין באופן משמעותי את הזיכרון שבשימוש של קוד הבייט של האפליקציה, על ידי כיווץ של מחלקות, שיטות ושדות לשמות קצרים יותר, והסרה של קוד ומשאבים שלא נמצאים בשימוש. כדי לוודא שהאפליקציה מפיקה את המרב מ-R8, מומלץ להשתמש ב-R8 במצב מלא יחד עם כלי הניתוח החדש של הגדרות R8.
- LeakCanary ב-Android Studio Panda: הפרופילר כולל עכשיו שילוב מקורי של LeakCanary כמשימה ייעודית, שמשולבת באופן מלא עם סביבת הפיתוח המשולבת וקוד המקור.
- ApplicationExitInfo: אם האפליקציה מסתיימת בגלל המגבלות האלה, getDescription() מ-ApplicationExitInfo תחזיר את הערך MemoryLimiter:AnonSwap.
- זיהוי אנומליות במכשיר: כחלק מ-ProfilingManager, אתם יכולים להשתמש בפרופילים מבוססי-טריגר באמצעות
TRIGGER_TYPE_ANOMALYכדי לתעד באופן אוטומטי dump ערימה כשהמערכת מגיעה למגבלת הזיכרון.
val profilingManager = applicationContext .getSystemService(ProfilingManager::class.java) val triggers = ArrayList<ProfilingTrigger>().apply { add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build()) } profilingManager.addProfilingTriggers(triggers)
בנוסף, אנחנו פועלים להצגת מדדי זיכרון נוספים בשטח ב-Google Play Console.
איסוף זבל בחלוקה לדורות
Android 17 מציג איסוף תכוף יותר של דור צעיר שדורש פחות משאבים ב-ART, באמצעות Concurrent Mark-Compact garbage collector (GC). על ידי הפרדה בין אובייקטים לזמן קצר לבין אובייקטים יציבים לזמן ארוך, המערכת מבצעת סריקות תכופות וקלות של 'דור צעיר' במקום סריקות יקרות של כל הערימה, וכך מצמצמת באופן משמעותי את השימוש במעבד, את צריכת החשמל ואת הגימגום בממשק המשתמש. הבדיקות שלנו הראו שיפורים משמעותיים בהפרעות של GC לשרשורי אפליקציות, וצמצום בגודל המקסימלי של קבוצת הזיכרון התושבת (RSS). השיפורים ב-ART זמינים גם ליותר ממיליארד מכשירים עם Android 12 (רמת API 31) ומעלה, באמצעות עדכונים של מערכת Google Play.
Lock-Free MessageQueue
באפליקציות שמיועדות לגרסה 37 ואילך של SDK, הליבה android.os.MessageQueue מיישמת עכשיו ארכיטקטורה ללא נעילה, שמפחיתה באופן משמעותי את מספר הפריימים החסרים, משפרת את זמן ההפעלה של האפליקציה ומשפרת באופן משמעותי את הביצועים של תורים עמוסים בתרחישים מרובי-הליכים. הערה: יכול להיות שהשינוי הזה ישבור אפליקציות שמשתמשות בהשתקפות בשדות ובשיטות פרטיים של MessageQueue. ממשקי ה-API peekWhen ו-poll נוספו ל-TestLooperManager לבדיקות מכשור בלי להסתמך על MessageQueue פנימיות.
שדות סופיים סטטיים הם עכשיו באמת סופיים
החל מ-Android 17, אפליקציות שמטרגטות SDK בגרסה 37 ומעלה לא יוכלו לשנות שדות מסוג static final, מה שיאפשר לסביבת זמן הריצה להחיל אופטימיזציות של ביצועים בצורה אגרסיבית יותר. ניסיון לעשות זאת באמצעות רפלקציה (או רפלקציה עמוקה) יוביל להשלכת IllegalAccessException.
שינוי שלהם באמצעות שיטות SetStatic<Type>Field של JNI יגרום לקריסה מיידית של האפליקציה.
הגבלות על הצגת התראות בהתאמה אישית
כדי לצמצם את השימוש בזיכרון, אנחנו מגבילים עוד יותר את הגודל של תצוגות מותאמות אישית של התראות. העדכון הזה סוגר פרצה שמאפשרת לאפליקציות לעקוף את המגבלות הקיימות באמצעות מזהי URI. ההתנהגות הזו מוגבלת על ידי גרסת ה-SDK של היעד, והיא חלה על אפליקציות שמטרגטות API בגרסה 37 ומעלה.
פרטיות ואבטחה
שמירה על אמון המשתמשים היא ערך מרכזי בסביבת Android. ב-Android 17 מוצגות תכונות חזקות שמגנות על מידע אישי רגיש ומשפרות את חוויית המשתמש.
אפשרויות ששומרות על הפרטיות
בעבר, אפליקציות נדרשו לקבל הרשאות רחבות וקבועות כדי לגשת למידע כמו אנשי קשר, מיקום מדויק וקבצי מדיה. ב-Android 17 אנחנו ממשיכים את המגמה של מתן אפשרויות לשמירה על הפרטיות, שמאפשרות גישה זמנית לנתונים, רק לנתונים שהמשתמש בוחר באופן מפורש:
- כלי לבחירת אנשי קשר ברמת המערכת: באמצעות
ACTION_PICK_CONTACTS, אפליקציות יכולות לבקש גישה זמנית רק לשדות ספציפיים (למשל, כתובת אימייל או מספר טלפון) שנבחרו על ידי המשתמש, וכך לא נדרשת הרשאתREAD_CONTACTSרחבה. הוא תומך גם בהפרדה מלאה בין פרופיל העבודה לפרופיל האישי. - יחס גובה-רוחב שניתן להתאמה אישית בכלי לבחירת תמונות: באמצעות PhotoPickerUiCustomizationParams, אפשר להתאים אישית את הכלי לבחירת תמונות במערכת כדי להציג תמונות ממוזערות בפריסה לאורך. האפשרות הזו מתאימה לאפליקציות שתמיד מציגות תמונות וסרטונים לאורך, כמו אפליקציות של רשתות חברתיות שמבוססות על סרטונים.
- כפתור מיקום שמעובד על ידי המערכת: כפתור מיקום חדש שמעובד על ידי המערכת ואפשר להטמיע אותו באפליקציה. הכפתור הזה מעניק גישה למיקום המדויק רק עבור ההפעלה הנוכחית.
- EyeDropper API: מערכת חדשה ברמת ה-API,
ACTION_OPEN_EYE_DROPPER, מאפשרת לאפליקציה שלכם ליצור טפטפת מבוססת-מערכת, שמאפשרת למשתמש לבחור צבע מכל פיקסל בתצוגה. כך אפשר ליהנות מחוויית בחירת צבעים מאובטחת ששומרת על הפרטיות, בלי צורך בהרשאות רחבות ורגישות לצילום מסך או להצגת מדיה.
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) }
גישה לרשת המקומית
אפליקציות שמיועדות ל-Android 17 מחייבות עכשיו את הרשאת זמן הריצה ACCESS_LOCAL_NETWORK או שימוש בכלי לבחירת מכשירים שמונעים פגיעה בפרטיות ומתווכים על ידי המערכת לצורך תקשורת ברשת המקומית, כמו תקשורת עם מכשירים לבית חכם או עם מקלטי Cast. ההרשאה ACCESS_LOCAL_NETWORK נכללת בקבוצת ההרשאות הקיימת NEARBY_DEVICES, ולכן משתמשים שכבר העניקו הרשאות אחרות NEARBY_DEVICES לא יתבקשו שוב לאשר הרשאות.
הגנה על OTP ב-SMS
ב-Android 17, ההגנה על סיסמאות חד-פעמיות (OTP) ב-SMS הורחבה על ידי עיכוב הגישה להודעות SMS למשך שלוש שעות:
- פורמט WebOTP: יש עיכוב בכל האפליקציות שלא מיועדות לקבל את הסיסמה (אי התאמה בין הדומיינים).
- קוד אימות חד-פעמי (OTP) רגיל ב-SMS: ההשקה נדחית לכל האפליקציות שמטרגטות SDK בגרסה 37 ומעלה.
חריגים: אפליקציות ברירת מחדל של SMS, אפליקציות של עוזרים ושל מכשירים מקושרים פטורות מהדרישה הזו. מומלץ מאוד להעביר את האפליקציות לממשקי ה-API של SMS Retriever או SMS User Consent.
קריפטוגרפיה פוסט-קוונטית (PQC)
Android 17 מוכן לדור הבא של אבטחה קריפטוגרפית:
- שילוב של חנות מפתחות: מכשירים נתמכים יכולים ליצור מפתחות ML-DSA (אלגוריתם חתימה דיגיטלית מבוסס-סריג של מודול) בחומרה מאובטחת כדי ליצור חתימות חסינות מפני פיצוח קוונטי, שמוצגות באמצעות ממשקי API סטנדרטיים של JCA.
- חתימה היברידית על APK: השקנו את גרסה 3.2 של APK Signature Scheme, שמשלבת חתימות קלאסיות עם חתימות ML-DSA כדי לאבטח את מסירת האפליקציה.
טעינה בטוחה יותר של קוד דינמי מותאם
אם האפליקציה מטרגטת SDK בגרסה 37 ומעלה, ההגנה שנוספה ב-Android 14 מפני טעינה דינמית של קוד (DCL) בטוחה יותר לקובצי DEX ו-JAR, חלה עכשיו גם על ספריות מקוריות. כל הקבצים המקוריים שנטענים באמצעות System.load צריכים להיות מסומנים כקריאה בלבד. אחרת, המערכת תציג UnsatisfiedLinkError.
הגנה חכמה יותר על סיסמאות בהזנות פיזיות
ב-Android 17, אנחנו משפרים את האבטחה של הזנת סיסמאות, קודי אימות ופרטים סודיים אחרים כשמשתמשים במקלדת פיזית. מעכשיו, כברירת מחדל, התו האחרון שהוקלד לא מוצג.
המשתמשים עדיין יכולים להתאים בקלות את הגדרות התצוגה האלה להעדפות שלהם (הזמינות עשויה להשתנות בהתאם ליצרן המכשיר).
רכיבי ה-SDK המובנים של Android תומכים אוטומטית באמצעי ההגנה המשופרים האלה על הפרטיות, והם יתמכו ב-Compose 1.12 ל-SecureTextFields.
תכונות של מדיה ומצלמה שמאפשרות ליוצרים ליצור תוכן ומשמחות את המשתמשים
ב-Android 17 הוספנו תכונות חדשות ליוצרים שמאפשרות גישה למצלמות ולמדיה באיכות מקצועית, וגם משפרות את חוויית המשתמש.
- Eclipsa Video: תקן וידאו HDR שמבוסס על מפרט SMPTE ST 2094-50. התקן הזה כולל מטא-נתונים חדשים שעוזרים למכשירים להתאים את התוכן לטווח הדינמי של התצוגה ולתנאי התאורה הסביבתית, וגם לשפר את התצוגה בו-זמנית של תוכן רגיל ותוכן HDR.
- פורמט התמונה RAW14: נוספה תמיכה בפורמט התמונה RAW14. כך אפליקציית המצלמה המקצועית יכולה לצלם תמונות עם רמת פירוט ועומק צבע גבוהים ביותר מחיישני מצלמה תואמים.
- תוספים למצלמה שמוגדרים על ידי הספק: תוספים שמוגדרים על ידי הספק מאפשרים לשותפי חומרה להגדיר ולהטמיע מצבי תוספים מותאמים אישית למצלמה, וכך לספק גישה לתכונות המצלמה הכי טובות והכי עדכניות.
- מקודד תוכנה מורחב HE-AAC: מקודד תוכנה חדש מורחב HE-AAC שסופק על ידי המערכת, תומך בקצב העברת נתונים נמוך וגבוה באמצעות קידוד מאוחד של דיבור ואודיו, ומספק איכות אודיו משופרת משמעותית להודעות קוליות בתנאים של רוחב פס נמוך, כולל תמיכה במטא-נתונים של עוצמת הקול.
- Versatile Video Coding (H.266): מאפשר ליצרני ציוד מקורי (OEM) להוסיף תמיכה ב-Codec על ידי הגדרת סוג ה-MIME video/vvc ב-MediaFormat, הוספת פרופילים חדשים של VVC ב-MediaCodecInfo ושילוב תמיכה ב-MediaExtractor.
- סוג מכשיר המצלמה: ממשקי API חדשים ששולחים שאילתה לסוג המכשיר הבסיסי כדי לזהות אם המצלמה היא חומרה מובנית, מצלמת אינטרנט חיצונית בחיבור USB או מצלמה וירטואלית.
- איכות קבועה להקלטת סרטונים: הפונקציה setVideoEncodingQuality ב- MediaRecorder מגדירה מצב איכות קבועה (CQ) למקודדי וידאו כדי להבטיח נאמנות חזותית אחידה לאורך כל הסרטון.
תמיכה טובה יותר במכשירי שמיעה
- תמיכה במכשירי שמיעה עם Bluetooth LE Audio: מערכת Android כוללת עכשיו קטגוריה ספציפית של מכשירים למכשירי שמיעה עם Bluetooth Low Energy (BLE) Audio, עם הקבוע החדש AudioDeviceInfo.TYPE_BLE_HEARING_AID. כך האפליקציה יכולה להבחין בין מכשירי שמיעה לבין אוזניות רגילות, כדי לספק חוויה מותאמת אישית למשתמשים עם מכשירי עזר לשמיעה.
- ניתוב מפורט של אודיו למכשירי שמיעה: ב-Android 17, המשתמשים יכולים לנהל באופן עצמאי את המיקום שבו מושמעים צלילים ספציפיים של המערכת. הם יכולים לבחור להעביר התראות, צלצולים ושעונים מעוררים למכשירי שמיעה מחוברים או לרמקול המובנה של המכשיר, וכך להימנע מהפרעות לא רצויות באוזן תוך שמירה על חיבור Bluetooth לאפליקציות לניהול מכשירי שמיעה.
CameraX ו-Media3
CameraX ו-Media3 עודכנו ל-Android 17. הם נועדו לבצע את העבודה הקשה, להחליק את הקצוות המחוספסים של פיתוח מדיה ולפשט את בניית לכידת מצלמה אמינה, הפעלת מדיה חלקה וחוויות עריכה יצירתיות ומורכבות.
השקנו מיומנות של סוכן שיכולה להעביר הטמעות של מצלמות Android מדור קודם (Camera1 או Camera2 APIs גולמיים) אל CameraX.
הערה: כדי למנוע קריסה שקשורה למצב טווח דינמי שנוסף במכשירי Android 17, צריך לעדכן את גרסת CameraX לגרסה 1.5.2 או לגרסה 1.6.0 ואילך.
הכינו את האפליקציות, הספריות, הכלים ומנועי המשחקים שלכם!
אם אתם מפתחים Android SDK, ספרייה, כלי או מנוע משחקים, חשוב מאוד שתכינו עכשיו את כל העדכונים הנדרשים כדי למנוע ממפתחי אפליקציות ומשחקים שמשתמשים במוצרים שלכם להיתקל בבעיות תאימות, וכדי לאפשר להם להשתמש בתכונות העדכניות ביותר של ה-SDK. חשוב להודיע למפתחים שמשתמשים במוצרים שלכם אם נדרשים עדכונים כדי לתמוך באופן מלא ב-Android 17.
הבדיקה כוללת התקנה של אפליקציית הייצור או של אפליקציית בדיקה שמשתמשת בספרייה או במנוע שלכם באמצעות Google Play או אמצעים אחרים במכשיר או באמולטור שמופעלים ב-Android 17 Beta 4. בודקים את כל התהליכים באפליקציה ומחפשים בעיות פונקציונליות או בעיות בממשק המשתמש. כל גרסה של Android כוללת שינויים בפלטפורמה שמשפרים את הפרטיות, האבטחה וחוויית המשתמש הכוללת. כדי להתמקד בבדיקות, כדאי לעיין בשינויים בהתנהגות שמשפיעים על אפליקציות שפועלות ב-Android 17 ועל אפליקציות שמיועדות ל-Android 17, כולל השינויים הבאים:
- שינוי גודל במסכים גדולים: אחרי שמטרגטים ל-Android 17 (SDK 37), אי אפשר יותר לבטל את ההסכמה לשמירה על הגבלות הכיוון, שינוי הגודל ויחס הגובה-רוחב במסכים גדולים.
- טעינת קוד דינמי: אם האפליקציה מיועדת ל-SDK בגרסה 37 ואילך, ההגנה בטעינת קוד דינמי (DCL) בטוחה יותר, שהוצגה ב-Android 14 לקבצי DEX ו-JAR, חלה עכשיו גם על ספריות מקוריות. כל הקבצים המקוריים שנטענים באמצעות System.load() צריכים להיות מסומנים כקריאה בלבד. אחרת, המערכת תציג את השגיאה UnsatisfiedLinkError.
- הפעלת CT כברירת מחדל: שקיפות אישורים (CT) מופעלת כברירת מחדל. (ב-Android 16, התכונה CT זמינה, אבל האפליקציות היו צריכות להביע הסכמה לשימוש בה).
- הגנות על הרשת המקומית: באפליקציות שמיועדות ל-SDK בגרסה 37 ואילך, הגישה לרשת המקומית חסומה כברירת מחדל. אם אפשר, כדאי לעבור לשימוש בכלי בחירה ששומרים על הפרטיות, ולהשתמש בהרשאה החדשה
ACCESS_LOCAL_NETWORKכדי לקבל גישה רחבה ומתמשכת. - הגברת האבטחה של אודיו ברקע: החל מ-Android 17, מסגרת האודיו אוכפת הגבלות על אינטראקציות עם אודיו ברקע, כולל הפעלת אודיו, בקשות למיקוד אודיו וממשקי API לשינוי עוצמת הקול. בעקבות המשוב שקיבלנו, ביצענו כמה שינויים מאז גרסת הבטא השנייה, כולל הגבלת targetSDK בזמן האכיפה של FGS בשימוש והחרגת אודיו של אזעקה. פרטים מלאים זמינים בההנחיות המעודכנות.
- הצהרה על גישה ל-NPU: אפליקציות שמטרגטות ל-Android 17 וצריכות לגשת ישירות ל-NPU צריכות להצהיר על
FEATURE_NEURAL_PROCESSING_UNITבמניפסט שלהן כדי שלא תיחסם הגישה ל-NPU. הדבר כולל אפליקציות שמשתמשות ב LiteRT NPU delegate, בערכות SDK ספציפיות לספקים וגם ב- NNAPI שהוצא משימוש.
איך מתחילים להשתמש ב-Android 17
אם עדיין לא הצטרפתם לתוכנית Android Beta, מכשיר Pixel שלכם אמור לקבל בקרוב את Android 17. אם אין לכם מכשיר Pixel, אתם יכולים להשתמש בקובצי אימג' של מערכת 64 ביט עם אמולטור Android ב-Android Studio. אם אתם משתמשים כרגע ב-Android 17 Beta 4.1 ועדיין לא התקנתם את Android 17 QPR1 בטא, אתם יכולים לבטל את ההצטרפות לתוכנית ואז תקבלו את גרסת ההפצה של Android 17 בעדכון OTA.
קבלת גרסת הבטא של Android 17 במכשירי שותפים
Android 17 זמין בגרסת בטא בטלפונים, בטאבלטים ובמכשירים מתקפלים של שותפים כולל Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo ו-Xiaomi.
כדי ליהנות מחוויית הפיתוח הטובה ביותר עם Android 17, מומלץ להשתמש בגרסת Canary העדכנית של Android Studio Quail. אחרי ההגדרה, הנה כמה דברים שכדאי לעשות:
- כדאי לבדוק את האפליקציה הנוכחית שלכם כדי לוודא שהיא תואמת ל-Android 17, לגלות אם היא מושפעת מהשינויים ב-Android 17, להתקין אותה במכשיר או באמולטור Android עם Android 17 ולהריץ עליה בדיקות מקיפות.
שוב תודה לכל מי שהשתתף בתוכנית הבטא ובתוכנית ההפצה המקדימה למפתחים של Android. אנחנו מחכים לראות איך האפליקציות שלכם ינצלו את העדכונים ב-Android 17, ומתכננים להמשיך לספק לכם עדכונים בקצב מהיר.
מידע מלא על Android 17 זמין באתר למפתחי Android 17.
להמשך הקריאה
-
חדשות על מוצרים
היום, עם גרסת בטא 3, הגענו רשמית ליציבות הפלטפורמה של Android 17. המשמעות היא שממשק ה-API נעול. אתם יכולים לבצע בדיקות תאימות סופיות ולפרסם בחנות Play את האפליקציות שמטרגטות את Android 17.
Matthew McCullough • משך הקריאה: 5 דקות
-
חדשות על מוצרים
ב-Google I/O 2026 יהיו 17 הכרזות חשובות למפתחי Android, שיתמקדו בפרודוקטיביות מבוססת-סוכנים, ב-Compose First כסטנדרט ממשק המשתמש שלנו, ובפיתוח מדיה בעל ביצועים גבוהים ופיתוח אדפטיבי למערכת האקולוגית המתרחבת.
Matthew McCullough • משך הקריאה: 8 דקות
-
חדשות על מוצרים
היום, במהלך The Android Show, הכרזנו על המעבר של Android ממערכת הפעלה למערכת חכמה, שיוצרת יותר הזדמנויות לאינטראקציה עם האפליקציות שלכם.
Matthew McCullough • משך הקריאה: 4 דקות
כדאי תמיד להיות בעניינים
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?