Android 10 למפתחים

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

ריכזנו כאן את החידושים ב-Android 10 למפתחים, ואת הדרכים שבהן אפשר להשתמש בהם כבר עכשיו.

חדשנות וחוויות חדשות

ב-Android 10 תוכלו ליהנות מהחידושים האחרונים בתחום החומרה והתוכנה כדי לספק למשתמשים חוויה מדהימה באפליקציה.

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

מכשירים מתקפלים

ב-Android 10 יש תמיכה חזקה בחלונות מרובים, שמאפשרת לבצע מולטי-טאסקינג בחלונות של אפליקציות שונות. בנוסף, התכונה 'המשך המסך' שומרת על מצב האפליקציה כשהמכשיר מקופל או פתוח. ב-Android 10 נוספו כמה שיפורים ב-onResume וב-onPause כדי לתמוך בהפעלה מחדש בכמה מיקומים ולשלוח התראה לאפליקציה כשהיא נמצאת במוקד. הוא גם משנה את אופן הפעולה של מאפיין המניפסט resizeableActivity, כדי לעזור לכם לנהל את האופן שבו האפליקציה מוצגת במסכים מתקפלים ובמסכים גדולים. כדי לעזור לכם לפתח מכשירים מתקפלים, תוכלו להגדיר אמולטור מתקפל כמכשיר וירטואלי (AVD) ב-Android Studio. למידע נוסף על אופטימיזציה של אפליקציות למכשירים מתקפלים, אפשר לעיין במדריך למפתחים.

רשתות 5G

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

'תשובה מהירה' בהתראות

ב-Android 10 נעשה שימוש בלמידת מכונה במכשיר כדי להציע פעולות לפי הקשר בהתראות, כמו תשובות חכמות להודעות או פתיחת מפה של כתובת בהתראה. האפליקציות שלכם יכולות ליהנות מהתכונה הזו מיד, בלי שתצטרכו לעשות דבר. התשובות המהירות והפעולות שמספקת המערכת מוטמעות ישירות בהתראות כברירת מחדל. אם תרצו, עדיין תוכלו לספק תשובות ופעולות משלכם. פשוט מבטלים את ההסכמה ל'תשובות חכמות' לכל התראה בנפרד באמצעות setAllowGeneratedReplies()‎ ו-setAllowSystemGeneratedContextualActions()‎.

התכונה 'תשובה מהירה' יכולה להציע פעולות על סמך תוכן ההתראות.

עיצוב כהה

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

ב-Android 10 אפשר ליצור באופן דינמי עיצוב כהה לאפליקציה באמצעות 'אילוץ כהה'.

ניווט באמצעות תנועות

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

ב-Android 10 יש מצב ניווט מלא באמצעות תנועות, שמבטל את האזור של סרגל הניווט ומאפשר לאפליקציות להשתמש במסך מלא כדי לספק חוויות עשירות וסוחפות יותר. התכונה שומרת את הניווטים המוכרים 'הקודם', 'דף הבית' ו'אחרונים' באמצעות החלקות מהקצה, ללא הלחצנים הגלויים. כדי לשלב את התמונה בצורה חלקה עם הניווט באמצעות תנועות, כדאי להציג את התמונה מקצה לקצה, ולצייר מאחורי סרגל הניווט כדי ליצור חוויה immersive. כדי להטמיע את התכונה הזו, אפליקציות צריכות להשתמש ב-API‏ setSystemUiVisibility()‎ כדי להציג את התצוגה במסך מלא, ולאחר מכן לטפל ב-WindowInsets בהתאם כדי לוודא שחלקים חשובים בממשק המשתמש לא מוסתרים. מתחילים לבצע אופטימיזציה לאפליקציה כבר היום, ומעיינים בסדרת הפוסטים בבלוג שלנו כדי לקבל מידע נוסף.

חלוניות הגדרות

מעכשיו אפשר להציג הגדרות מערכת חשובות ישירות בהקשר של האפליקציה, באמצעות ממשק API חדש של חלונית ההגדרות. חלונית ההגדרות היא ממשק משתמש צף שאפשר להפעיל כדי להציג הגדרות שהמשתמשים עשויים להזדקק להן, כמו חיבור לאינטרנט, NFC ועוצמת האודיו. לדוגמה, בדפדפן יכול להופיע חלונית עם הגדרות קישוריות כמו מצב טיסה, Wi-Fi (כולל רשתות בקרבת מקום) וחבילת גלישה. כדי להציג חלונית הגדרות, פשוט מפעילים כוונה עם אחת מהפעולות החדשות של Settings.Panel.

