תמיכה בטאבלטים ובמסכים גדולים

‫Android 13 משפר את חוויית השימוש ב-Android במסכים גדולים

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

כדי להתחיל, מגדירים מכשיר וירטואלי ל-אמולטור Android ב-Android Studio, או מורידים את Android 13 למכשיר עם מסך גדול מאחד מהשותפים שלנו, יצרני המכשירים.

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

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

מערכת הפעלה שעברה אופטימיזציה למסכים גדולים

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

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

בפריסות למסכים גדולים מוצג יותר תוכן בפריסה של שתי עמודות.

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

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

למפתחים: שינוי בהצגת מדיה

החל מ-12L, כשמבצעים רינדור של התצוגה הווירטואלית בפלטפורמה, התצוגה הווירטואלית מותאמת לגודל הפלטפורמה בתהליך שדומה לאפשרות centerInside של ImageView.

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

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

מולטיטסקינג יעיל ואינטואיטיבי

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

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

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

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

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

למפתחים: בדיקת האפליקציות במצב מסך מפוצל

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

למפתחים: טיפול בשינויים דינמיים בגודל של חלונות מוטבעים

למרות שלא הושק API חדש של Inset, שורת המשימות החדשה מדווחת לאפליקציות כ-Inset.

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

חוויית תאימות משופרת

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

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

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

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

למפתחים: בדיקת האפליקציות במצב תאימות

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

פרטים נוספים זמינים במאמר בנושא שיפורים בהצגת תוכן עם פסי שחורים בצדדים.

שיפור מניעת ההפעלה בטעות של המסך כשמניחים עליו את כף היד

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

לפני Android 13 (רמת API ‏33), המערכת ביטלה אירועים של מגע כף היד על ידי שליחת MotionEvent עם ACTION_CANCEL. ב-Android 13, נוסף FLAG_CANCELED לאובייקט של אירוע התנועה, כדי לשפר את הזיהוי של דחיית מגע בטעות.

אם מגע כף היד הוא מצביע אירוע המגע היחיד, המערכת מבטלת את האירוע על ידי הגדרת ACTION_CANCEL ו-FLAG_CANCELED באובייקט אירוע התנועה. אם מצביעים אחרים מושבתים, מערכת Android 13 מגדירה את ACTION_POINTER_UP ואת FLAG_CANCELED.

למפתחים: עדכון של פונקציות event listener וגורמים שמטפלים באירועי מגע

ב-Android 12 (רמת API‏ 32) ובגרסאות קודמות, אפשר לזהות דחייה של מגע כף היד רק באירועי מגע של נקודה אחת. אם מגע כף היד הוא המצביע היחיד, המערכת מבטלת את האירוע על ידי הגדרת ACTION_CANCEL באובייקט של אירוע התנועה. אם מצביעים אחרים מושבתים, המערכת מגדירה את ACTION_POINTER_UP, שלא מספיק כדי לזהות דחייה של מגע כף היד. בכל מקרה, ההגדרה FLAG_CANCELED לא נקבעה.

ב-Android 13, צריך לעדכן את פונקציות event listener ואת הגורמים שמטפלים באירועים של מגע כדי לבדוק אם יש FLAG_CANCELED כשמתקבל ACTION_POINTER_UP. כך אפשר לוודא שזיהוי מגע מקרי ואירועים אחרים שבוטלו יזוהו ויטופלו.

עדכונים ומשאבים נוספים למסכים גדולים

שינויים ב-Google Play במסכים גדולים

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

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

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

הטמעת פעילות באמצעות Jetpack WindowManager

הטמעת פעילות מאפשרת לכם לנצל את שטח התצוגה הנוסף של מסכים גדולים על ידי הצגת כמה פעילויות בו-זמנית, למשל בדפוס List-Detail, והיא לא דורשת שינוי משמעותי באפליקציה. אתם קובעים איך הפעילויות באפליקציה יוצגו – זו לצד זו או אחת מעל השנייה – על ידי יצירת קובץ תצורת XML או ביצוע קריאות ל-Jetpack WindowManager API. המערכת מטפלת בכל השאר, וקובעת את המצגת על סמך ההגדרה שיצרתם. אם האפליקציה שלכם משתמשת בכמה פעילויות, מומלץ לנסות הטמעה של פעילויות. מידע נוסף זמין במאמר בנושא הטמעת פעילות.

בקשה לקביעת כיוון המכשיר

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

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

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

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

קבלת Android 13 במכשיר שותף עם מסך גדול

שיתפנו פעולה עם השותפים שלנו, יצרני המכשירים, כדי לאפשר לכם לנסות את Android 13 במכשירים עם מסך גדול. כדי לראות רשימה של מכשירים גדולים שמתאימים לשימוש בגרסת הבטא ולמצוא פרטים על גרסאות הבטא שזמינות, אפשר להיכנס לאתרים הבאים:

כדי לקבל עדכונים ותמיכה, אפשר לעיין במקורות המידע שכל יצרן מכשירים קישר באתר Android 13 Beta שלו. שימו לב שכל שותף יספק לכם את עדכוני הבטא ישירות, ויטפל בעצמו בהרשמות ובתמיכה.

מה כדאי לבדוק

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

מה כדאי לבדוק משאבים
גדלים של מסכים, מצב המכשיר וסיבוב

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

מסמכי תיעוד דוגמאות Codelabs הרצאות טכניות
אינטראקציה עם סרגל המשימות ומצב מסך מפוצל

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

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

מסמכי תיעוד דוגמאות הרצאות טכניות
מצב ריבוי חלונות

בודקים איך האפליקציה מגיבה כשמריצים אותה במצב מרובה חלונות במסכים גדולים (sw >= 600dp), במיוחד אם האפליקציה מגדירה את resizeableActivity="false".

אם האפליקציה שלכם מגדירה את הערך resizeableActivity="true", חשוב גם לבדוק איך האפליקציה מגיבה כשהיא פועלת במצב ריבוי חלונות במסכים קטנים (sw < 600dp).

אם האפליקציה משתמשת בממשקי Display API כמו Display.getRealSize() ו- Display.getRealMetrics(), צריך להשתמש בממשקי WindowMetrics API בספריית Jetpack WindowManager במקום זאת.

מסמכי תיעוד דוגמאות הרצאות טכניות
הקרנת מדיה

אם האפליקציה שלכם משתמשת בהצגת מדיה, כדאי לבדוק איך האפליקציה מגיבה בזמן הפעלה, סטרימינג או העברה (cast) של מדיה במכשירים עם מסך גדול. חשוב גם לקחת בחשבון שינויים במצב המכשיר במכשירים מתקפלים.

מסמכי תיעוד דוגמאות הרצאות טכניות
תצוגה מקדימה של המצלמה

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

מסמכי תיעוד