Mendukung banyak pengguna

Android mendukung beberapa pengguna di satu perangkat Android dengan memisahkan pengguna akun dan data aplikasi. Misalnya, orang tua dapat mengizinkan anak-anak mereka untuk menggunakan tablet keluarga, keluarga dapat berbagi mobil, atau tim tanggap kritis dapat berbagi perangkat seluler untuk tugas {i>on-call duty<i}.

Terminologi

Android menggunakan istilah berikut saat menjelaskan pengguna dan akun Android.

Umum

Pengelolaan perangkat Android menggunakan istilah umum berikut:

  • Pengguna: Setiap pengguna dimaksudkan untuk digunakan oleh perangkat fisik yang berbeda seseorang. Setiap pengguna memiliki data aplikasi yang berbeda dan beberapa pengaturan unik, seperti serta antarmuka pengguna untuk beralih antar pengguna secara eksplisit. Pengguna dapat menjalankan latar belakang saat pengguna lain aktif; sistem mengelola mematikan pengguna untuk menghemat sumber daya jika diperlukan. Pengguna sekunder dapat dibuat baik secara langsung melalui antarmuka pengguna atau dari Perangkat Administrasi.
  • Akun: Akun berada di dalam pengguna tetapi tidak ditetapkan oleh pengguna, maupun pengguna yang didefinisikan oleh atau ditautkan ke akun tertentu. Pengguna dan profil berisi akun unik mereka sendiri, tetapi tidak harus memiliki akun berfungsi. Daftar akun berbeda-beda untuk setiap pengguna. Untuk mengetahui detailnya, lihat Akun class tersebut.
  • Profil: Profil telah memisahkan data aplikasi, tetapi membagikan beberapa setelan seluruh sistem (misalnya, Wi-Fi dan Bluetooth). Profil adalah subset dan terikat dengan eksistensi pengguna. Pengguna dapat memiliki beberapa profil. Profil dibuat melalui Perangkat Administrasi. Profil selalu memiliki pengaitan yang tidak dapat diubah ke pengguna induk, yang ditentukan oleh pengguna yang membuat profil. Profil tidak ada di luar masa pakai pengguna yang membuatnya.
  • Aplikasi: Data aplikasi ada dalam setiap pengguna terkait. Data aplikasi akan di-sandbox dari aplikasi lain dalam pengguna yang sama. Aplikasi dalam pengguna yang sama dapat berinteraksi satu sama lain melalui IPC. Untuk mengetahui detailnya, lihat ke Android untuk perusahaan.

Kategori pengguna

