מערכת Android תומכת במספר משתמשים במכשיר Android אחד על ידי הפרדה בין חשבונות המשתמשים לבין נתוני האפליקציות. לדוגמה, הורים יכולים לאפשר לילדים להשתמש בטאבלט המשפחתי, משפחה יכולה לשתף רכב או צוות תגובה קריטי יכול לשתף מכשיר נייד לצורך תורנות.
טרמינולוגיה
ב-Android נעשה שימוש במונחים הבאים לתיאור משתמשים וחשבונות ב-Android.
כללי
ניהול מכשירי Android מתבסס על המונחים הכלליים הבאים:
- משתמש: כל משתמש מיועד לשימוש של אדם פיזי אחר. לכל משתמש יש נתוני אפליקציה ייחודיים והגדרות ייחודיות מסוימות, וגם ממשק משתמש שמאפשר לעבור בין משתמשים באופן מפורש. משתמש יכול לפעול ברקע כשמשתמש אחר פעיל. המערכת מנהלת את השבתת המשתמשים כדי לחסוך במשאבים במקרים הרלוונטיים. אפשר ליצור משתמשים משניים ישירות דרך ממשק המשתמש או דרך אפליקציית ניהול המכשיר.
- חשבון: חשבונות נכללים במשתמש, אבל הם לא מוגדרים על ידו, וגם המשתמש לא מוגדר על ידי חשבון נתון או מקושר אליו. למשתמשים ולפרופילים יש חשבונות ייחודיים משלהם, אבל הם לא חייבים להיות בעלי חשבונות כדי לפעול. רשימת החשבונות משתנה בהתאם למשתמש. פרטים נוספים זמינים בהגדרה של סוג החשבון.
- פרופיל: בפרופיל יש נתוני אפליקציות נפרדים, אבל יש בו שיתוף של חלק מההגדרות ברמת המערכת (לדוגמה, Wi-Fi ו-Bluetooth). פרופיל הוא קבוצת משנה של המשתמש, והוא קשור לקיום שלו. לכל משתמש יכולים להיות כמה פרופילים. הפרופילים נוצרים דרך אפליקציית ניהול המכשיר. לכל פרופיל יש תמיד שיוך בלתי ניתן לשינוי למשתמש הורה, שמוגדר על ידי המשתמש שיצר את הפרופיל. הפרופילים לא קיימים מעבר לזמן החיים של המשתמש שיצר אותם.
- אפליקציה: הנתונים של אפליקציה נמצאים בכל משתמש משויך. נתוני האפליקציה מופרדים מאפליקציות אחרות באותו משתמש. אפליקציות באותו משתמש יכולות ליצור אינטראקציה זו עם זו באמצעות IPC. למידע נוסף, קראו את המאמר Android לארגונים.
קטגוריות של משתמשים
ניהול מכשירי Android מתבסס על הקטגוריות הבאות של משתמשים.
- משתמש מערכת: המשתמש הראשון שנוסף למכשיר. אי אפשר להסיר את משתמש המערכת אלא על ידי איפוס להגדרות המקוריות, והוא תמיד פועל גם כשמשתמשים אחרים נמצאים בחזית. למשתמש הזה יש גם הרשאות והגדרות מיוחדות שרק הוא יכול להגדיר.
- משתמש מערכת ללא גוף: המשתמש הראשון שנוסף למכשיר אם המכשיר מוגדר לפעול במצב של משתמש מערכת ללא גוף (על ידי הגדרת
ro.fw.mu.headless_system_user=true
). משתמש המערכת ללא גוף תמיד פועל ברקע, ולכן במכשירים כאלה נדרשים משתמשים נוספים בחזית כדי לאפשר אינטראקציה של משתמשים. - משתמש משני: כל משתמש שנוסף למכשיר מלבד משתמש המערכת. אפשר להסיר משתמשים משניים (על ידיהם או על ידי משתמש אדמין) והם לא יכולים להשפיע על משתמשים אחרים במכשיר. המשתמשים האלה יכולים להפעיל את האפליקציות ברקע ולהמשיך להתחבר לרשת.
- משתמש אורח: משתמש משני זמני. למשתמשים אורחים יש אפשרות מפורשת למחוק במהירות את חשבון האורח כשהצורך בו פג. יכול להיות רק משתמש אורח אחד בכל פעם.
- משתמש אדמין: משתמש שיש לו הרשאה ליצור ולהסיר משתמשים אחרים, וגם לשלוט בהגדרות כלליות מסוימות של משתמשים מרובים. כברירת מחדל, רק משתמש המערכת הוא אדמין.
קטגוריות של פרופילים
ב-Android נעשה שימוש בקטגוריות הפרופיל הבאות:
- פרופיל מנוהל: פרופיל שנוצר על ידי אפליקציה כדי להכיל אפליקציות ונתונים של העבודה. הבעלים של הפרופיל (האפליקציה שיצרה את פרופיל הארגון) מנהלים אותם באופן בלעדי. המשתמש ההורה והפרופיל הארגוני משתפים את מרכז האפליקציות, ההתראות והמשימות האחרונות.
- פרופיל מוגבל: החשבונות מבוססים על חשבון ההורה, שיכול לקבוע אילו אפליקציות יהיו זמינות בפרופיל המוגבל. האפשרות זמינה רק בטאבלטים ובטלוויזיות.
- פרופיל עותקים: Android תומך ביצירה של סוג משתמש נפרד בפרופיל עותקים, כדי לאפשר הפעלה של שתי מכונות של אפליקציה אחת במכשיר. ב-AOSP אין תמיכה מקצה לקצה בתכונה הזו. יצרני ציוד מקורי צריכים להוסיף התאמות אישיות כדי לספק את התכונה המלאה למשתמשים ב-Android.
- פרופיל פרטי: זהו מרחב בתוך ארגז חול נפרד משאר המכשיר, שאפשר לנעול בנפרד מהמשתמש הראשי. פרופיל פרטי יכול להתקיים רק למשתמש הראשי. כשהפרופיל הפרטי לא נעול, האפליקציות גלויות בהגדרות, בקובץ לשיתוף, בכלי לבחירת תמונות ובממשק המשתמש של Docs, אבל הן מוסתרות כשהפרופיל נעול. הפרופיל הפרטי יכול להתקיים באותו מכשיר לצד פרופיל העבודה ופרופיל העותק.
סוגי משתמשים
ב-Android 11, הסיווג של המשתמשים והפרופילים שצוין למעלה פורסם כסוגים של משתמשים מוגדרים היטב, שמייצגים את כל הסוגים השונים של משתמשים ופרופילים שמותרים בתכונה 'שימוש בכמה משתמשים' ב-Android.
סוגי המשתמשים המוגדרים מראש ב-AOSP מוגדרים בקובץ frameworks/base/core/java/android/os/UserManager.java
, וכוללת כרגע את:
android.os.usertype.full.SYSTEM
android.os.usertype.full.SECONDARY
android.os.usertype.full.GUEST
android.os.usertype.full.DEMO
android.os.usertype.full.RESTRICTED
android.os.usertype.profile.MANAGED
android.os.usertype.system.HEADLESS
android.os.usertype.profile.CLONE
android.os.usertype.profile.PRIVATE
יצרני ציוד מקורי יכולים להגדיר את סוגי המשתמשים האלה על ידי שכבת-על של הקובץ frameworks/base/core/res/res/xml/config_user_types.xml
.
כך אפשר לשנות את הגדרות ברירת המחדל של כל סוג משתמש, כולל המגבלות, הסמלים, התגים ומספר המשתמשים המקסימלי המותרים כברירת מחדל.
בנוסף לסוגים של משתמשי AOSP שניתן להגדיר, יצרני ציוד מקורי יכולים להגדיר סוגים חדשים של פרופילים באמצעות הקובץ frameworks/base/core/res/res/xml/config_user_types.xml
.
כך יצרני ציוד מקורי יכולים להציג סוגים משלהם של פרופילים לא מנוהלים, אם הם רוצים.
עם זאת, יצרני הציוד המקורי אחראים לבצע שינויים בפלטפורמה לפי הצורך כדי לתמוך בשינויים, כולל שינוי הקוד שבודק אם יש פרופילים מנוהלים כך שיטפל עכשיו בסוג הפרופיל החדש, אם רלוונטי.
הפעלת התכונה 'שימוש בכמה משתמשים'
התכונה של מספר משתמשים מושבתת כברירת מחדל. כדי להפעיל את התכונה, יצרני המכשירים צריכים להגדיר שכבת-על של משאבים שתחליף את הערכים הבאים ב-frameworks/base/core/res/res/values/config.xml
:
<!-- Maximum number of supported users --> <integer name="config_multiuserMaximumUsers">1</integer> <!-- Whether Multiuser UI should be shown --> <bool name="config_enableMultiUserUI">false</bool>
כדי להחיל את שכבת-העל הזו ולהפעיל משתמשים אורחים ומשתמשים משניים במכשיר, משתמשים בתכונה DEVICE_PACKAGE_OVERLAYS
של מערכת ה-build של Android כדי להחליף את הערכים של:
config_multiuserMaximumUsers
עם ערך גדול מ-1
config_enableMultiUserUI
עםtrue
יצרני המכשירים יכולים לקבוע את המספר המקסימלי של משתמשים. אם יצרני המכשירים או גורמים אחרים שינו את ההגדרות, הם צריכים לוודא שה-SMS והטלפוניה פועלים כפי שהוגדר במסמך ההגדרה של תאימות ל-Android (CDD).
ניהול של כמה משתמשים
ניהול המשתמשים והפרופילים (למעט פרופילים מוגבלים) מתבצע על ידי אפליקציות שמפעילות באופן פרוגרמטי את ה-API בכיתה DevicePolicyManager
כדי להגביל את השימוש.
ארגונים יכולים להשתמש במשתמשים ובפרופילים כדי לנהל את משך החיים ואת ההיקף של האפליקציות והנתונים במכשירים, באמצעות הסוגים שמפורטים למעלה בשילוב עם ממשקי ה-API של DevicePolicyManager ו-UserManager כדי ליצור פתרונות ייחודיים שמותאמים לתרחישי השימוש שלהם.
התנהגות המערכת במצב של כמה משתמשים
כשמשתמשים נוספים למכשיר, חלק מהפונקציונליות מוגבלת כשמשתמש אחר נמצא בחזית. מכיוון שנתוני האפליקציות מופרדים לפי משתמש, המצב של האפליקציות האלה משתנה בהתאם למשתמש. לדוגמה, אימייל שנשלח לחשבון של משתמש שלא נמצא כרגע במוקד לא יהיה זמין עד שהמשתמש והחשבון שלו יהיו פעילים במכשיר.
הערה: כדי להפעיל או להשבית את התכונות של הטלפון וה-SMS למשתמש משני, עוברים אל הגדרות > משתמשים, בוחרים את המשתמש ומעבירים את המתג שליד ההגדרה הפעלת שיחות טלפון והודעות SMS למצב מושבת.
יש מגבלות מסוימות כשמשתמש משני נמצא ברקע. לדוגמה, משתמש המשנה ברקע לא יכול להציג את ממשק המשתמש או להפעיל את שירותי ה-Bluetooth. בנוסף, תהליך המערכת משהה משתמשים משניים ברקע אם המכשיר זקוק לזיכרון נוסף לפעולות של המשתמש בחזית.
כשמשתמשים במספר משתמשים במכשיר Android, חשוב לזכור את ההתנהגות הבאה:
- ההתראות מופיעות לכל החשבונות של משתמש יחיד בו-זמנית.
- ההתראות למשתמשים אחרים לא מופיעות עד שהן פעילות.
- לכל משתמש יש סביבת עבודה שבה הוא יכול להתקין אפליקציות ולמקם אותן.
- לאף משתמש אין גישה לנתוני האפליקציה של משתמש אחר.
- כל משתמש יכול להשפיע על האפליקציות המותקנות של כל המשתמשים.
- משתמש עם הרשאת אדמין יכול להסיר אפליקציות או אפילו את כל סביבת העבודה שנוצרה על ידי משתמשים משניים.
- כברירת מחדל, מידע מסשן של משתמש אורח לא נשמר כשמסיימים את מצב האורח.
אם רוצים שהמידע מסשן של משתמש אורח יישמר, צריך ליצור קובץ שכבת-על של משאבים שמגדיר את
config_guestUserAllowEphemeralStateChange
לערךfalse
. למידע נוסף על יצירת קובצי שכבת-על, תוכלו לעיין במאמר התאמה אישית של ה-build באמצעות שכבות-על של משאבים.
Android Automotive למספר משתמשים
Android Automotive מסתמך על ההטמעה של Android למספר משתמשים כדי לספק חוויית שימוש במכשיר משותף.
סוגי משתמשים בתחום הרכב
בנוסף לסוגים של המשתמשים שצוינו למעלה, גרסאות build לכלי רכב מתאימות לסוגי המשתמשים הבאים:
- משתמש במערכת ללא ממשק משתמש (headless). משתמש המערכת מארח את כל שירותי המערכת.
כדי לתמוך במספר משתמשים ב-Automotive, משתמש המערכת צריך להיות גם ללא צג.
יש רק משתמש אחד ללא ממשק משתמש. משתמש במערכת ללא ממשק משתמש:
- האפליקציה חייבת לפעול תמיד ברקע.
- המשתמש לא יכול להסיר או לגשת אליהם ישירות, מלבד במקרה של הקצאת מכשיר. לדוגמה, משתמשים לא יכולים לעבור לסוג המשתמש הזה כדי לבצע משימות כמו הורדת אפליקציות או הוספת חשבונות.
- ניתן למחוק אותם רק על ידי איפוס להגדרות המקוריות.
- משתמשים קבועים. זהה למשתמשים משניים שמתוארים למעלה, מלבד העובדה שמשתמשים משניים:
- לא לפעול ברקע (אחרי שהשימוש בה הופסק).
- אפשר ליצור אותם ישירות דרך ממשק המשתמש.
- יש נתוני אפליקציה נפרדים, אבל יש שיתוף של חלק מההגדרות ברמת המערכת. לדוגמה, Wi-Fi ו-Bluetooth.
נקודות שצריך לשים לב אליהן:
ההחרגות הבאות חלות על משתמשי מערכת ללא ממשק משתמש ועל משתמשים רגילים (משניים) ב-Automotive:
- משתמש המערכת ללא ממשק משתמש לא תומך בפרופילים של עבודה.
- כברירת מחדל, למשתמשים רגילים (משניים) יש גישה מלאה לשיחות טלפון ולהודעות טקסט.
- כברירת מחדל, משתמשים רגילים (משתמשים משניים) לא פועלים ברקע.
הפעלת המשתמש ללא ממשק משתמש של המערכת
החל מגרסה 10 של Android, אפשר להשתמש בתכונה 'שימוש בכמה משתמשים' בתרחישי שימוש ברכב. ההבדלים החשובים כוללים:
- משתמש המערכת הוא ללא ממשק משתמש (headless) ופועל רק ברקע.
- משתמשים אנושיים לא מבצעים אינטראקציה עם משתמש המערכת.
כדי להפעיל את המשתמש באפליקציית המערכת ללא ממשק גרפי, יצרני המכשירים צריכים להפעיל את התכונה 'מספר משתמשים' כפי שמתואר למעלה.
כשהמשתמש ללא ממשק משתמש מופעל:- כדי להצהיר שהמכשיר מיועד לכלי רכב, מוסיפים את התכונה
android.hardware.type.automotive
. - מגדירים את
ro.fw.headless_system_user
לערךtrue
. - מגדירים את הערך של
config_multiuserMaximumUsers
ל-2
(או ערך גבוה יותר).
מידע נוסף זמין במאמר תמיכה בכמה משתמשים ב-Automotive.
Android Automotive למספר משתמשים במספר מסכים
ב-Android 15, משתמשים משניים מלאים (שלא המשתמש הנוכחי בחזית) יכולים להפעיל פעילויות ולקבל גישה לממשק המשתמש במסך שאליו הם משויכים. התכונה הזו מאפשרת למספר משתמשים בו-זמנית ב-Android Automotive OS לתמוך בחוויות ברכב שמספקות למספר נוסעים חוויית ממשק משתמש ייעודית במכונה אחת של Android.
כדי להפעיל את התכונה הזו, יצרני המכשירים צריכים להגדיר שכבת-על של משאבים כדי להחליף את הערך הבא ב-frameworks/base/core/res/res/values/config.xml
:
<!-- Whether the device allows full users to start in background visible on displays. Should be false for most devices, except automotive vehicle with passenger displays. Note: this flag does NOT control the Communal Profile, which is not a full user. --> <bool name="config_multiuserVisibleBackgroundUsers">false></bool>
כדי לבדוק את חוויית המשתמש של נוסעים בלבד (ללא נהג), צריך להפעיל את ההגדרה הנוספת הבאה:
<!-- Whether the device allows users to start in background visible on the default display. Should be false for all devices in production. Can be enabled only for development use in passenger-only automotive build (i.e., when Android runs in a separate system in the back seat to manage the passenger displays). When set to true, config_multiuserVisibleBackgroundUsers must also be true. --> <bool name="config_multiuserVisibleBackgroundUsersOnDefaultDisplay">false</bool>
ב-Android 15 אפשר גם להפעיל את חוויית השימוש ברכב לכמה נוסעים בתור משתמשים אורחים. כדי לאפשר שימוש בכמה משתמשי אורח לצורכי פיתוח, יצרני המכשירים צריכים להגדיר שכבת-על של משאבים שמגדירה את המספר המקסימלי של משתמשי אורח שמותר להשתמש בהם ב-frameworks/base/core/res/res/xml/config_user_types.xml
, כמו בדוגמה הבאה:
<user-types> <full-type name="android.os.usertype.full.GUEST" max-allowed='4'> <default-restrictions no_factory_reset="true" no_remove_user="true" no_modify_accounts="true" no_install_apps="true" no_install_unknown_sources="true" no_uninstall_apps="true"/> </full-type> </user-types>