دعم العديد من المستخدمين

يدعم Android عدة مستخدمين على جهاز Android واحد عن طريق فصل حسابات المستخدمين وبيانات التطبيق. على سبيل المثال، قد يسمح الآباء لأطفالهم باستخدام الجهاز اللوحي العائلي، أو يمكن للعائلة مشاركة السيارة، أو قد يشارك فريق الاستجابة الحرجة جهازًا محمولاً للقيام بواجب عند الطلب.

المصطلح

يستخدم Android المصطلحات التالية عند وصف مستخدمي وحسابات Android.

عام

تستخدم إدارة أجهزة Android المصطلحات العامة التالية:

  • المستخدم: كل مستخدم مخصص للاستخدام من قبل شخص طبيعي مختلف. يتمتع كل مستخدم ببيانات تطبيق مميزة وبعض الإعدادات الفريدة، بالإضافة إلى واجهة مستخدم للتبديل بين المستخدمين بشكل واضح. يمكن للمستخدم التشغيل في الخلفية عندما يكون مستخدم آخر نشطًا؛ يقوم النظام بإدارة إيقاف تشغيل المستخدمين للحفاظ على الموارد عند الاقتضاء. يمكن إنشاء المستخدمين الثانويين إما مباشرة عبر واجهة المستخدم أو من تطبيق إدارة الأجهزة .
  • الحساب: الحسابات موجودة داخل المستخدم ولكن لا يتم تعريفها من قبل المستخدم، ولا يتم تعريف المستخدم أو ربطه بأي حساب معين. يحتوي المستخدمون والملفات الشخصية على حسابات فريدة خاصة بهم، ولكن ليس من الضروري أن يكون لديهم حسابات حتى يتمكنوا من العمل. تختلف قائمة الحسابات حسب المستخدم. للحصول على التفاصيل، راجع تعريف فئة الحساب .
  • الملف الشخصي: قام الملف الشخصي بفصل بيانات التطبيق ولكنه يشارك بعض الإعدادات على مستوى النظام (على سبيل المثال، Wi-Fi وBluetooth). الملف الشخصي هو مجموعة فرعية من وجود المستخدم ويرتبط به. يمكن للمستخدم أن يكون لديه ملفات تعريف متعددة. يتم إنشاء ملفات التعريف من خلال تطبيق إدارة الأجهزة . يحتوي ملف التعريف دائمًا على ارتباط غير قابل للتغيير بمستخدم أصل، يتم تحديده بواسطة المستخدم الذي قام بإنشاء ملف التعريف. الملفات الشخصية غير موجودة بعد عمر المستخدم المُنشئ.
  • التطبيق: توجد بيانات التطبيق داخل كل مستخدم مرتبط. يتم وضع الحماية لبيانات التطبيق من التطبيقات الأخرى داخل نفس المستخدم. يمكن للتطبيقات الموجودة داخل نفس المستخدم التفاعل مع بعضها البعض عبر IPC. للحصول على التفاصيل، راجع Android للمؤسسات .

فئات المستخدمين

تستخدم إدارة جهاز Android الفئات التالية من المستخدمين.

  • مستخدم النظام: تمت إضافة المستخدم الأول إلى الجهاز. لا يمكن إزالة مستخدم النظام إلا عن طريق إعادة ضبط المصنع ويتم تشغيله دائمًا حتى عندما يكون المستخدمون الآخرون في المقدمة. يتمتع هذا المستخدم أيضًا بامتيازات وإعدادات خاصة لا يمكن لأحد سواه تعيينها.
  • مستخدم النظام بلا رأس: تتم إضافة المستخدم الأول إلى الجهاز إذا تم تكوين الجهاز للتشغيل في وضع مستخدم النظام بلا رأس (عن طريق تعيين ro.fw.mu.headless_system_user=true ). يعمل مستخدم النظام بدون رأس دائمًا في الخلفية، لذا تتطلب هذه الأجهزة مستخدمين إضافيين في المقدمة لتمكين تفاعل المستخدم.
  • المستخدم الثانوي: أي مستخدم يضاف إلى الجهاز غير مستخدم النظام. يمكن إزالة المستخدمين الثانويين (إما بأنفسهم أو بواسطة مستخدم إداري) ولا يمكنهم التأثير على المستخدمين الآخرين على الجهاز. يمكن لهؤلاء المستخدمين العمل في الخلفية والاستمرار في الاتصال بالشبكة.
  • المستخدم الضيف: مستخدم ثانوي مؤقت. يتوفر للمستخدمين الضيوف خيار واضح لحذف المستخدم الضيف بسرعة عند انتهاء فائدته. يمكن أن يكون هناك مستخدم ضيف واحد فقط في كل مرة.
  • المستخدم الإداري: المستخدم الذي لديه الإذن بإنشاء وإزالة مستخدمين آخرين، بالإضافة إلى التحكم في بعض الإعدادات العامة للمستخدمين المتعددين. بشكل افتراضي، يكون مستخدم النظام فقط هو المسؤول.