Administrasi perangkat Android menggunakan kategori pengguna berikut.

  • Pengguna sistem: Pengguna pertama yang ditambahkan ke perangkat. Pengguna sistem tidak dapat dihapus kecuali dengan pengaturan ulang pabrik dan selalu berjalan bahkan ketika pengguna lain ada di latar depan. Pengguna ini juga memiliki hak istimewa khusus dan pengaturan yang hanya dapat diatur oleh perusahaan itu.
  • Pengguna sistem headless: Pengguna pertama yang ditambahkan ke perangkat jika perangkat dikonfigurasi untuk berjalan dalam mode pengguna sistem headless (dengan menyetel ro.fw.mu.headless_system_user=true). Pengguna sistem headless selalu berjalan di latar belakang, sehingga perangkat tersebut memerlukan pengguna latar depan untuk memungkinkan interaksi pengguna.
  • Pengguna sekunder: Setiap pengguna yang ditambahkan ke perangkat selain sistem . Pengguna sekunder dapat dihapus (baik oleh mereka sendiri maupun oleh admin (pengguna) dan tidak dapat memengaruhi pengguna lain di perangkat. Para pengguna ini dapat berjalan di latar belakang dan tetap memiliki konektivitas jaringan.
  • Pengguna tamu: Pengguna sekunder sementara. Pengguna tamu memiliki opsi untuk menghapus pengguna tamu dengan cepat saat kegunaannya berakhir. Ada dapat hanya satu pengguna tamu pada satu waktu.
  • Pengguna admin: Pengguna yang memiliki izin untuk membuat dan menghapus pengguna lain, serta mengontrol beberapa pengaturan multi-pengguna umum. Secara default, hanya pengguna sistem yang menjadi admin.

Kategori profil

Android menggunakan kategori profil berikut:

  • Profil terkelola: Dibuat oleh aplikasi untuk memuat data pekerjaan dan aplikasi. Profil tersebut dikelola secara eksklusif oleh pemilik profil (aplikasi yang membuat profil perusahaan). Peluncur, notifikasi, dan tugas terbaru adalah yang dibagikan oleh pengguna induk dan profil perusahaan.
  • Profil yang dibatasi: Menggunakan akun berdasarkan pengguna induk, yang dapat mengontrol aplikasi apa yang tersedia di profil yang dibatasi. Hanya tersedia di tablet dan perangkat televisi.
  • Profil clone: Android mendukung pembuatan pengguna profil clone terpisah agar dua instance dari satu aplikasi dapat berjalan pada perangkat. AOSP tidak menyediakan dukungan menyeluruh untuk fitur tersebut. OEM perlu menambahkan penyesuaian untuk menghadirkan aplikasi untuk pengguna Android.
  • Profil pribadi: Ini adalah ruang dalam sandbox yang terpisah dari perangkat lainnya, yang dapat dikunci secara terpisah dari pengguna utama. Profil pribadi hanya boleh tersedia untuk pengguna utama. Saat profil pribadi tidak terkunci, aplikasi akan terlihat di setelan, ShareSheet, Pemilih foto, dan DocsUI akan tetapi aplikasi disembunyikan saat terkunci. Profil pribadi dapat berada di perangkat yang sama bersama dengan profil kerja dan clone profil.

Jenis pengguna

Android 11 telah merumuskan klasifikasi pengguna dan profil di atas menjadi teks yang jelas jenis pengguna, merepresentasikan semua tipe pengguna dan profil yang diperbolehkan oleh Multi-pengguna Android aplikasi baru.

Tipe pengguna AOSP yang telah ditentukan didefinisikan dalam frameworks/base/core/java/android/os/UserManager.java dan saat ini mencakup:

  • 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

OEM memiliki kemampuan untuk mengonfigurasi jenis pengguna ini dengan menempatkan File frameworks/base/core/res/res/xml/config_user_types.xml. Ini memfasilitasi perubahan konfigurasi {i>default<i} untuk setiap tipe pengguna, termasuk batasan defaultnya, ikon, badge, dan jumlah pengguna maksimum yang diizinkan.

Selain jenis pengguna AOSP yang dapat dikonfigurasi, OEM dapat menentukan jenis profil baru menggunakan File frameworks/base/core/res/res/xml/config_user_types.xml. Hal ini memungkinkan OEM memperkenalkan jenis profil mereka sendiri yang tidak dikelola jika diinginkan. Namun, OEM bertanggung jawab untuk membuat modifikasi platform sesuai kebutuhan untuk mendukung perubahan, termasuk memodifikasi kode yang memeriksa profil terkelola untuk kini menangani profil baru jika perlu.

Mengaktifkan multi-pengguna

Fitur multi-pengguna dinonaktifkan secara default. Kepada mengaktifkan fitur tersebut, produsen perangkat harus menentukan overlay resource nilai berikut di 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>

Untuk menerapkan overlay ini serta mengaktifkan pengguna tamu dan sekunder di perangkat, gunakan fitur DEVICE_PACKAGE_OVERLAYS dalam sistem build Android untuk menggantikan nilai untuk:

  • config_multiuserMaximumUsers dengan nilai yang lebih besar dari 1
  • config_enableMultiUserUI dengan true

Produsen perangkat dapat menentukan jumlah pengguna maksimum. Jika perangkat produsen atau pihak lain telah mengubah setelan, mereka harus memastikan SMS dan telepon seperti yang didefinisikan dalam Kompatibilitas Android Definition Document (CDD).

Mengelola banyak pengguna

Pengelolaan pengguna dan profil (kecuali profil yang dibatasi) dijalankan oleh aplikasi yang secara terprogram memanggil API dalam DevicePolicyManager untuk membatasi penggunaan.

Perusahaan dapat mempekerjakan pengguna dan profil untuk mengelola masa aktif dan cakupan aplikasi serta data di perangkat, menggunakan jenis yang diuraikan di atas dalam bersama dengan DeviceSwitch dan UserManager API untuk membangun solusi unik yang disesuaikan dengan kasus penggunaannya.

Perilaku sistem multi-pengguna

Saat pengguna ditambahkan ke perangkat, beberapa fungsi akan dibatasi saat ada pengguna lain di latar depan. Karena data aplikasi dipisahkan oleh pengguna, aplikasi tersebut berbeda-beda untuk setiap pengguna. Misalnya, email yang ditujukan untuk sebuah akun pengguna yang saat ini tidak menjadi fokus tidak akan tersedia hingga pengguna dan akun tersebut yang aktif di perangkat.

Catatan: Untuk mengaktifkan atau menonaktifkan telepon dan SMS fungsi untuk pengguna sekunder, buka Setelan > Pengguna, pilih dan nonaktifkan setelan Izinkan panggilan telepon dan SMS.

Beberapa batasan dibuat saat pengguna sekunder berada di latar belakang. Contohnya, pengguna sekunder di latar belakang tidak dapat menampilkan antarmuka pengguna Layanan Bluetooth aktif. Selain itu, proses sistem akan menghentikan penggunaan sistem jika perangkat membutuhkan memori tambahan untuk operasi di pengguna latar depan.

Saat menggunakan beberapa pengguna di perangkat Android, pertahankan hal berikut perilaku model mempertimbangkan:

  • Notifikasi muncul untuk semua akun dari satu pengguna sekaligus.
  • Notifikasi untuk pengguna lain tidak akan muncul hingga aktif.
  • Setiap pengguna mendapatkan ruang kerja untuk menginstal dan menempatkan aplikasi.
  • Tidak ada pengguna yang memiliki akses ke data aplikasi pengguna lain.
  • Setiap pengguna dapat memengaruhi aplikasi terinstal untuk semua pengguna.
  • Pengguna admin dapat menghapus aplikasi atau bahkan seluruh ruang kerja yang dibuat oleh pengguna sekunder.
  • Secara default, informasi dari sesi pengguna Tamu tidak akan dipertahankan saat keluar dari mode Tamu. Jika Anda ingin informasi dari sesi pengguna Tamu tetap ada, Anda harus membuat sumber daya file overlay yang menetapkan config_guestUserAllowEphemeralStateChange ke false. Untuk informasi lebih lanjut tentang cara membuat file overlay, lihat Menyesuaikan build dengan overlay resource.

Multi-pengguna Android Automotive

Android Automotive mengandalkan implementasi multi-pengguna Android untuk menyediakan perangkat bersama pengalaman yang lancar bagi developer.

Jenis Pengguna Otomotif

Selain jenis pengguna yang tercantum di atas, build Automotive tidak populer untuk jenis ini pengguna:

  • Pengguna sistem headless. Pengguna sistem menghosting semua layanan sistem. Untuk mendukung beberapa pengguna di Automotive, pengguna sistem juga harus menggunakan headless. Hanya ada satu pengguna headless. Pengguna sistem headless:
    • Harus selalu berjalan di latar belakang.
    • Tidak dapat dihapus atau diakses langsung oleh pengguna kecuali dalam kasus Perangkat Penyediaan. Misalnya, pengguna tidak dapat beralih ke jenis Pengguna ini untuk melakukan tugas seperti mengunduh aplikasi atau menambahkan akun.
    • Hanya dapat dihapus dengan mereset ke setelan pabrik.
  • Pengguna reguler. Sama dengan Pengguna Sekunder, yang dijelaskan di atas, kecuali pengguna sekunder pengguna:
    • Jangan jalankan di latar belakang (setelah dialihkan).
    • Dapat dibuat langsung melalui antarmuka pengguna.
    • Memiliki data aplikasi terpisah, tetapi membagikan beberapa setelan seluruh sistem. Misalnya, Wi-Fi dan Bluetooth.

Peringatan

Pengecualian berikut berlaku untuk pengguna sistem headless dan Pengguna reguler (sekunder) di Otomotif:

  • Pengguna sistem headless tidak mendukung profil kerja.
  • Secara default, pengguna reguler (sekunder) memiliki akses penuh ke panggilan telepon dan pesan teks.
  • Secara default, pengguna reguler (sekunder) tidak berjalan di latar belakang.

Mengaktifkan pengguna sistem headless

Mulai Android 10, fitur multi-pengguna dapat digunakan untuk kasus penggunaan otomotif. Penting perbedaannya meliputi:

  • Pengguna sistem adalah headless dan hanya berjalan di latar belakang.
  • Pengguna manusia tidak berinteraksi dengan pengguna sistem.

Untuk memungkinkan pengguna sistem headless, produsen perangkat harus mengaktifkan multi-pengguna seperti yang dijelaskan di atas.

Jika pengguna headless diaktifkan:
  1. Untuk mendeklarasikan perangkat sebagai Otomotif, tambahkan fitur android.hardware.type.automotive.
  2. Setel ro.fw.headless_system_user ke true.
  3. Setel nilai untuk config_multiuserMaximumUsers ke 2 (atau yang lebih tinggi).

Untuk informasi selengkapnya, lihat Dukungan Multipengguna di Otomotif.

Multi-pengguna Android Automotive di beberapa layar

Fitur eksperimental baru di Android 14 memungkinkan pengguna sekunder penuh (yang bukan pengguna latar depan saat ini) untuk meluncurkan aktivitas dan akses ke UI pada layar tempat mereka ditetapkan. Fitur ini memungkinkan beberapa pengguna serentak di Android Automotive OS untuk mendukung pengalaman dalam mobil yang menyediakan beberapa penumpang dengan pengalaman UI khusus dalam satu instance Android.

Agar fitur ini dapat digunakan untuk pengembangan, produsen perangkat harus menentukan overlay resource untuk mengganti nilai berikut di 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>

Anda dapat bereksperimen dengan pengalaman khusus penumpang (tanpa pengemudi) dengan mengaktifkan fitur berikut konfigurasi tambahan:

<!-- 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>

Di Android 14, Anda dapat mengaktifkan pengalaman dalam mobil untuk beberapa penumpang sebagai pengguna tamu. Agar beberapa pengguna tamu dapat menggunakan pengembangan, perangkat produsen harus menentukan overlay aset yang mengonfigurasi jumlah tamu maksimum yang diizinkan pengguna di frameworks/base/core/res/res/xml/config_user_types.xml, seperti contoh di bawah ini:

<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>