Android 7.0 למפתחים

Android 7.0 Nougat כולל מגוון של תכונות ויכולות חדשות למשתמשים ולמפתחים. במסמך הזה נדגיש את התכונות החדשות למפתחים.

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

מידע נוסף על לתכונות לצרכן של Android 7.0, בקר בכתובת www.android.com.

תמיכה בריבוי חלונות

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

עכשיו המשתמשים יכולים לפתוח שתי אפליקציות במסך בו-זמנית.

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

איור 1. אפליקציות שפועלות במצב מסך מפוצל.

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

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

מידע נוסף זמין במסמכי התיעוד למפתחים בנושא תמיכה בכמה חלונות.

שיפורים בהתראות

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

  • עדכוני תבניות: אנחנו מעדכנים את תבניות ההתראות ל- שם דגש חדש על דמות הגיבור ועל הדמות. מפתחים יוכלו לנצל את התבניות החדשות עם שינויים מינימליים בקוד.
  • התאמה אישית של סגנון ההודעות: אפשר להתאים אישית עוד תוויות של ממשק המשתמש שמשויכות להתראות באמצעות הכיתה MessagingStyle. אפשר להגדיר את ההודעה, כותרת השיחה ותצוגת התוכן.
  • התראות מקובצות: המערכת יכולה לקבץ הודעות ביחד, למשל לפי נושא ההודעה, ולהציג את הקבוצה. המשתמש יכול לבצע בהם פעולות כמו סגירה או העברה לארכיון. אם הטמעתם התראות ל-Android Wear, המודל הזה כבר מוכר לכם.
  • תשובה ישירה: לאפליקציות תקשורת בזמן אמת, מערכת Android תומכת בתשובות בגוף ההודעה כדי שהמשתמשים יוכלו להגיב במהירות הודעת SMS או טקסט ישירות בתוך ממשק ההתראות.
  • תצוגות מותאמות אישית: שני ממשקי API חדשים מאפשרים לך למנף את המערכת קישוטים, כמו כותרות של התראות ופעולות, כשמשתמשים בהתאמה אישית צפיות בהתראות.
מכשיר נייד שבו מוצגות התראות על הודעות בחבילה
מכשיר נייד שבו מוצגת התראה על הודעה אחת
נייד שבו מוצגת תשובה להודעה בשרשור בממשק ההתראות

איור 2. התראות מקובצות ותשובה ישירה.

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

הידור JIT/AOT בהנחיית פרופיל

ב-Android 7.0, הוספנו כלי מהדר של Just in Time (JIT) עם קוד פרופיילינג ל-ART, מה שמאפשר לו לשפר כל הזמן את הביצועים אפליקציות ל-Android בזמן שהן פועלות. מהדר JIT משלים את מהדר 'מקדם זמן' (AOT) שעוזר לשפר את הביצועים של סביבת זמן הריצה, חיסכון את נפח האחסון, ולזרז את עדכוני האפליקציות ועדכוני המערכת.

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

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

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

נתיב מהיר להתקנת אפליקציה

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

נמנום בדרכים...

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

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

איור שמראה איך התכונה Doze מחילה רמה ראשונה של הגבלות פעילות במערכת כדי לשפר את חיי הסוללה

איור 3. מצב 'נמנום' רלוונטי הגבלות לשיפור חיי הסוללה גם כשהמכשיר לא נייח.

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

כשהמכשיר שוב נייח, כשהמסך כבוי ומופעל סוללה למשך למשך זמן מסוים, התכונה Doze מחילה את כל ההגבלות על המעבד (CPU) והרשת על PowerManager.WakeLock, התראות של AlarmManager וגם סריקות GPS/Wi-Fi.

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

פרויקט Svelte: אופטימיזציות של רקעים

פרויקט Svelte הוא מאמץ מתמשך לצמצום השימוש ב-RAM על ידי המערכת והאפליקציות במגוון מכשירי Android בסביבה העסקית. ב-Android 7.0, Project Svelte מתמקד באופטימיזציה של האופן שבו אפליקציות פועלות ברקע.

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

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

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

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

