Nach dieser jede Anwendung in Android, wird als separater Kernel-Level - Benutzer mit einer eindeutigen Benutzer - ID und Gruppen - ID.
Was passiert also unter der Haube, wenn Sie einen neuen Benutzer hinzufügen (z. B. zu Ihrem freigegebenen Tablet)?
applications
linux
tablet
kernel
multi-user
Betrachtung
quelle
quelle
Antworten:
Die Linux-Benutzer-IDs , mit denen Android Apps voneinander isoliert, stehen in keinem Zusammenhang mit Benutzerprofilen auf Android 4.2-Tablets.
In Android erhält jede App ein eigenes Verzeichnis zum Speichern von Daten. Das Linux-Benutzer-ID-System wird verwendet, um sicherzustellen, dass Apps die Daten der anderen Benutzer nicht lesen können. Alle diese Datenverzeichnisse befinden sich jedoch in einem Verzeichnis im Dateisystem
/data/user/0
. Angenommen, der erste Benutzer heißt Abulurd und installiert die App Showr. Möglicherweise wird die Benutzer-ID 1004 und das Verzeichnis angegeben/data/user/0/com.shadowburst.showr
.Angenommen, Sie erstellen ein neues Benutzerprofil für Beatrice. Sie bekommt ein neues Verzeichnis
/data/user/1
, das leer beginnt. Wenn sie sich am Gerät anmeldet und Showr installiert, wird die App nicht erneut heruntergeladen (da das Android-App-Installationsprogramm weiß, dass sich die APK-Datei bereits auf dem Gerät befindet), es wird jedoch eine neue Benutzer-ID 1007 erstellt (z. B.). und ein neues Verzeichnis/data/user/1/com.shadowburst.showr
.Android verwendet Linux-Dateisystemberechtigungen und die verschiedenen Linux-Benutzer-IDs, um nicht nur sicherzustellen, dass Abulurds Showr die Daten der anderen Apps von Abulurd nicht lesen kann, sondern auch, dass Abulurds Showr die Daten von Beatrices Showr nicht lesen kann. Die beiden Instanzen von Showr werden in unterschiedlichen Prozessen mit unterschiedlichen Benutzer-IDs ausgeführt.
Wenn Sie mit der Linux-Terminologie vertraut sind, ähnelt
chroot
das Erstellen eines neuen Benutzerprofils der Verwendung auf dem Gerät, um einen isolierten Teil des Dateisystems zum Ausführen von Apps abzurufen.Was ich beschrieben habe, ist der übliche Prozess, aber genau wie Apps geschrieben werden können, um ein Datenverzeichnis mit anderen Apps desselben Entwicklers (signiert mit demselben Schlüssel) zu teilen, bietet Android Apps die Möglichkeit, zu sagen, dass sie mit mehreren Benutzern arbeiten. Auf diese Weise kann eine App so geschrieben werden, dass sie einen Prozess für alle Benutzerprofile enthält, damit sie Daten gemeinsam nutzen oder eine spezielle Funktion ausführen können. Der Sperrbildschirm muss beispielsweise so funktionieren, weil alle Benutzerprofile eine Sperrbildschirm-App gemeinsam nutzen, die die Sperrbildschirmeinstellungen aller Benutzer lesen muss.
quelle
Wenn Sie ein neues Benutzerkonto hinzufügen, wird ein neues Konto (oder "Benutzerprofil") erstellt. Dies hat überhaupt nichts mit der Benutzer- / Gruppenverwaltung auf Betriebssystemebene zu tun. Sie werden feststellen, dass die meisten Anleitungen (z. B. diese auf HowToGeek ) über Konten sprechen , da der Begriff "Benutzer" eher irreführend wäre.
Ich bin kein Android-Entwickler, daher kann ich Ihnen keine tiefere technische Erklärung geben. Soweit ich weiß, wird die Mehrbenutzerfunktion jedoch über dem Linux-Kern (dh in Java / Dalvik) realisiert. EDIT: Dan hat seine Antwort zur gleichen Zeit wie ich gepostet , also siehe dort für den technischen Hintergrund :)
quelle