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 נעשה שימוש ב-ML במכשיר כדי להציע פעולות בהתאם להקשר בהתראות, כמו תשובות חכמות להודעות או פתיחת מפה לכתובת בהתראה. האפליקציות שלכם יכולות להשתמש בתכונה הזו באופן מיידי, בלי שתצטרכו לעשות שום דבר. כברירת מחדל, התשובות והפעולות החכמות שמוצעות על ידי המערכת מוצגות ישירות בהתראות. עדיין תוכלו לספק תשובות ופעולות משלכם אם תרצו. פשוט משביתים את התשובה המהירה לכל התראה בנפרד באמצעות setAllowGeneratedReplies()‎ ו-setAllowSystemGeneratedContextualActions()‎.

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

עיצוב כהה

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

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

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

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

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

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

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

כפתורים לשיתוף מהיר

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

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

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

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

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

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

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

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

אבטחת נתוני משתמשים באחסון חיצוני – ב-Android 10 בוצעו כמה שינויים כדי לתת למשתמשים יותר שליטה על קבצים באחסון חיצוני ועל נתוני האפליקציות שכלולים בהם. אפליקציות יכולות לאחסן קבצים משלהן בארגזי החול הפרטיים שלהן, אבל הן חייבות להשתמש ב-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 נוסף תמיכה ב-codec של וידאו בקוד פתוח AV1, שמאפשר לספקי מדיה להזרים תוכן וידאו באיכות גבוהה למכשירי Android עם שימוש בפחות רוחב פס. בנוסף, Android 10 תומך בקידוד אודיו באמצעות Opus – קודק פתוח ללא תמלוגים שעבר אופטימיזציה לסטרימינג של דיבור ומוזיקה – וב-HDR10+‎ לסרטונים בטווח דינמי גבוה במכשירים שתומכים בו. ‫MediaCodecInfo API מציג דרך קלה יותר לקבוע את יכולות עיבוד הווידאו של מכשיר Android. לכל קודק, אפשר לקבל רשימה של גדלים וקצבי פריימים נתמכים.

Native MIDI API

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

מיקרופונים כיווניים עם אפשרות זום

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

Vulkan בכל מקום

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

קישוריות

שיפורים בחיבור לאינטרנט ובחיבור בין עמיתים

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

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

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

יסודות Android

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

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

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

Neural Networks API 1.2

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

Thermal API

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

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

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

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

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

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

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

שנתחיל?

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