ב-Android 7.0 אנחנו מסירים שלושה שידורים מרומזים שנמצאים בשימוש נפוץ – CONNECTIVITY_ACTION, ACTION_NEW_PICTURE ו-ACTION_NEW_VIDEO — כי הם יכולים להוציא את המכשיר ממצב שינה תהליכים ברקע במספר אפליקציות בו-זמנית, ועומס על הזיכרון והסוללה. אם המיקום האפליקציה שלך מקבלת הודעות אלה, נצל את ה-Android 7.0 כדי במקום זאת, לעבור אל JobScheduler וממשקי API קשורים.

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

תצוגת Surface

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

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

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

החל מ-Android 7.0, מומלץ מאוד לחסוך בסוללה באמצעות SurfaceView במקום TextureView.

חסכונית בנתונים

חוסך הנתונים (Data Saver) בהגדרות

איור 4. חוסך הנתונים (Data Saver) ב'הגדרות'.

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

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

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

Android 7.0 מרחיב את ConnectivityManager כדי לספק לאפליקציות דרך לאחזר העדפות חוסך הנתונים (Data Saver) של המשתמש ומעקב שינויים בהעדפות. כל האפליקציות צריכות לבדוק אם המשתמש הפעיל נתונים אפשר לחסוך ולהשקיע מאמצים כדי להגביל את השימוש בנתונים בחזית וברקע.

ממשק API של Vulkan

מערכת Android 7.0 כוללת את VulkanTM, ממשק API חדש לרינדור בתלת-ממד, עם הפלטפורמה. בדומה ל-OpenGL™‏ ES, Vulkan הוא תקן פתוח לגרפיקה ורינדור בתלת-ממד שמנוהל על ידי קבוצת Khronos.

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

הכלים והספריות למפתחים של Vulkan כוללים את Android 7.0 SDK. ביניהם:

  • כותרות
  • שכבות אימות (ספריות ניפוי באגים)
  • מהדר של תוכנות הצללה (shader) SPIR-V
  • ספריית אוסף של תוכנות הצללה לזמן ריצה SPIR-V

Vulkan זמין רק לאפליקציות במכשירים עם חומרה שתומכת ב-Vulkan, כמו Nexus 5X,‏ Nexus 6P ו-Nexus Player. אנחנו עובדים בשיתוף פעולה הדוק עם כדי להביא את Vulkan למכשירים נוספים בהקדם האפשרי.

מידע נוסף זמין במאמרי העזרה של ה-API.

ממשק API של כרטיסי מידע בהגדרות המהירות

פקדי ההגדרות המהירות בלוח ההתראות

איור 5. כרטיסי ההגדרות המהירות בלוח ההתראות.

'הגדרות מהירות' הן דרך פופולרית ופשוטה לחשוף הגדרות ופעולות חשובות, ישירות מלוח ההתראות. ב-Android 7.0, הרחבנו את היקף הגדרות מהירות הופכות להיות שימושיות ונוחות עוד יותר.

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

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

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

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

מידע על יצירת משבצת של אפליקציה זמין במסמכי העזרה של Tile.

חסימת מספרים

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

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

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

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

למידע נוסף, תוכלו לקרוא את מאמרי העזרה של BlockedNumberContract

סינון שיחות

ב-Android 7.0, אפליקציית ברירת המחדל לשיחות מאפשרת לסנן שיחות נכנסות. הטלפון עושה זאת באמצעות הטמעת CallScreeningService החדש, שמאפשר לאפליקציית הטלפון לבצע מספר פעולות על סמך Call.Details של השיחה הנכנסת, למשל:

  • דחיית השיחה הנכנסת
  • לא לאפשר לשיחה להיכנס ליומן השיחות
  • לא להציג למשתמש התראה על השיחה

למידע נוסף, תוכלו לקרוא את מאמרי העזרה של CallScreeningService

תמיכה במספר אזורים גיאוגרפיים, שפות נוספות

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

בנוסף לתמיכה במיקומים מרובים, ב-Android 7.0 הורחבה גם מגוון השפות שזמינות למשתמשים. בשירות יש יותר מ-25 וריאציות לשימוש נפוץ כמו אנגלית, ספרדית, צרפתית וערבית. בנוסף, נוספה תמיכה חלקית ביותר מ-100 שפות חדשות.

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

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