فئات الملفات الشخصية

يستخدم Android الفئات التالية من الملفات الشخصية:

  • الملف الشخصي المُدار: يتم إنشاؤه بواسطة تطبيق ليحتوي على بيانات وتطبيقات العمل. تتم إدارتها حصريًا بواسطة مالك الملف الشخصي (التطبيق الذي أنشأ الملف التعريفي للشركة). تتم مشاركة المشغل والإشعارات والمهام الأخيرة بواسطة المستخدم الأصلي والملف التعريفي للشركة.
  • ملف تعريف مقيد: يستخدم حسابات تعتمد على المستخدم الأصل، الذي يمكنه التحكم في التطبيقات المتوفرة في ملف التعريف المقيد. متوفر فقط على الأجهزة اللوحية وأجهزة التلفزيون.
  • ملف تعريف النسخ: يدعم Android إنشاء نوع مستخدم منفصل لملف تعريف النسخ لتمكين تشغيل مثيلين لتطبيق واحد على الجهاز. لا يوفر AOSP دعمًا شاملاً لهذه الميزة. يحتاج مصنعو المعدات الأصلية إلى إضافة تخصيصات لتقديم الميزة الكاملة لمستخدمي Android.

أنواع المستخدمين

قام Android 11 بصياغة التصنيف أعلاه للمستخدمين والملفات الشخصية في أنواع مستخدمين محددة جيدًا، تمثل جميع الأنواع المختلفة من المستخدمين والملفات الشخصية التي تسمح بها ميزة Android Multi-user.

يتم تعريف أنواع مستخدمي 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

تتمتع شركات تصنيع المعدات الأصلية (OEMs) بالقدرة على تكوين أنواع المستخدمين هذه من خلال تراكب ملف frameworks/base/core/res/res/xml/config_user_types.xml . وهذا يسهل تغيير التكوين الافتراضي لكل نوع مستخدم، بما في ذلك القيود الافتراضية والأيقونات والشارات والحد الأقصى لعدد المستخدمين المسموح به.

بالإضافة إلى أنواع مستخدمي AOSP القابلة للتكوين، يمكن لمصنعي المعدات الأصلية تعريف أنواع ملفات تعريف جديدة باستخدام ملف frameworks/base/core/res/res/xml/config_user_types.xml . يتيح ذلك لمصنعي المعدات الأصلية تقديم أنواع ملفات التعريف غير المُدارة الخاصة بهم إذا رغبت في ذلك. ومع ذلك، تقع على عاتق الشركة المصنّعة للمعدات الأصلية (OEM) مسؤولية إجراء تعديلات على النظام الأساسي كما هو مطلوب لدعم التغييرات، بما في ذلك تعديل أي تعليمات برمجية تتحقق من ملفات التعريف المُدارة للتعامل الآن مع نوع ملف التعريف الجديد إذا كان ذلك مناسبًا.

تمكين تعدد المستخدمين

يتم تعطيل ميزة المستخدمين المتعددين بشكل افتراضي. لتمكين هذه الميزة، يجب على الشركات المصنعة للأجهزة تحديد تراكب الموارد الذي يحل محل القيم التالية في 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 لنظام بناء Android لاستبدال القيم لـ:

  • config_multiuserMaximumUsers بقيمة أكبر من 1
  • config_enableMultiUserUI مع true

