Android – Tiempo de vida de las diferentes opciones de almacenamiento
Android ofrece las siguientes opciones para el almacenamiento de datos:
Preferencias compartidas – Almacena datos primitivos privados en pares clave-valor.
- ¿Cómo probar el código construido para salvar / restaurar el ciclo de vida de una actividad?
- Método de clase de aplicación Android onCreate que se llama varias veces
- Ciclo de vida de la actividad de Android después de salir del sueño
- ¿Cómo funcionan los ciclos de vida de la actividad de Android en relación con la aplicación completa?
- ¿Cómo comprobar si una actividad es la última en la pila de actividades de una aplicación?
Almacenamiento interno: almacena datos privados en la memoria del dispositivo.
Almacenamiento externo : almacena los datos públicos en el almacenamiento externo compartido.
Bases de datos SQLite – Almacena datos estructurados en una base de datos privada.
Caché – Los datos del caché durante la aplicación se están ejecutando (puede ser claro en la escasez de espacio)
Lo que me estaba preguntando es el tiempo de vida de estos almacenamiento.
- Qué almacenamiento (s) se borra en el cierre de la aplicación (Obviamente caché)
- Qué almacenamiento (s) se borra en la reinstalación de la aplicación
- Qué almacenamiento (s) se borra en la actualización de la aplicación
- Qué almacenamiento (s) se borra en la aplicación desinstalar
- Qué almacenamiento (s) se borra en datos claros de la aplicación
- Qué almacenamiento (s) se borra en restablecimiento de fábrica para dispositivos móviles
- Qué almacenamiento (s) se borra en Rom actualización / cambio
Una extensión a esta pregunta es, utilizando el almacenamiento de mis datos es más seguro en términos de pérdida y en términos de acceso por recursos no autorizados (usuarios, aplicaciones en caso de root).
- OnSaveInstanceState / onPause - espera hasta que el estado se salve por completo antes de permitir que se procese el proceso
- Realizando operaciones de larga duración en onDestroy
- Qué métodos se invocan en el ciclo de vida de la actividad en los siguientes casos:
- ¿Los objetos de Scala sobreviven a que la actividad se reinicie en Android?
- Ciclo de vida de la actividad lado a lado
- Repetición inesperada de "nombre del paquete" mientras se reanudaba en '' nombre del paquete '' Error en Android
- Implementación de Android de los métodos de ciclo de vida puede llamar a la aplicación de superclase después de hacer cualquier trabajo?
- Android mantiene el estado de devolución de llamada después del cambio de configuración
Qué almacenamiento (s) se borra en el cierre de la aplicación (Obviamente caché)
Cache
Qué almacenamiento (s) se borra en la reinstalación de la aplicación
Cache
Qué almacenamiento (s) se borra en la actualización de la aplicación
Cache
Qué almacenamiento (s) se borra en la aplicación desinstalar
Cache, SQLite, Preferencias compartidas
Qué almacenamiento (s) se borra en datos claros de la aplicación
Cache, SQLite, Preferencias compartidas
Qué almacenamiento (s) se borra en restablecimiento de fábrica para dispositivos móviles
Borra todos, pero no datos de almacenamiento externo
Una extensión a esta pregunta es, utilizando el almacenamiento de mis datos es más seguro en términos de pérdida y en términos de acceso por recursos no autorizados (usuarios, aplicaciones en caso de root).
Lo mejor es almacenar los datos en el SQLite en forma cifrada. Si el dispositivo está enraizado, significa que puede acceder incluso al SQLite.
Cierre de aplicaciones: Los archivos de caché no se eliminarán después de cerrar la aplicación.
Según los documentos del androide,
When the device is low on internal storage space, Android may delete these cache files to recover space. However, you should not rely on the system to clean up these files for you. You should always maintain the cache files yourself and stay within a reasonable limit of space consumed, such as 1MB. When the user uninstalls your application, these files are removed.
Reinstalación y desinstalación de la aplicación: se eliminarán la Cache
, las Shared Preferences
, el Internal Storage
y las Databases
al desinstalar la aplicación.
Actualización de la aplicación: Generalmente, todo lo que tenías en la versión anterior se restaurará. Docs también no están claros sobre esto.
Aplicación Borrar datos: Todo, excepto el External Storage
, se eliminará de forma permanente.
Reajuste de fábrica: Al hacer un restablecimiento de fábrica se borrarán todas las aplicaciones y sus datos, excepto los preinstalados. Puedes restaurar tus aplicaciones con la cuenta de Google pero no con datos (si los datos no están respaldados con BackUp Api
.
Y para su pregunta final, NO hay almacenamiento seguro de datos si almacena datos en el dispositivo. Incluso el almacenamiento de datos externos se puede eliminar con las opciones de archivo USB. Para obtener datos seguros, debe mantener los datos de usuario en su servidor y obtenerlos bajo demanda.
Espero que estaba claro.
En respuesta a su pregunta, el almacenamiento persistente (SQL, Almacenamiento Interno \ Externo, SharedPreferences) actúa principalmente de manera predeterminada y Caché actúa de forma diferente.
Almacenamiento persistente – NO se borrará en los siguientes escenarios: 1, 2, 3 – se borrará en otros escenarios.
Interno \ Almacenamiento externo – puede sobrevivir a la eliminación de aplicaciones (si está configurado adecuadamente), por lo que tiene la posibilidad de no ser eliminado en 4 y 5, si se ocupa específicamente de esto.
Cache – se borrará en todos los escenarios (es posible que pueda acceder al caché después de cerrar la aplicación en ciertas instancias, pero no de forma fiable).
7 * (las actualizaciones de la ROM pueden retener los datos de la aplicación usando una solución de copia de seguridad, de lo contrario, actuaría igual que 6)
- Borrar la base de datos predeterminada de Android Realm
- Android GPS no funciona hasta que se reinicie en nuevos teléfonos