קיצורי דרך לשיתוף

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

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

פרטיות המשתמשים

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

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

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

הגנה על נתוני מיקום בסריקות רשת – לרוב ממשקי ה-API לרשתות הסריקה כבר נדרשת הרשאת מיקום משוער. ב-Android 10, ההגנה על ממשקי ה-API האלה מוגברת על ידי דרישה להרשאת מיקום מדויקת במקום זאת.

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

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

חסימת הפרעות לא רצויות – ב-Android 10 אפשר למנוע הפעלה של אפליקציות מהרקע, שמופיעות באופן בלתי צפוי בחזית ומסיחות את המיקוד מאפליקציה אחרת. מידע נוסף

אבטחה

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

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

TLS 1.3 כברירת מחדל – ב-Android 10 מופעל גם TLS 1.3 כברירת מחדל. זוהי גרסה מעודכנת של תקן TLS עם יתרונות בביצועים ואבטחה משופרת.

הקשחת הפלטפורמה – מערכת Android 10 כוללת גם הקשחה של כמה תחומים קריטיים לאבטחה בפלטפורמה.

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

מצלמה ומדיה

עומק דינמי בתמונות

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

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

הקלטת הפעלת אודיו

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

רכיבי קודק חדשים של וידאו ואודיו

ב-Android 10 נוספה תמיכה בקודק הווידאו בקוד פתוח AV1, שמאפשר לספקים של מדיה להעביר סטרימינג של תוכן וידאו באיכות גבוהה למכשירי Android באמצעות פחות רוחב פס. בנוסף, Android 10 תומך בקידוד אודיו באמצעות Opus – קודק פתוח ללא תמלוגים שמותאם לשידור דיבור ומוזיקה בסטרימינג – וב-HDR10+ לסרטונים בטווח דינמי גבוה במכשירים שתומכים בכך. MediaCodecInfo API מציג דרך קלה יותר לקבוע את יכולות העיבוד של סרטונים במכשיר Android. לכל קודק נתון, אפשר לקבל רשימה של גדלים ותדירויות פריימים נתמכים.

ממשק API מקורי ל-MIDI

ב-Android 10, באפליקציות שעיבוד האודיו שלהן מתבצע ב-C++ , נוסף ממשק MIDI API שמיועד לתקשורת עם מכשירי MIDI דרך NDK. ה-API הזה מאפשר לאחזר נתוני MIDI בתוך קריאה חוזרת (callback) של אודיו באמצעות קריאה לא חוסמת, ומאפשר עיבוד של הודעות MIDI עם זמן אחזור קצר. נסו להשתמש באפליקציה לדוגמה וכאן ניתן לקבל קוד מקור.

מיקרופונים כיווניים עם זום

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

Vulkan בכל מקום

מערכת Android 10 מרחיבה את ההשפעה של Vulkan באמצעות ההטמעה שלנו של ממשק API בפלטפורמות שונות, שמיועד לגרפיקה תלת-ממדית בעלת ביצועים גבוהים. Vulkan 1.1 הוא עכשיו דרישה בכל המכשירים עם 64 ביט שפועלים עם Android מגרסה 10 ואילך, והוא מומלץ לכל המכשירים עם 32 ביט. אנחנו כבר רואים התקדמות משמעותית בתמיכה ב-Vulkan בסביבה העסקית – מתוך המכשירים עם Android N ואילך, 53% תומכים ב-Vulkan 1.0.3 ואילך. בעקבות הדרישה החדשה ב-Android 10, אנחנו מצפים לעלייה נוספת בהיקף השימוש בשנה הקרובה.

קישוריות

שיפור הקישוריות ברשתות P2P ובאינטרנט

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

מצבי ביצועים של Wi-Fi