قد تقرر الشركات المصنعة للأجهزة الحد الأقصى لعدد المستخدمين. إذا قامت الشركات المصنعة للأجهزة أو غيرها بتعديل الإعدادات، فيجب عليها التأكد من عمل الرسائل القصيرة والهاتفية كما هو محدد في مستند تعريف توافق Android (CDD).

إدارة العديد من المستخدمين

يتم تنفيذ إدارة المستخدمين وملفات التعريف (باستثناء ملفات التعريف المقيدة) بواسطة التطبيقات التي تستدعي واجهة برمجة التطبيقات (API) برمجيًا في فئة DevicePolicyManager لتقييد الاستخدام.

يجوز للمؤسسات توظيف مستخدمين وملفات تعريف لإدارة عمر التطبيقات والبيانات الموجودة على الأجهزة ونطاقها، وذلك باستخدام الأنواع الموضحة أعلاه جنبًا إلى جنب مع DevicePolicyManager وواجهات برمجة التطبيقات UserManager لبناء حلول فريدة مصممة خصيصًا لحالات الاستخدام الخاصة بهم.

سلوك النظام متعدد المستخدمين

عند إضافة مستخدمين إلى جهاز، يتم تقليص بعض الوظائف عندما يكون مستخدم آخر في المقدمة. نظرًا لأن بيانات التطبيق يتم فصلها حسب المستخدم، فإن حالة تلك التطبيقات تختلف حسب المستخدم. على سبيل المثال، لن يكون البريد الإلكتروني المخصص لحساب مستخدم ليس محل التركيز حاليًا متاحًا حتى يتم تنشيط هذا المستخدم والحساب على الجهاز.

ملاحظة : لتمكين أو تعطيل وظائف الهاتف والرسائل النصية القصيرة لمستخدم ثانوي، انتقل إلى الإعدادات > المستخدمون ، وحدد المستخدم، وقم بتبديل إعداد السماح بالمكالمات الهاتفية والرسائل النصية القصيرة إلى إيقاف التشغيل.

توجد بعض القيود عندما يكون مستخدم ثانوي في الخلفية. على سبيل المثال، لا يمكن للمستخدم الثانوي في الخلفية عرض واجهة المستخدم أو تنشيط خدمات Bluetooth. بالإضافة إلى ذلك، ستوقف عملية النظام المستخدمين الثانويين في الخلفية إذا كان الجهاز يحتاج إلى ذاكرة إضافية للعمليات في المستخدم الأمامي.

عند توظيف عدة مستخدمين على جهاز Android، ضع السلوك التالي في الاعتبار:

  • تظهر الإشعارات لجميع حسابات مستخدم واحد مرة واحدة.
  • لا تظهر إشعارات المستخدمين الآخرين حتى يتم تنشيطها.
  • يحصل كل مستخدم على مساحة عمل لتثبيت التطبيقات ووضعها.
  • لا يمكن لأي مستخدم الوصول إلى بيانات التطبيق الخاصة بمستخدم آخر.
  • يمكن لأي مستخدم التأثير على التطبيقات المثبتة لجميع المستخدمين.
  • يمكن للمستخدم الإداري إزالة التطبيقات أو حتى مساحة العمل بأكملها التي أنشأها المستخدمون الثانويون.
  • افتراضيًا، لا تستمر المعلومات الواردة من جلسة المستخدم الضيف عند الخروج من وضع الضيف. إذا كنت تريد استمرار المعلومات من جلسة المستخدم الضيف، فيجب عليك إنشاء ملف تراكب الموارد الذي يقوم بتعيين config_guestUserAllowEphemeralStateChange على false . لمزيد من المعلومات حول إنشاء ملفات التراكب، راجع تخصيص الإصدار باستخدام تراكبات الموارد .

أندرويد للسيارات متعدد المستخدمين

يعتمد Android Automotive على تطبيق Android متعدد المستخدمين لتوفير تجربة جهاز مشتركة.

أنواع مستخدمي السيارات