סמלי אמוג'י חדשים

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

  • בודקים שמכשיר מכיל אמוג'י לפני שמוסיפים אותו. כדי לבדוק אילו סמלי אמוג'י מופיעים גופן המערכת, צריך להשתמש בשיטה hasGlyph(String).
  • בודקים אם אמוג'י מסוים תומך בבוררי וריאציות. בוררי הווריאציות מאפשרים להציג אמוג'י מסוימים בצבע או בשחור-לבן. במכשירים ניידים, אפליקציות צריכות לייצג סמלי אמוג'י בצבע ולא בשחור-לבן. עם זאת, אם באפליקציה מוצגים אמוג'י בתוך הטקסט, צריך להשתמש בגרסת האפור והלבן. כדי לבדוק אם לאמוג'י מסוים יש וריאציה, משתמשים בבורר הווריאציות. רשימה מלאה של תווים עם וריאציות מופיעה בקטע emoji variation sequences בחומר העזרה של Unicode בנושא וריאציות.
  • בודקים שאמוג'י תומך בגוון עור. ב-Android 7.0 המשתמשים יכולים לשנות את גוון העור של האמוג'י בהתאם להעדפות שלהם. אפליקציות המקלדת צריכות לספק רכיבים חזותיים אינדיקציות לאמוג'י עם כמה גווני עור, וצריך לאפשר למשתמשים לבחור את גוון העור המועדף. כדי לקבוע לאילו אמוג'י מערכת יש לשנות את גוון העור, משתמשים ב-method‏ hasGlyph(String). רוצה לדעת אילו אמוג'י משתמשים בגווני עור? מסמכי תיעוד בנושא Unicode.

ממשקי API של ICU4J ב-Android

Android 7.0 כולל עכשיו קבוצת משנה של ממשקי API מסוג ICU4J ב-Android, חבילת android.icu. ההעברה קלה ופשוטה, והיא כרוכה בעיקר פשוט משתנה ממרחב השמות com.java.icu android.icu. אם אתם כבר משתמשים בחבילת ICU4J באפליקציות שלכם, המעבר לממשקי ה-API של android.icu שסופקו במסגרת Android יכול לחסוך לכם מקום רב ב-APK.

מידע נוסף על ממשקי ה-API של ICU4J ל-Android זמין בתמיכה של ICU4J.

WebView

Chrome + WebView, ביחד

החל מגרסה 51 של Chrome ב-Android 7.0 ואילך, ה-APK של Chrome במכשיר משמש כדי לספק ולעבד רכיבי WebView של מערכת Android. הגישה הזו משפרת את הזיכרון במכשיר עצמו וגם מפחית את רוחב הפס הדרוש WebView מעודכן (כי ה-APK הנפרד של WebView לא יעודכן יותר כל עוד Chrome נשאר מופעל).

כדי לבחור את ספק ה-WebView, מפעילים את אפשרויות הפיתוח ובוחרים באפשרות יישום WebView. אפשר להשתמש בכל גרסת Chrome (פיתוח, בטא או גרסה יציבה) המותקנת במכשיר או APK עצמאי של Webview שישמש כהטמעת WebView.

מולטי-פרוסס

החל מגרסה 51 של Chrome ב-Android 7.0, WebView יריץ תוכן מהאינטרנט תהליך נפרד בארגז חול (sandboxed) באפשרות למפתחים 'Multiprocess WebView' מופעלת.

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

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

הפעלת JavaScript לפני טעינת הדף

החל באפליקציות שמטרגטות ל-Android 7.0, ההקשר של JavaScript יאופס כשדף חדש נטען. בשלב זה, ההקשר מועבר עבור של הדף הראשון שנטען במופע חדש של WebView.

מפתחים שרוצים להחדיר JavaScript ל-WebView צריכים להפעיל את אחרי שהדף התחיל להיטען.

מיקום גיאוגרפי במקורות לא מאובטחים

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

בדיקה באמצעות WebView בטא

WebView מתעדכן באופן קבוע, לכן מומלץ לבדוק את התאימות לאפליקציה שלכם לעיתים קרובות באמצעות ערוץ הבטא של WebView. כדי להתחיל בבדיקות גרסאות טרום-השקה של WebView ב-Android 7.0, מורידים ומתקינים אותן. Chrome Dev או Chrome בטא ובוחרים אותו כהטמעת WebView בקטע לאפשרויות המפתח, כפי שמתואר למעלה. דיווח על בעיות דרך Chromium מעקב אחר באגים כדי שנוכל לתקן אותם לפני שגרסה חדשה של WebView תפורסם שוחרר.

OpenGL™ ES 3.2 API

