7 votos

Dado que cada aplicación se ejecuta como un usuario independiente, ¿qué sucede cuando se quiere añadir una nueva cuenta de usuario?

De acuerdo con este cada aplicación en Android se ejecuta como un usuario separado a nivel de kernel, con un ID de usuario único y un ID de grupo.

Entonces, ¿qué pasa bajo el capó cuando añadir un nuevo usuario (por ejemplo, a su tablet compartida)?

17voto

Andy Brudtkuhl Puntos 1714

El ID de usuario de Linux que Android utiliza para aislar las aplicaciones entre sí no tienen nada que ver con perfiles de usuario en las tabletas de Android 4.2.

En Android, cada aplicación tiene su propio directorio para guardar datos. El sistema de identificación de usuario de Linux se usa para asegurarse de que las aplicaciones no puedan leer los datos de las demás. Pero todos estos directorios de datos están dentro de un directorio en el sistema de archivos, /data/user/0 . Digamos que el primer usuario se llama Abulurd, y que instala la aplicación Showr. Se le podría dar el ID de usuario 1004, y el directorio /data/user/0/com.shadowburst.showr .

Ahora, digamos que creas un nuevo perfil de usuario para Beatrice. Ella obtiene un nuevo directorio, /data/user/1 que empieza vacío. Cuando se conecta al dispositivo, e instala Showr, no descarga la aplicación de nuevo (porque el instalador de la aplicación de Android sabe que el archivo APK ya está en el dispositivo), pero crea un nuevo ID de usuario 1007 (por ejemplo), y un nuevo directorio /data/user/1/com.shadowburst.showr .

Android utiliza los permisos del sistema de archivos de Linux, y los diferentes ID de usuario de Linux, no sólo para asegurarse de que Abulurd's Showr no pueda leer los datos de las otras aplicaciones de Abulurd, sino también que Abulurd's Showr no pueda leer los datos de Beatrice's Showr. Las dos instancias de Showr se ejecutan en diferentes procesos, con diferentes IDs de usuario.

Si estás familiarizado con la terminología de Linux, hacer un nuevo perfil de usuario es similar a usar chroot en el dispositivo para conseguir una parte aislada del sistema de archivos para ejecutar aplicaciones.

Lo que he descrito es el proceso habitual, pero al igual que las aplicaciones pueden escribirse para compartir un directorio de datos con otras aplicaciones del mismo desarrollador (firmadas con la misma clave), Android da a las aplicaciones la oportunidad de decir que funcionan con varios usuarios. De esta manera, una aplicación puede ser escrita para tener un proceso para todos los perfiles de usuario, para permitirles compartir datos o realizar alguna función especial. La pantalla de bloqueo tiene que funcionar así, por ejemplo, porque todos los perfiles de usuario comparten una aplicación de pantalla de bloqueo, que tiene que leer la configuración de la pantalla de bloqueo de todos los usuarios.

2voto

Izzy Puntos 45544

Lo que sucede cuando se añade una nueva cuenta de usuario es que una nueva cuenta (o "Perfil de usuario"). Esto no tiene nada que ver con la gestión de usuarios/grupos en el nivel del sistema operativo. Notará que la mayoría de los how-tos (por ejemplo. este en HowToGeek ) hablan de cuentas ya que el término "usuario" sería bastante engañoso.

No soy un devoto de los Androids, así que no puedo darle una explicación técnica más profunda. Pero por lo que sé, la característica multiusuario se realiza sobre el núcleo de Linux (es decir, en Java/Dalvik). EDITAR: Dan posteó su respuesta al mismo tiempo que yo la mía, así que mira allí para los antecedentes técnicos :)

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X