Android 7.0 Nougat כולל מגוון של תכונות ויכולות חדשות למשתמשים ולמפתחים. במסמך הזה נדגיש את התכונות החדשות למפתחים.
כדאי לעיין ההתנהגות של Android 7.0 משתנה כדי לקבל מידע על אזורים שבהם הפלטפורמה משתנה עלול להשפיע על האפליקציות שלך.
מידע נוסף על לתכונות לצרכן של Android 7.0, בקר בכתובת www.android.com.
תמיכה בריבוי חלונות
ב-Android 7.0, אנחנו משיקים גרסה חדשה ומבוקשת תכונה של ריבוי משימות בפלטפורמה – תמיכה בריבוי חלונות.
עכשיו המשתמשים יכולים לפתוח שתי אפליקציות בו-זמנית במסך.
- בטלפונים ובטאבלטים שמשתמשים ב-Android 7.0 יכולים להריץ שתי אפליקציות זה לצד זה או אחד מעל השני במצב מסך מפוצל. המשתמשים יכולים לשנות את גודל האפליקציות באמצעות גרירה את המחיצה ביניהם.
- במכשירי Android TV, אפליקציות יכולות להעביר את עצמן למצב תמונה בתוך תמונה , כך שיוכלו להמשיך להציג תוכן בזמן שהמשתמש מעיין מקיימים אינטראקציה עם אפליקציות אחרות.
![אפליקציות פועלות בנייד במצב מסך מפוצל](https://developer.android.google.cn/static/images/android-7.0/mw-portrait.png?authuser=7&hl=he)
איור 1. אפליקציות שפועלות במצב מסך מפוצל.
תמיכה בריבוי חלונות, במיוחד בטאבלטים ובמכשירים אחרים עם מסך גדול מספק דרכים חדשות לעורר עניין בקרב המשתמשים. אפשר אפילו להפעיל גרירה ושחרור כדי לאפשר למשתמשים לגרור תוכן בנוחות אל האפליקציה או ממנה — לשיפור חוויית המשתמש.
קל להוסיף לאפליקציה תמיכה בריבוי חלונות ולהגדיר איך מטפל בתצוגה עם ריבוי חלונות. לדוגמה, אפשר לציין את הפעילות המאפיינים המינימליים המותרים, ובכך מונעים ממשתמשים לשנות את גודל הפעילות שמתחת בגודל הזה. אפשר גם להשבית את התצוגה של ריבוי חלונות באפליקציה, ואז מבטיח שהמערכת תציג את האפליקציה רק במצב מסך מלא.
מידע נוסף זמין במאמר תמיכה בריבוי חלונות תיעוד למפתחים.
שיפורי התראות
ב-Android 7.0 עיצבנו מחדש את ההתראות כדי להפוך אותן לקלות יותר מהיר יותר לשימוש. דוגמאות לשינויים:
- עדכוני תבניות: אנחנו מעדכנים את תבניות ההתראות ל- שם דגש חדש על דמות הגיבור ועל הדמות. מפתחים יוכלו לנצל את התבניות החדשות עם שינויים מינימליים בקוד.
-
התאמה אישית של סגנון העברת ההודעות: תוכלו להתאים אישית עוד
תוויות ממשק המשתמש שמשויכות להתראות שלכם באמצעות
כיתה אחת (
MessagingStyle
). אפשר להגדיר את ההודעה, כותרת השיחה ותצוגת התוכן. - התראות מקובצות: המערכת יכולה לקבץ הודעות יחד, למשל לפי נושא ההודעה, ולהציג את הקבוצה. המשתמש יכול לבצע בהם פעולות כמו סגירה או העברה לארכיון. אם הטמענו התראות ל-Android Wear, שאתם כבר מכירים במודל הזה.
- תשובה ישירה: לאפליקציות תקשורת בזמן אמת, מערכת Android תומכת בתשובות בגוף ההודעה כדי שהמשתמשים יוכלו להגיב במהירות הודעת SMS או טקסט ישירות בתוך ממשק ההתראות.
- תצוגות מותאמות אישית: שני ממשקי API חדשים מאפשרים לך למנף את המערכת קישוטים, כמו כותרות של התראות ופעולות, כשמשתמשים בהתאמה אישית צפיות בהתראות.
![מכשיר נייד שבו מוצגות התראות על הודעות בחבילה](https://developer.android.google.cn/static/images/android-7.0/notifications-1.png?authuser=7&hl=he)
![התראה על הודעה יחידה בנייד](https://developer.android.google.cn/static/images/android-7.0/notifications-3.png?authuser=7&hl=he)
![בנייד, מוצגת תשובה להודעה בשרשור בתוך ממשק ההתראות](https://developer.android.google.cn/static/images/android-7.0/notifications-2.png?authuser=7&hl=he)
איור 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 הושקה 'נמנום', מצב מערכת שחוסך את צריכת הסוללה על ידי דחיית הטעינה 'אפליקציות' פעילויות של המעבד (CPU) והרשת כשהמכשיר לא פעיל, למשל כשהוא מונח על שולחן או במגירה.
עכשיו ב-Android 7.0, אפליקציית Doze לוקחת צעד אחד קדימה וחוסכת סוללה תוך כדי תנועה. בכל פעם שהמסך כבוי לפרק זמן מסוים והמכשיר מנותק מהחשמל, התכונה Doze מחילה קבוצת משנה של הגבלות הרשת והמעבד המוכרות על אפליקציות. המשמעות היא שהמשתמשים יכולים לחסוך בצריכת הסוללה גם כשהם נושאים את המכשירים שלהם כיסים.
![איור שמראה איך התכונה Doze מחילה רמה ראשונה של הגבלות פעילות במערכת כדי לשפר את חיי הסוללה](https://developer.android.google.cn/static/images/android-7.0/doze-diagram-1.png?authuser=7&hl=he)
איור 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) בהגדרות](https://developer.android.google.cn/static/images/android-7.0/datasaver.png?authuser=7&hl=he)
איור 4. חוסך הנתונים (Data Saver) ב'הגדרות'.
במהלך חיי המכשיר, העלות של חבילת גלישה סלולרית בדרך כלל חורג מהעלות של המכשיר עצמו. עבור משתמשים רבים, חבילת הגלישה שהם רוצים לשמר.
Android 7.0 כולל את מצב חוסך הנתונים (Data Saver), שירות מערכת חדש שעוזר שימוש בחבילת הגלישה על ידי אפליקציות, בין אם בנדידה, לקראת סוף מחזור החיובים, או על חבילת נתונים קטנה בתשלום מראש. חוסך הנתונים (Data Saver) מאפשר למשתמשים לשלוט באופן שבו אפליקציות שימוש בחבילת גלישה ומאפשר למפתחים לספק שירות יעיל יותר כאשר נתונים מצב חיסכון פועל.
כשמשתמש מפעיל את חוסך הנתונים (Data Saver) בהגדרות, והמכשיר ברשת עם חיוב לפי שימוש בנתונים, המערכת חוסמת את השימוש בנתוני רקע ומסמן אפליקציות כדי להשתמש בפחות נתונים בחזית ככל האפשר, למשל על ידי הגבלת קצב העברת נתונים לסטרימינג, הפחתת איכות התמונה, דחייה של טעינה מראש אופטימית, וכן הלאה. המשתמשים יכולים לתת הרשאה לאפליקציות ספציפיות לאפשר שימוש בנתונים של מכסת מאמרים ללא תשלום ברקע גם כשחוסך הנתונים (Data Saver) מופעל.
Android 7.0 מרחיב את ConnectivityManager
כדי לספק לאפליקציות
דרך לאחזר
העדפות חוסך הנתונים (Data Saver) של המשתמש ומעקב
שינויים בהעדפות. כל האפליקציות צריכות לבדוק אם המשתמש הפעיל נתונים
אפשר לחסוך ולהשקיע מאמצים כדי להגביל את השימוש בנתונים בחזית וברקע.
ממשק API של Vulkan
מערכת Android 7.0 כוללת את VulkanTM, ממשק API חדש לרינדור בתלת-ממד, עם הפלטפורמה. מוצא חן בעיניי TMOpenGL ES, Vulkan הוא תקן פתוח לגרפיקה ולרינדור בתלת-ממד מאת קבוצת חרונוס.
Vulkan תוכנן מהיסוד כדי למזער את התקורה של המעבד (CPU) בנהג, ולאפשר לאפליקציה לשלוט בפעולת ה-GPU באופן ישיר יותר. וולקן גם מאפשרת מקבילה טובה יותר בכך שהיא מאפשרת לשרשורים מרובים לבצע כמו בניית מאגר פקודות בו-זמנית.
הכלים והספריות למפתחים של Vulkan כלולים ב-Android 7.0 SDK. הם כוללים:
- כותרות
- שכבות אימות (ספריות ניפוי באגים)
- מהדר של תוכנות הצללה (shader) SPIR-V
- ספריית אוסף של תוכנות הצללה לזמן ריצה SPIR-V
Vulkan זמין רק לאפליקציות במכשירים עם חומרה שתומכת ב-Vulkan, כגון Nexus 5X, Nexus 6P ו-Nexus Player. אנחנו עובדים בשיתוף פעולה הדוק עם כדי להביא את Vulkan למכשירים נוספים בהקדם האפשרי.
מידע נוסף זמין במאמרי העזרה של ה-API.
ממשק API של כרטיסי מידע בהגדרות המהירות
![פקדי ההגדרות המהירות בלוח ההתראות](https://developer.android.google.cn/static/images/android-7.0/quicksettings.png?authuser=7&hl=he)
איור 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)
. - בודקים שאמוג'י תומך בבוררי וריאציות. בוררי הווריאציות מאפשרים לך להציג סמלי אמוג'י מסוימים בצבע או בשחור-לבן. במכשירים ניידים, אפליקציות צריכות לייצג סמלי אמוג'י בצבע ולא בשחור-לבן. אבל, לפעמים אם באפליקציה מוצגים סמלי אמוג'י עם טקסט, היא צריכה להשתמש בווריאציה בשחור-לבן. כדי לבדוק אם לאמוג'י מסוים יש וריאציה, אפשר להשתמש בבורר הווריאציות. לרשימה מלאה של תווים עם גרסאות, אפשר לעיין של רצפים של וריאציות של אמוג'י. מסמכי תיעוד בנושא Unicode בנושא וריאציות.
-
בודקים שאמוג'י תומך בגוון עור. ב-Android 7.0 המשתמשים יכולים לשנות את
גוון עור שעבר רינדור, בהתאם להעדפות שלהם. אפליקציות המקלדת צריכות לספק רכיבים חזותיים
אינדיקציות לאמוג'י עם כמה גווני עור, וצריך לאפשר למשתמשים
לבחור את גוון העור המועדף. איך מגדירים את האמוג'י של המערכת
כלים לשינוי גוון העור, צריך להשתמש ב
hasGlyph(String)
. רוצה לדעת אילו אמוג'י משתמשים בגווני עור? מסמכי תיעוד בנושא Unicode.
ממשקי API של ICU4J ב-Android
Android 7.0 כולל עכשיו קבוצת משנה של ממשקי API מסוג ICU4J ב-Android,
חבילת android.icu
. ההעברה קלה ופשוטה, והיא כרוכה בעיקר
פשוט משתנה ממרחב השמות com.java.icu
android.icu
. אם אתה כבר משתמש בחבילת ICU4J ב
אפליקציות, ועוברים אל ממשקי ה-API של android.icu
שמסופקים ב-Android
framework יכולה להניב חיסכון משמעותי בגודל ה-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 תפורסם שוחרר.
API ל-OpenGLTM ES 3.2
ב-Android 7.0 נוספו ממשקי framework ותמיכה בפלטפורמות ל-OpenGL ES 3.2, כולל:
- כל התוספים מ-
חבילת תוספים של Android (AEP) מלבד
EXT_texture_sRGB_decode
. - מסדי נתונים זמניים (framebuffers) צפים ל-HDR והצללה דחופה.
- קריאות משיכה ב-BaseVertex יעלו כדי לאפשר קיבוץ וסטרימינג טובים יותר.
- בקרת גישה למאגר נתונים זמני וחזקים לצמצום התקורה של WebGL.
ה-framework 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.
אתגר אבטחה של פרופיל העבודה
בעלי פרופילים שמטרגטים ל-SDK של N
הוא יכול לציין אתגר אבטחה נפרד לאפליקציות שפועלות
פרופיל העבודה. אתגר העבודה מוצג כשמשתמש מנסה לפתוח
כל אפליקציה לעבודה. השלמת בהצלחה את אתגר האבטחה תבטל את הנעילה של
פרופיל העבודה ומפענח אותו במקרה הצורך. לבעלי פרופילים:
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
בתוך המפתח
תיאור מבנה הנתונים מוגדר לאבטחת סביבה מהימנה
ברמה.
מידע נוסף זמין במאמר אימות עם מפְתח תיעוד למפתחים.
תצורה של אבטחת רשת
ב-Android 7.0, אפליקציות יכולות להתאים אישית את התנהגות האבטחה שלהן (HTTPS, TLS) באופן בטוח, ללא שינוי בקוד, על ידי שימוש תצורה של אבטחת רשת במקום להשתמש בשיטה הקונבנציונלית ממשקי API פרוגרמטיים שמועדים לשגיאות (למשל, X509TrustManager).
תכונות נתמכות:
- ישויות עוגן אמינות בהתאמה אישית. מאפשר לאפליקציה להתאים אישית רשויות האישורים (CA) מהימנות בגלל החיבורים המאובטחים שלהן. עבור לדוגמה, מתן אמון באישורים מסוימים בחתימה עצמית או בקבוצה מוגבלת של רשויות אישורים ציבוריות.
- שינויים לניפוי באגים בלבד. מאפשר למפתחי אפליקציות לנפות באגים בבטחה חיבורים מאובטחים לאפליקציה ללא סיכון נוסף הבסיס.
- ביטול הסכמה לתנועת גולשים ללא טקסט. מאפשרת לאפליקציה להגן על עצמה שימוש מקרי בתנועת טקסט ללא הצפנה.
- הצמדת אישור. תכונה מתקדמת שמאפשרת לאפליקציה להגביל את מפתחות השרת שנחשבים כמהימנים לחיבורים מאובטחים.
מידע נוסף זמין במאמר הגדרת אבטחת רשת.
ברירת מחדל של רשות אישורים מהימנה
כברירת מחדל, אפליקציות שמטרגטות את Android 7.0 סומכים רק על אישורים שסופקו על ידי המערכת הם כבר לא סומכים על רשויות אישורים (CA) שנוספו על ידי משתמשים. אפליקציות שמטרגטות את Android 7.0 (API ברמה 24) שרוצים לסמוך על רשויות אישורים שנוספו על ידי משתמשים, צריך להשתמש תצורה של אבטחת רשת אל להגדיר את המהימנות של רשויות אישורים של משתמשים.
סכימת חתימת APK גרסה 2
ב-Android 7.0 אנחנו משיקים את APK Signature Scheme v2, סכמה חדשה לחתימת אפליקציות שמאפשרת מציע זמני התקנה מהירים יותר של האפליקציה והגנה נוספת מפני חומרים לא מורשים שינויים בקובצי APK. כברירת מחדל, Android Studio 2.2 ו-Android פלאגין לחתימה על האפליקציה באמצעות Gradle 2.2 באמצעות APK Signature Scheme v2 וגם סכמת החתימה המסורתית, שבה נעשה שימוש בחתימת JAR.
אנחנו ממליצים להחיל את גרסה 2 של ה-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 + / כדי להפעיל
מסך מקשי קיצור שמוצגים בו כל מקשי הקיצור הזמינים את שני מקשי הקיצור
מהמערכת ומהאפליקציה עצמה. המערכת מאחזרת את הנתונים האלה
קיצורי דרך באופן אוטומטי מתפריט האפליקציה אם קיימים קיצורי הדרך. אפשר
לספק גם רשימות מקשי קיצור מותאמות משלכם למסך. אפשר לבצע
על ידי שינוי ה-method 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
יכולות להיות תנודות משמעותיות בביצועים של אפליקציות ממושכות, כי מווסתת את המנועים של מערכת על שבב (SoC) כשרכיבי המכשיר מגיעים מגבלות טמפרטורה. התנודות האלה מייצגות יעד נע עבור האפליקציה מפתחים שיוצרים אפליקציות ממושכות, עם ביצועים גבוהים.
כדי להתמודד עם המגבלות האלה, מערכת 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, מפתחים של שירותי הדפסה יכולים עכשיו להציג מידע נוסף על מדפסות ומשימות הדפסה נפרדות.
כשמציגים מדפסות נפרדות, אפשר להגדיר עכשיו שירות הדפסה לכל מדפסת את הסמלים בשתי דרכים:
- אפשר להגדיר סמל ממזהה המשאב באמצעות קריאה
setIconResourceId()
- אפשר להציג סמל מהרשת באמצעות התקשרות
setHasCustomPrinterIcon()
, והגדרת קריאה חוזרת (callback) כשתוצג בקשה לסמל באמצעותonRequestCustomPrinterIcon()
.
בנוסף, אפשר לספק פעילות לכל מדפסת כדי להציג
מידע על ידי חיוג אל 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.