Diferencia entre revisiones de «Usuario:Juanda/android/filesystem»
De WikiEducator
(→Comprobación desde el terminal) |
|||
(26 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 3: | Línea 3: | ||
<div class="slides layout-regular template-default"> | <div class="slides layout-regular template-default"> | ||
<div class="slide"> | <div class="slide"> | ||
− | == | + | ==Almacenamiento en Sistemas Android== |
− | Los dispositivos Android pueden tener tres tipos de almacenamiento: RAM | + | </div> |
+ | <div class="slide"> | ||
+ | *Los dispositivos Android pueden tener tres tipos de almacenamiento: | ||
+ | :-RAM | ||
+ | :-Almecenamiento interno flash | ||
+ | :Memoria externa mediante tarjeta SD | ||
+ | *La memoria interna es el equivalente al disco duro del ordenador. | ||
+ | *La tarjeta SD, normalmente se dedica a almacenamiento tipo imágenes, vídeos y música y datos compartidos entre aplicaciones. | ||
+ | *No todos los dispositivos permiten usar tarjetas SD, crearán una partición que haga las veces. | ||
+ | </div> | ||
− | + | <div class="slide"> | |
− | + | [[Archivo:Particionesandroid.png]] | |
− | + | ==Sistemas de Ficheros== | |
+ | </div> | ||
+ | <div class="slide"> | ||
− | + | *Dependen del fabricante del movil | |
− | + | *Los más habituales son yaffs2 (Yet Another Flash File System) para /system o /data | |
− | + | */sdcard suele ser vfat | |
− | + | *Últimamente se está usando ext4 en vez de yaffs | |
− | + | </div> | |
− | + | ||
− | * | + | |
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | + | ||
− | * | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | <div class="slide"> | ||
+ | *Particiones montadas en un nexus 4: | ||
<source lang="bash"> | <source lang="bash"> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
shell@android:/ # mount | shell@android:/ # mount | ||
rootfs / rootfs ro,relatime 0 0 | rootfs / rootfs ro,relatime 0 0 | ||
Línea 89: | Línea 49: | ||
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0 | /dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0 | ||
shell@android:/ # | shell@android:/ # | ||
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Podemos utilizar comandos de Unix para ver por ejemplo la ocupación de cada partición: | ||
+ | <source lang="bash"> | ||
shell@android:/ # df | shell@android:/ # df | ||
Filesystem Size Used Free Blksize | Filesystem Size Used Free Blksize | ||
Línea 103: | Línea 68: | ||
/mnt/shell/emulated 5G 2G 3G 4096 | /mnt/shell/emulated 5G 2G 3G 4096 | ||
shell@android:/ # | shell@android:/ # | ||
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ====Android Multiusuario==== | ||
+ | *Funciona a partir de Android 4.2 y para tabletas. | ||
+ | *Cada cuenta aparece como una nueva tableta y tiene sus propias aplicaciones, imágenes... | ||
+ | *El sistema creará particiones para el almacenamiento interno de cada usuario. | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Hay algunos directorios que son enlaces a otros: | ||
+ | <source lang="bash"> | ||
+ | shell@android:/ # ls -l /etc | ||
+ | lrwxrwxrwx root root 2013-04-17 19:56 etc -> /system/etc | ||
+ | shell@android:/ # ls -l /sdcard | ||
+ | lrwxrwxrwx root root 2013-04-17 19:56 sdcard -> /storage/emulated/legacy | ||
+ | </source> | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ====Las aplicaciones==== | ||
+ | *Las aplicaciones funcionan en modo sandbox, para mantener la seguridad. Hay un usuario linux por cada aplicación instalada. | ||
+ | *Por defecto se instalan solo en la memoria interna del teléfono (limitado por defecto, si el desarrollador no lo modifica en el manifest.mxl) | ||
+ | *Aunque la aplicación se guarde en memoria externa, no se puede mover a otro terminal: ciertos datos se guardan en memoria interna con una encriptación cuya clave solo conoce el dispositivo. | ||
+ | *Cuando el usuario comparte por USB la memoria del movil, se hace un kill de cualquier aplicación que esté instalada ahí. | ||
+ | *Se instalan en los directorios /system/app y /data/app | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====Datos de las aplicaciones==== | ||
+ | *Android permite almacenar ficheros en la memoria interna del teléfono. | ||
+ | *Por defecto los ficheros almacenados solo son accesibles por la aplicación que los creó, no pueden ser leídos por otras aplicaciones, ni siquiera por el usuario del teléfono. | ||
+ | *Cada aplicación dispone de una carpeta especial para almacenar ficheros (/data/data/nombre_del_paquete/files). | ||
+ | *La ventaja de utilizar esta carpeta es que cuando se desinstala la aplicación los ficheros que has creado se eliminarán. | ||
+ | *Cuando trabajes con ficheros en Android, ten siempre en cuenta que la memoria disponible de los teléfonos móviles es limitada. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | *Hay ciertos datos comunes entre aplicaciones que se guardan en la tarjeta SD, en los siguientes directorios: | ||
+ | :Music/ | ||
+ | :Podcasts/ | ||
+ | :Ringtones/ | ||
+ | :Pictures/ | ||
+ | Movies/ | ||
+ | Download/ | ||
+ | *El objetivo es ayudar a indexar los contenidos de forma rápida. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ==Particiones habituales y directorios== | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Particiones estándar de la memoria interna: | ||
+ | :/boot | ||
+ | :/system | ||
+ | :/recovery | ||
+ | :/data | ||
+ | :/cache | ||
+ | :/misc | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | *Particiones en la tarjeta SD: | ||
+ | :/sdcard | ||
+ | :/sd-ext | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====Partición /boot==== | ||
+ | La partición de arranque se encarga de gestionar el arranque del dispositivo. En su interior encontramos el llamado bootloader y el kernel. Sin esta partición, el dispositivo sencillamente no sería capaz de iniciarse. Es muy importante saber que, si formateamos esta partición (con el ClockworkMod Recovery, por ejemplo), no debemos reiniciar el dispositivo bajo ningún concepto antes de instalar otra, ya que no volvería a iniciarse. Esto se hace cuando se va a instalar una ROM que incluye una partición /boot. Normalmente cuando vas a instalar una ROM cocinada, el desarrollador deja muy claros los pasos a seguir, y si entre ellos se encuentra formatear esta partición, será porque la ROM incluye /boot. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====Partición /system ==== | ||
+ | *La partición de sistema contiene básicamente el sistema operativo en sí (excepto el kernel, ramdisk y el bootloader). | ||
+ | *Incluye la interfaz de usuario de Android, así como las aplicaciones de sistema que vienen pre instaladas en el dispositivo. | ||
+ | *Formatear esta partición borraría Android del dispositivo, aunque podría arrancar para, por ejemplo, iniciarlo en modo bootloader o en modo recuperación para instalar una nueva ROM. | ||
+ | *Normalmente se carga en modo solo lectura y solo se puede modificar en circunstancias especiales. | ||
+ | </div> | ||
+ | |||
+ | |||
+ | <div class="slide"> | ||
+ | ====Partición /recovery==== | ||
+ | *La partición de recuperación se puede considerar como una partición alternativa a la de inicio (/boot). | ||
+ | *Permite iniciarlo en un modo especial llamado modo recuperación, el cual muestra una consola con la que realizar tareas de mantenimiento o recuperación de datos. | ||
+ | </div> | ||
+ | |||
+ | |||
+ | <div class="slide"> | ||
+ | ====Partición /data==== | ||
+ | Esta partición contiene los datos del usuario, es decir, todo lo que el usuario ha creado o modificado, por ejemplo tenemos esta lista de datos que pertenecen a esta partición: | ||
+ | Aplicaciones y widgets instalados (no las que venían pre instaladas en el dipositivo, las cuales están en la partición /system) | ||
+ | Los contactos y toda su información asociada (números de teléfono, imágenes, emails, cumpleaños, etc) | ||
+ | Información de llamadas (llamadas perdidas, entrantes y salientes) | ||
+ | Mensajes (SMS, MMS, etc) | ||
+ | Emails | ||
+ | Favoritos (o marcadores) | ||
+ | Puntos Wifi guardados | ||
+ | Fondos de pantalla | ||
+ | Datos del calendario | ||
+ | .... | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | |||
+ | ====Partición /cache==== | ||
+ | *Esta partición es en la que Android guarda datos a los que el usuario accede con frecuencia, para que la carga de estos datos sea mucho más rápida cuando sea solicitada. | ||
+ | *Normalmente no son ficheros críticos para la operación del dispositivo y se pueden limpiar de contenidos (wipe), especialmente en las actualizaciones mayores. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====Partición /misc==== | ||
+ | |||
+ | Esta partición contiene información adicional relacionada con la configuración de sistema, en forma de "interruptores" de encendido/apagado. Esta información puede incluir el CID (Carrier or Region ID - identificador del operador o región), la configuración USB o ciertos ajustes hardware. Es una partición importante que si se pierde o corrompe puede hacer que algunas características del dispositivo dejen de funcionar. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====Partición /sdcard==== | ||
+ | |||
+ | Esta partición pertenece a la tarjeta SD. Aquí es donde se guardan los datos que se quieran almacenar, como archivos multimedia, documentos, ROMs, y un largo etcétera, pero además muchas aplicaciones instaladas por el usuario guardan aquí todos los datos y configuraciones. Esta partición se puede borrar, siempre y cuando se hayan hecho copias de seguridad de los datos. | ||
+ | |||
+ | En los dispositivos que tengan una tarjeta SD interna y otra externa, como por ejemplo el Samsung Galaxy S o muchas tablets, la partición /sdcard siempre se refiere a la SD interna. Para la externa, si es que la tiene, se muestra en una partición alternativa que no es la misma en todos los dispositivos. | ||
+ | |||
+ | La partición de la tarjeta SD externa, a diferencia de la /sdcard interna, no se almacenan datos del sistema o de las aplicaciones de ningún tipo, todo el contenido ha sido introducido por el usuario, por lo que su contenido puede ser borrado sin problemas, siempre y cuando los datos se hayan guardado en el PC, o no se quieran conservar. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====Partición /sd-ext==== | ||
+ | *Partición adicional de la tarjeta SD que actúa como una extensión de la partición /data, cuando se usa con ciertas ROMS que tienen una funcionalidad especial llamada APP2SD+ o data2ext. | ||
+ | *Especialmente útil en dispositivos con una memoria interna muy pequeña. | ||
+ | *Puede usarse para instalar aplicaciones más allá de las que la memoria interna permite, siempre y cuando la ROM que se tenga instalada, tenga activada esta capacidad. | ||
+ | *Borrar esta partición será esencialmente lo mismo que borrar la partición /data, es decir, se pueden perder contactos, SMS, aplicaciones instaladas por el usuario, etc. | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ==Comandos del sistema== | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | ====Comandos en Linux==== | ||
+ | * Casí todos los comandos típos de Linux están situados en /bin y en /usr/bin: | ||
+ | <source lang="bash"> | ||
+ | juanda@juanda-PC:~$ pwd | ||
+ | /home/juanda | ||
+ | juanda@juanda-PC:~$ which ls | ||
+ | /bin/ls | ||
+ | juanda@juanda-PC:~$ which dd | ||
+ | /bin/dd | ||
+ | juanda@juanda-PC:~$ which mkdir | ||
+ | /bin/mkdir | ||
+ | juanda@juanda-PC:~$ which vi | ||
+ | /usr/bin/vi | ||
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | *Para saber que comando se va a ejecutar se utiliza el PATH: | ||
+ | <source lang="bash"> | ||
+ | juanda@juanda-PC:~$ echo $PATH | ||
+ | /usr/local/bin:/usr/bin:/bin:/usr/games:/home/juanda/Android/sdk/tools:/home/juanda/Android/sdk/platform-tools | ||
+ | juanda@juanda-PC:~$ | ||
+ | </source> | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ====Comandos en Android==== | ||
+ | *En Android todos estos binarios están situados en /system/bin. | ||
+ | *Sin embargo vemos que enlazan a toolbox: Mediante toolbox se ejecutan multiples comandos desde un binario único. | ||
+ | *Para ejecutarlo se pasan como parámetro al binario toolbox el comando y los argumentos del mismo: “toolbox ls -l /system/bin” | ||
+ | </div> | ||
+ | <div class="slide"> | ||
+ | *Otra posibilidad muy popular es [http://www.busybox.net/about.html busybox]: "The Swiss Army Knife of Embedded Linux" | ||
+ | *busybox es más pesado pero más completo: | ||
+ | <source lang="bash"> | ||
+ | shell@android:/system/bin $ ls -l busybox toolbox | ||
+ | -rwxr-xr-x root root 811432 2013-04-19 00:34 busybox | ||
+ | -rwxr-xr-x root shell 134976 2013-03-06 18:27 toolbox | ||
</source> | </source> | ||
+ | *Ahora ya podemos utilizar el vi :-) | ||
+ | </div> |
Última revisión de 12:52 15 may 2013