ב-Android 7.0 נוספו ממשקי framework ותמיכה בפלטפורמות ל-OpenGL ES 3.2, כולל:

  • כל התוספים מ- חבילת תוספים של Android (AEP) מלבד EXT_texture_sRGB_decode.
  • מסדי נתונים זמניים (framebuffers) צפים ל-HDR והצללה דחופה.
  • קריאות משיכה ב-BaseVertex
  • בקרת גישה חזקה למאגר כדי לצמצם את התקורה של WebGL.

ה-API של המסגרת ל-OpenGL ES 3.2 ב-Android 7.0 מסופק באמצעות הכיתה GLES32. כשמשתמשים ב-OpenGL ES 3.2, חשוב להצהיר על הדרישה בקובץ המניפסט באמצעות התג <uses-feature> והמאפיין android:glEsVersion.

לקבלת מידע על השימוש ב-OpenGL ES, כולל הוראות לבדיקת ההגדרה בגרסה נתמכת של OpenGL ES בזמן הריצה, כדאי לעיין במדריך של OpenGL ES API.

הקלטת Android TV

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

למידע נוסף, ראו ממשקי API של Android TV Recording.

Android for Work

ב-Android for Work יש הרבה תכונות חדשות וממשקי API למכשירים עם Android 7.0. חלק מהעדכונים העיקריים מופיעים בהמשך – לרשימה מלאה של התכונות אפשר לעיין התכונה של Android Enterprise list.

אתגר אבטחה של פרופיל העבודה

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

בעלי הפרופיל יכולים להגדיר מדיניות ייחודית לקוד סיסמה באתגר העבודה (למשל, כמה זמן צריך להיות קוד האימות, או אם אפשר להשתמש בטביעת אצבע כדי לבטל את הנעילה של הפרופיל) באמצעות setPasswordQuality(), setPasswordMinimumLength() ושיטות קשורות. הפרופיל הבעלים יכול גם להגדיר את נעילת המכשיר באמצעות DevicePolicyManager שהוחזר באמצעות ה-method החדש getParentProfileInstance(). בנוסף, בעלי פרופילים יכולים להתאים אישית את מסך פרטי הכניסה עבור את אתגר העבודה באמצעות הגרסה החדשה של setOrganizationColor() setOrganizationName() אמצעי תשלום.

להשבית את העבודה

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

חיבור קבוע ל-VPN

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

השיטות החדשות של DevicePolicyManager הן setAlwaysOnVpnPackage() והקבוצה getAlwaysOnVpnPackage().

כי המערכת יכולה לקשר ישירות את שירותי ה-VPN ללא אפליקציה אינטראקציה, לקוחות VPN צריכים לטפל בנקודות כניסה חדשות עבור VPN שפועל כל הזמן. בתור לפני כן, השירותים מסומנים למערכת באמצעות התאמה של מסנן Intent פעולה android.net.VpnService.

המשתמשים יכולים גם להגדיר באופן ידני לקוחות VPN שמטמיעים את VPNService אמצעי תשלום באמצעות הגדרות>עוד>Vpn. האפשרות להפעיל VPN בחיבור תמידי מההגדרות זמינה רק אם לקוח ה-VPN מטרגט את API ברמה 24.

אספקה מותאמת אישית

אפליקציה יכולה להתאים אישית את ניהול ההקצאות של בעלי הפרופיל ושל בעלי המכשיר זורמים עם צבעים וסמלי לוגו של החברה. DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR התאמות אישית את צבעי הזרימה. DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI מתאימה אישית את התהליך באמצעות לוגו של החברה.

שיפורי נגישות

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

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

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

למידע נוסף, תוכלו לקרוא את מאמרי העזרה של GestureDescription.

הפעלה ישירה

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

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

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

מידע נוסף אפשר למצוא במאמר בנושא הפעלה ישירה.

אימות עם מפְתח

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

אימות מפתחות מאפשר לכם לוודא שזוג מפתחות RSA או EC נוצר ומאוחסן במאגר מפתחות שמגובה על ידי חומרה של המכשיר, סביבת ביצוע מהימנה (TEE). הכלי גם מאפשר להשתמש שירות מחוץ למכשיר, כמו השרת העורפי של האפליקציה, כדי לזהות לאמת היטב את השימושים ואת החוקיות של זוג המפתחות. התכונות האלה מספקות רמת אבטחה נוספת שמגנה על זוג המפתחות, גם אם מישהו מבצעת רוט (Root) של המכשיר או פוגעת באבטחה של פלטפורמת Android שפועלת במכשיר.

