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 החדשות.

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

קיצורי דרך לשיתוף מאפשרים לשתף תוכן מהר יותר ובקלות רבה יותר, ומאפשרים למשתמשים לעבור ישירות לאפליקציה אחרת כדי לשתף תוכן. מפתחים יכולים לפרסם יעדי שיתוף שמפעילים פעילות ספציפית באפליקציות שלהם עם תוכן מצורף, והיעדים האלה מוצגים למשתמשים בממשק המשתמש של השיתוף. מכיוון שהם מתפרסמים מראש, ממשק המשתמש של השיתוף נטען באופן מיידי כשמפעילים אותו. כפתורים לשיתוף מהיר דומים לקיצורי דרך של אפליקציות ומשתמשים באותו API של ShortcutInfo. ממשק ה-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+‎ לסרטונים בטווח דינמי גבוה במכשירים שתומכים בו. ה-API‏ MediaCodecInfo מאפשר דרך קלה יותר לקבוע את יכולות עיבוד הווידאו של מכשיר 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 ומעלה, ומומלץ לכל המכשירים עם מערכת Android מגרסה 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.