אפליקציות יכולות עכשיו לבקש חיבור Wi-Fi מותאם על ידי הפעלה של מצב ביצועים גבוהים ומצב זמן אחזור קצר. הן יכולות להיות יתרון משמעותי במקרים שבהם זמן אחזור קצר חשוב לחוויית המשתמש, כמו משחקים בזמן אמת, שיחות קוליות פעילות ותרחישי שימוש דומים. הפלטפורמה פועלת עם קושחת המכשיר כדי לעמוד בדרישות עם צריכת החשמל הנמוכה ביותר. כדי להשתמש במצבי הביצועים החדשים, צריך לקרוא ל-Wi-Manager.Wi-FiLock.createWi-Lock() עם WIFI_MODE_FULL_LOW_LATENCY או WIFI_MODE_FULL_HIGH_PERF. במצבים האלה, הפלטפורמה פועלת עם קושחת המכשיר כדי לעמוד בדרישות עם צריכת החשמל הנמוכה ביותר.

יסודות Android

אופטימיזציות של ART

שיפורים בזמן הריצה של ART עוזרים לאפליקציות להתחיל מהר יותר, לצרוך פחות זיכרון ולפעול בצורה חלקה יותר – ללא צורך בפעולות מצידכם. פרופילים של ART ש-Google Play מספק מאפשרים ל-ART לקמפל מראש חלקים מהאפליקציה עוד לפני שהיא פועלת. בסביבת זמן הריצה, מערכת Android 10 מוסיפה את Generational Garbage Collection למנגנון האיסוף של אשפה (GC) של ART שמבצע העתקה בו-זמנית (CC), כדי לשפר את היעילות של איסוף האשפה מבחינת זמן ו-CPU, לצמצם את התנודות בזמן הביצוע (jank) ולעזור לאפליקציות לפעול טוב יותר במכשירים ברמה נמוכה יותר.

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

Neural Networks API 1.2

הוספנו 60 פעולות חדשות כולל ARGMAX, ARGMIN, LSTM כמותית, לצד מגוון אופטימיזציות של ביצועים. זהו הבסיס להאצת מגוון רחב יותר של מודלים, כמו מודלים לזיהוי אובייקטים ולפילוח תמונות. אנחנו עובדים עם ספקי חומרה ופלטפורמות פופולריות של למידת מכונה, כמו TensorFlow, כדי לבצע אופטימיזציה ולהשיק תמיכה ב-NNAPI 1.2.

Thermal API

כשמכשירים מתחממים מדי, יכול להיות שהם יאטו את המעבד (CPU) ו/או את המעבד הגרפי (GPU), וזה יכול להשפיע על אפליקציות ומשחקים בדרכים לא צפויות. עכשיו ב-Android 10, אפליקציות ומשחקים יכולים להשתמש ב- thermal API כדי לעקוב אחרי השינויים במכשיר ולנקוט פעולה כדי לעזור בשחזור הטמפרטורה הרגילה. לדוגמה, אפליקציות סטרימינג יכולות להפחית את הרזולוציה או את קצב הביטים או את תעבורת הנתונים ברשת, אפליקציית מצלמה עשויה להשבית את הפלאש או שיפור תמונה אינטנסיבי, או שמשחק יכול להפחית את קצב הפריימים או את חלוקת הפוליגונים. מידע נוסף זמין כאן.

תאימות באמצעות ממשקי API ציבוריים

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

עדכונים מהירים יותר, קוד עדכני יותר

Android 10 נוצר כדי לאפשר עדכונים מהירים יותר באמצעות Project Treble, שמספק ממשק עקבי וניתן לבדיקה בין Android לבין קוד המכשיר הבסיסי של יצרני המכשירים ויצרני הסיליקון. בעזרת Treble, יצרני המכשירים יכולים להציע את Android 10 במכשירים שתואמים ל-Treble מהר יותר ובעלות נמוכה יותר.

Android 10 היא גם הגרסה הראשונה שתומכת ב-Project Mainstream (שנקראת באופן רשמי עדכוני מערכת של Google Play), הטכנולוגיה החדשה שלנו לאבטחת משתמשי Android ולעדכון המכשירים שלהם בשינויים חשובים בקוד – ישירות מ-Google Play. בעזרת עדכוני המערכת של Google Play, אנחנו יכולים לעדכן רכיבים פנימיים ספציפיים בכל המכשירים עם Android מגרסה 10 ואילך, בלי צורך בעדכון מערכת מלא מיצרן המכשיר.

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

שנתחיל?

מקורות מידע מלאים למפתחים בנושא Android 10 זמינים בכתובת developer.android.com/10.