הערה: רק מספר קטן של מכשירים עם Android 7.0 לתמוך באימות עם מפתחות ברמת החומרה; כל שאר המכשירים עם Android 7.0 במקומו צריך להשתמש באימות עם מפתחות ברמת התוכנה. לפני שמאמתים את הנכסים של מפתחות שמגובים בחומרה של המכשיר בסביבה ברמת הייצור, צריך לוודא שהמכשיר תומך באימות (attestation) למפתחות ברמת החומרה. כדי לעשות זאת, צריך לבדוק ששרשור אישורי האימות מכיל אישור ברמה הבסיסית (root) שנחתם על ידי מפתח הבסיס של אימות Google, ושהרכיב attestationSecurityLevel במבנה הנתונים של תיאור המפתח מוגדר לרמת האבטחה TrustedEnvironment.

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

תצורה של אבטחת רשת

ב-Android 7.0, אפליקציות יכולות להתאים אישית את ההתנהגות של החיבורים המאובטחים (HTTPS,‏ TLS) שלהן בצורה בטוחה, בלי לשנות את הקוד, באמצעות התצורה של אבטחת הרשת במקום להשתמש בממשקי ה-API הפרוגרמטיים הרגילים שחשופים לשגיאות (למשל X509TrustManager).

תכונות נתמכות:

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

מידע נוסף זמין במאמר הגדרת אבטחת רשת.

רשות אישורים מהימנה שמוגדרת כברירת מחדל

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

APK Signature Scheme v2

ב-Android 7.0 אנחנו משיקים את APK Signature Scheme v2, סכמה חדשה לחתימת אפליקציות שמאפשרת מציע זמני התקנה מהירים יותר של האפליקציה והגנה נוספת מפני חומרים לא מורשים שינויים בקובצי APK. כברירת מחדל, Android Studio 2.2 ו-Android פלאגין לחתימה על האפליקציה באמצעות Gradle 2.2 באמצעות APK Signature Scheme v2 וגם סכמת החתימה המסורתית, שבה נעשה שימוש בחתימת JAR.

מומלץ להחיל את הסכימה החדשה APK Signature Scheme v2 על האפליקציה, אבל היא לא חובה. אם המבנה של האפליקציה לא תקין כשמשתמשים ב-APK Signature Scheme v2, אתם יכולים להשבית את הסכמה החדשה. תהליך ההשבתה תגרום ל-Android Studio 2.2 ולפלאגין של Android ל-Gradle 2.2 לחתום באמצעות סכמת החתימה המסורתית בלבד. כדי לחתום רק עם התג באמצעות סכימה מסורתית, פותחים את הקובץ build.gradle ברמת המודול, ואז הוספת השורה v2SigningEnabled false לחתימת הגרסה תצורה:

  android {
    ...
    defaultConfig { ... }
    signingConfigs {
      release {
        storeFile file("myreleasekey.keystore")
        storePassword "password"
        keyAlias "MyReleaseKey"
        keyPassword "password"
        v2SigningEnabled false
      }
    }
  }

זהירות: אם חותמים על האפליקציה באמצעות APK גרסה 2 של חתימת האפליקציה וביצוע שינויים נוספים באפליקציה, בחתימה של האפליקציה לא תקף. לכן, צריך להשתמש בכלים כמו zipalign לפני החתימה על האפליקציה באמצעות APK Signature Scheme v2, לא אחרי כן.

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

גישה לספרייה עם היקף הרשאות

ב-Android 7.0, אפליקציות יכולות להשתמש בממשקי API חדשים כדי לבקש גישה למקורות חיצוניים ספציפיים ספריות, כולל ספריות במדיה נשלפת, כמו SD כרטיסיות. ממשקי ה-API החדשים מפשטים מאוד את האופן שבו האפליקציה ניגשת וספריות אחסון חיצוניות, כמו הספרייה Pictures. קמפיינים לקידום אפליקציות למשל, אפליקציות תמונות יכולות להשתמש בממשקי ה-API האלה במקום READ_EXTERNAL_STORAGE, שמעניק גישה לכל נפח האחסון ספריות, או Storage Access Framework, שגורם למשתמש לנווט את הספרייה.

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

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

כלי העזרה למקשי קיצור