بالإضافة إلى أنواع المستخدمين المذكورة أعلاه، تتميز إصدارات السيارات بالأنواع التالية من المستخدمين:

  • مستخدم النظام بلا رأس. يستضيف مستخدم النظام جميع خدمات النظام. لدعم عدة مستخدمين على السيارات، يجب أن يكون مستخدم النظام أيضًا بلا رأس . لا يوجد سوى مستخدم واحد مقطوع الرأس. مستخدم النظام بلا رأس:
    • يجب أن تعمل دائما في الخلفية.
    • لا يمكن للمستخدم إزالته أو الوصول إليه مباشرة إلا في حالة توفير الجهاز. على سبيل المثال، لا يمكن للمستخدمين التبديل إلى نوع المستخدم هذا لأداء مهام مثل تنزيل التطبيقات أو إضافة حسابات.
    • لا يمكن مسحها إلا عن طريق إعادة ضبط المصنع.
  • المستخدمين العاديين. نفس المستخدمين الثانويين ، الموصوفين أعلاه، باستثناء المستخدمين الثانويين:
    • لا تعمل في الخلفية (بعد أن تم تبديلك منها).
    • يمكن إنشاؤها مباشرة من خلال واجهة المستخدم.
    • قم بفصل بيانات التطبيق مع مشاركة بعض الإعدادات على مستوى النظام. على سبيل المثال، واي فاي وبلوتوث.

تحفظات

تنطبق الاستثناءات التالية على مستخدمي النظام بدون رأس والمستخدمين العاديين (الثانويين) في السيارات:

  • لا يدعم مستخدم النظام بدون رأس الملفات الشخصية للعمل.
  • افتراضيًا، يتمتع المستخدمون العاديون (الثانويون) بإمكانية الوصول الكامل إلى المكالمات الهاتفية والرسائل النصية.
  • افتراضيًا، لا يعمل المستخدمون العاديون (الثانويون) في الخلفية.

تمكين مستخدم النظام مقطوعة الرأس

اعتبارًا من نظام التشغيل Android 10، يمكن استخدام ميزة تعدد المستخدمين في حالات استخدام السيارات. تشمل الفروق المهمة ما يلي:

  • مستخدم النظام مقطوع الرأس ويعمل فقط في الخلفية.
  • لا يتفاعل المستخدمون البشريون مع مستخدم النظام.

لتمكين مستخدم النظام بدون رأس، يجب على الشركات المصنعة للأجهزة تمكين المستخدمين المتعددين كما هو موضح أعلاه.

عند تمكين المستخدم بدون رأس:
  1. للإعلان عن أن الجهاز خاص بالسيارات، قم بإضافة الميزة android.hardware.type.automotive .
  2. اضبط ro.fw.headless_system_user على true .
  3. قم بتعيين قيمة config_multiuserMaximumUsers على 2 (أو أعلى).

لمزيد من المعلومات، راجع دعم المستخدمين المتعددين في السيارات.

Android Automotive متعدد المستخدمين على شاشات متعددة

تتيح ميزة تجريبية جديدة في Android 14 للمستخدمين الثانويين الكاملين (الذين ليسوا المستخدم الأمامي الحالي) إطلاق الأنشطة والوصول إلى واجهة المستخدم على الشاشة التي تم تخصيصهم لها. تتيح هذه الميزة للعديد من المستخدمين المتزامنين في نظام التشغيل Android Automotive دعم التجارب داخل السيارة التي توفر للعديد من الركاب تجربة واجهة مستخدم مخصصة في مثيل Android واحد.

لتمكين هذه الميزة لاستخدام التطوير، يجب على الشركات المصنعة للأجهزة تحديد تراكب الموارد لاستبدال القيمة التالية في frameworks/base/core/res/res/values/config.xml :

<!-- Whether the device allows users to start in background visible on displays.
    Should be false for all devices in production. Can be enabled only for development use
    in automotive vehicles with passenger displays. -->

<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 14، يمكنك تمكين التجربة داخل السيارة لعدة ركاب كمستخدمين ضيوف. لتمكين العديد من المستخدمين الضيوف لاستخدام التطوير، يجب على الشركات المصنعة للأجهزة تحديد تراكب الموارد الذي يقوم بتكوين الحد الأقصى لعدد المستخدمين الضيوف المسموح به في 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>