ב-Android 13, תכונת הסטרימינג של אפליקציות מאפשרת לטלפונים להזרים את האפליקציות שלהם למכשירים מחוברים, ולמכשירים האלה לבצע פעולות באפליקציות. תפקיד חדש של COMPANION_DEVICE_APP_STREAMING
מאפשר לאפליקציה ליצור ולנהל שרתי proxy למכשירים מרוחקים מחוברים כדי להזרים אפליקציות מהמכשיר המקומי למכשיר המרוחק. לאפליקציה עם התפקיד COMPANION_DEVICE_APP_STREAMING
יש אפשרות לקבל הרשאות ליצירת מסך וירטואלי, להפעיל בו אפליקציה ואז להזרים סרטון של האפליקציה שהופעלה למכשיר אחר. אפליקציית בעל התפקיד יכולה גם להזריק קלט ואירועי מיקרופון
שמתקבלים ממכשיר מרוחק בחזרה למכשיר המקומי, כאילו המכשיר הזה
מחובר כציוד היקפי.
ארכיטקטורה
החל מ-Android 13, הכלי החדש לניהול מכשירים וירטואליים והכלי לניהול מכשירים משניים (CDM) הם אבני הבניין העיקריות לתמיכה בהזרמת אפליקציות ובאינטראקציה עם מכשירים מרוחקים ומחוברים.
Virtual Device Manager
האפשרות 'סטרימינג של אפליקציה' פועלת באמצעות מסכים וירטואליים. מנהל המכשירים הווירטואליים יוצר תצוגה וירטואלית שנפרדת מהתצוגה הראשית הגלויה. כשהמשתמש מביע הסכמה להתחיל סטרימינג של אפליקציה, האפליקציה מופעלת בתצוגה הוירטואלית או מועברת אליה. התוכן של המסך הווירטואלי מועבר בסטרימינג של וידאו למכשיר המחובר כדי להציג אותו.
מנהל המכשירים הווירטואליים כולל ממשקי API שמאפשרים ליצור, לרשום ולנהל מופעים של VirtualDevice
.
מופע VirtualDevice
הוא שרת proxy למכשיר המחובר וליכולות שלו. מכונת VirtualDevice
מאפשרת למכשיר מחובר לקבל, להציג ולבצע אינטראקציה עם סטרימינג של אפליקציה נכנסת, על ידי הפעולות הבאות:
- יצירת מופע של
VirtualDisplay
שנועד להצגה במסך של מכשיר מחובר. - הזרקת שידור אודיו מרחוק, למשל מהמיקרופון של המכשיר המחובר, למכשיר המקומי להפעלה.
- החדרת אירועי קלט מרחוק, כמו מקלדת של מכשיר מחובר, למכשיר המקומי להפעלה.
ניהול מכשיר מותאם
ה-CDM מנהל את מצב הקישוריות ומחיל את דרישות התפקיד שצריך לעמוד בהן כדי להפעיל סטרימינג של אפליקציות.
האיור הבא ממחיש את האינטראקציות בין המכשיר המקומי לבין המכשיר המרוחק במהלך סטרימינג של אפליקציה:
איור 1. אינטראקציות בין המכשיר המקומי למכשיר המרוחק במהלך סטרימינג של אפליקציות
הטמעה של תפקיד הסטרימינג של האפליקציה הנלווית
יצרני ציוד מקורי (OEM) יכולים להטמיע אפליקציה עם תפקיד COMPANION_DEVICE_APP_STREAMING
כדי לאפשר חוויה עשירה ומאובטחת בין מכשירים במכשירים שלהם.
כדי ליצור מכשיר וירטואלי שיאפשר סטרימינג של אפליקציות, האפליקציה צריכה להיות בעלת התפקיד COMPANION_DEVICE_APP_STREAMING
. כשמעניקים את התפקיד, האפליקציה מקבלת את ההרשאה CREATE_VIRTUAL_DEVICE
, שמאפשרת לה ליצור מכשיר וירטואלי. בעלי התפקידים צפויים להטמיע סטרימינג של אפליקציות על ידי יצירת מופע VirtualDevice
שמשמש כשרת proxy למכשיר מחובר. המחלקות VirtualDevice
מספקות שיטות שמאפשרות לחלץ משטח מורכב של תצוגה וירטואלית, שמתאים להזרמה למכשיר אחר. המחלקות VirtualDevice
מספקות גם ממשקי API להחדרת אירועי קלט שמתרחשים במכשיר מרוחק למכשיר המקומי, וכך מאפשרות לאפליקציה שפועלת במכשיר מקומי להופיע כאילו היא פועלת באופן מקורי במכשיר מרוחק.
כדי להטמיע את תפקיד הסטרימינג של האפליקציה הנלווית:
יוצרים אפליקציה שמבקשת את ההרשאה
REQUEST_COMPANION_PROFILE_APP_STREAMING
במניפסט.מציגים למשתמש בקשה להעניק לאפליקציה הרשאה להפעיל סטרימינג של אפליקציות.
יוצרים מופע של CDM
AssociationRequest
כדי לבקש תפקידCOMPANION_DEVICE_APP_STREAMING
. האפליקציה מקבלת את ההרשאהCREATE_VIRTUAL_DEVICE
כשהתפקיד מוקצה.מתקשרים אל
VirtualDeviceManager#create()
כדי ליצור מופע שלVirtualDevice
. במכונתVirtualDevice
, האפליקציה יכולה ליצור ולנהל תצוגות וירטואליות וקלט וירטואלי.מפעילים את הכוונה התלויה ועומדת של ההתראה בתצוגה הווירטואלית ויוצרים צילום וידאו של התצוגה הזו.
יוצרים חיבור למכשיר המחובר ומעבירים אליו את התצוגה הווירטואלית.
הזרקת אירועי קלט מהמכשיר המחובר למכשיר המקומי דרך ממשקי ה-API
VirtualDevice
.כשהמשתמש סוגר את אפליקציית הסטרימינג במכשיר המרוחק, הסטרימינג מסתיים ומוסר מופע
VirtualDevice
. בשלב הזה, האפליקציה שמוזרמת קודם פועלת ברקע במכשיר המקומי והחיבור נסגר.במקרה הצורך, מחכים לאותות נוספים מהמכשיר המחובר כדי להפעיל מחדש את הזרמת האפליקציה.
האפליקציה אחראית להתחבר למכשיר המרוחק, לדווח על מצב הקישוריות ל-CDM ולאכוף את דרישות האבטחה כפי שמתואר ב-CDD.
הדרישות לבעלי התפקיד COMPANION_DEVICE_APP_STREAMING
ה-CDM מעניק את התפקיד COMPANION_DEVICE_APP_STREAMING
כשהמשתמש משייך אפליקציה לסטרימינג של אפליקציות למכשיר. התפקיד הזה משויך לפרופיל מכשיר, ולכן יש שליטה מסוימת על האפליקציות שאפשר להוסיף לחנות Play שתואמות לפרופיל הזה. במאמר בנושא תפקידים ב-Android מופיעה רשימה של הדרישות לתפקיד COMPANION_DEVICE_APP_STREAMING
. למידע נוסף, אפשר לפנות לאיש הקשר שלכם ב-Google.
יכולות של בעלי תפקיד COMPANION_DEVICE_APP_STREAMING
כדי לבצע סטרימינג של אפליקציות, התפקיד COMPANION_DEVICE_APP_STREAMING
מניח שלאפליקציה שמחזיקה בתפקיד יש את היכולות וההתנהגויות הבאות:
- ליצור ולנהל חיבורים למכשירים אחרים.
- כדי ליצור ולנהל תצוגות וירטואליות מהימנות, כולל תצוגות לא נעולות, פועלים לפי השלבים הבאים:
- מתחילים פעילויות במסך הווירטואלי.
- החדרת אירועים שמתרחשים באפליקציה שמוזרמת במכשיר מחובר בחזרה למכשיר המקומי, כמו הפעלת אירוע מגע בטאבלט באותן קואורדינטות בטלפון.
- לכידת נתוני אודיו מהאפליקציה שמוזרמת.
- להחליף את זרם המיקרופון של המכשיר המקומי בזרם המיקרופון של מכשיר מחובר בזמן שאפליקציה שמוזרמת משתמשת במיקרופון.
- להחליף את הזרם של המצלמה במכשיר המקומי בזרם של המצלמה במכשיר המחובר בזמן שאפליקציה שמוזרמת משתמשת במצלמה.
- לנהל את ההתראות ולשלוח אותן בסטרימינג מהמכשיר המקומי למכשיר המחובר, ולבצע פעולות בהתראות.
- הזרמת מטא-נתונים מהמכשיר המקומי, כמו רשימת האפליקציות שזמינות במכשיר המקומי, למכשיר המחובר.
- שליחת בקשה לאימות המכשיר.