ב-Android 7.0, המשתמש יכול להקיש על Meta + / כדי להפעיל מסך מקשי קיצור שמוצגים בו כל מקשי הקיצור הזמינים את שני מקשי הקיצור מהמערכת ומהאפליקציה עצמה. המערכת מאחזרת את הנתונים האלה קיצורי דרך באופן אוטומטי מתפריט האפליקציה אם קיימים קיצורי הדרך. אפשר לספק גם רשימות מקשי קיצור מותאמות משלכם למסך. כדי לעשות זאת, צריך לשנות את השיטה onProvideKeyboardShortcuts().

הערה: מקש Meta לא נמצא בכל המקלדות: במקלדת של Macintosh, זהו מקש Command, במקלדת של Windows, זהו מקש Windows, ובמקלדות של Pixel C ו-ChromeOS, זהו מקש חיפוש.

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

Custom Pointer API

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

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

Sustained Performance API – ממשק API

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

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

מפתחי אפליקציות יכולים לנסות את ה-API החדש הזה ב-Android 7.0 ב- מכשירי Nexus 6P בלבד. כדי להשתמש בתכונה הזו, הגדרת הסימון של חלון הביצועים הקבוע עבור החלון שרוצים להריץ במצב ביצועים טובים. מגדירים את הדגל הזה באמצעות השיטה Window.setSustainedPerformanceMode(). המערכת באופן אוטומטי משבית את המצב הזה כאשר החלון אינו בפוקוס יותר.

תמיכה ב-VR

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

ב-Android 7.0, מפתחים של שירותי הדפסה יכולים עכשיו להציג מידע נוסף על מדפסות ומשימות הדפסה נפרדות.

כשמציגים מדפסות ספציפיות, שירותי הדפסה יכולים להגדיר סמלים לכל מדפסת בשתי דרכים:

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

כדי לציין את ההתקדמות והסטטוס של משימות ההדפסה בהתראה על משימת ההדפסה, צריך להפעיל את הפונקציות setProgress() ו-setStatus(), בהתאמה.

API למדדי פריימים

Frame Metrics API מאפשר לאפליקציה לעקוב אחרי הרינדור של ממשק המשתמש או של ביצועים. ה-API מספק את היכולת הזו על ידי חשיפת Pub/Sub API של סטרימינג להעברת פריים פרטי התזמון של החלון הנוכחי של האפליקציה. הנתונים המוחזרים מקבילה לזו שמציגה adb shell dumpsys gfxinfo framestats, בין היתר, עם 120 הפריימים האחרונים.

אפשר להשתמש ב-Frame Metrics API כדי למדוד את ממשק המשתמש ברמת האינטראקציה ביצועים בסביבת ייצור, ללא חיבור USB. ה-API הזה מאפשר איסוף נתונים ברמת פירוט גבוהה בהרבה adb shell dumpsys gfxinfo רמת הפירוט הגבוהה יותר הזו אפשרית כי המערכת יכולה לאסוף נתונים לגבי אינטראקציות מסוימות באפליקציה. המערכת אינם צריכים לתעד סיכום גלובלי של כל היישום ביצועים, או לנקות כל מצב גלובלי. אפשר להשתמש יכולת לאסוף נתוני ביצועים ולאתר רגרסיות בביצועים של ממשק המשתמש לתרחישים לדוגמה אמיתיים בתוך אפליקציה.

כדי לעקוב אחרי חלון, צריך להטמיע את OnFrameMetricsAvailableListener.onFrameMetricsAvailable() של הקריאה החוזרת (callback) ולרשום אותה בחלון הזה.

ה-API מספק אובייקט FrameMetrics, מכיל את נתוני התזמון שמערכת המשנה לרינדור מדווחת לגבי אבני דרך שונות במחזור החיים של המסגרת. המדדים הנתמכים הם: UNKNOWN_DELAY_DURATION,‏ INPUT_HANDLING_DURATION,‏ ANIMATION_DURATION,‏ LAYOUT_MEASURE_DURATION,‏ DRAW_DURATION,‏ SYNC_DURATION,‏ COMMAND_ISSUE_DURATION,‏ SWAP_BUFFERS_DURATION,‏ TOTAL_DURATION ו-FIRST_DRAW_FRAME.

קבצים וירטואליים

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

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

למידע נוסף על פתיחת קבצים וירטואליים, אפשר לעיין במאמר לפתוח קבצים וירטואליים באמצעות מדריך ל-Storage Access Frameworks.