Android – ¿Dónde almacenar contenido descargado, almacenamiento interno o externo?
Una serie de preguntas separadas, pero relacionadas, sobre dónde almacenar contenido descargado dentro de mi aplicación.
Tengo una aplicación que descarga contenido de un servidor central. Este contenido es a veces contenido premium, o al menos un contenido en el que el editor no quiere que se distribuya libremente. Entiendo que el almacenamiento "externo" es fácilmente accesible mientras que el almacenamiento "interno" está protegido, a menos que el teléfono esté enraizado.
- Android 4.4: ¿es válido el permiso WRITE_EXTERNAL_STORAGE en el almacenamiento externo primario / mnt / sdcard?
- Cómo obtener la ruta interna y externa de sdcard en android
- Cargar archivo en Android
- Al almacenar en caché las imágenes y los datos debe utilizar almacenamiento interno o externo?
- ¿Dónde se guarda un archivo cuando se usa openFileOutput?
Si la aplicación está instalada en el SDCARD (como el mío está configurado para ser) entonces es el almacenamiento "interno" también físicamente en el SDCARD? Por lo tanto, si mi aplicación SDCARD instalada descarga, por ejemplo, 100 MB de contenido en el almacenamiento interno, ¿de hecho termina en el SDCARD o termina en el almacenamiento físico del dispositivo?
Si la aplicación está instalada en el SDCARD y el almacenamiento "interno" con el contenido descargado se encuentra en el SDCARD, ¿se almacena físicamente en un formato abierto o se cifra? Parece que recuerdo haber leído que una aplicación almacenada en un SDCARD está encriptada. ¿Esto también se aplica al almacenamiento "interno"?
(La pregunta eliminada acerca del almacenamiento de archivos en un único directorio como Context.getDir () implica que se puede crear y mantener un sistema de directorio en el almacenamiento interno)
¿Hay un mejor enfoque?
- Escribir archivo en sdcard en android
- La imagen de la aplicación de cámara personalizada de Android no aparece en la galería hasta que reinicie mi teléfono
- ¿Hay un tamaño máximo para el almacenamiento interno de Android asignado para una aplicación?
- Android ACTION_IMAGE_CAPTURE con EXTRA_OUTPUT en la memoria interna
- / Storage / emulated / 0 obtenido de getExternalCacheDir () genera "ningún archivo o directorio" error
- Android: tomar fotos y guardarlas con un nombre personalizado en un destino personalizado mediante Intent
- Escribir objeto en el almacenamiento interno en android (Dentro del nuevo directorio)
- Formato de tarjeta SD en Android
Hizo un montón de experimentación y llegó a las siguientes conclusiones con Android 2.2 en un Motorola Droid 2:
- Cuando una aplicación se instala / se mueve a la SDCARD, entonces se almacena como un archivo .asec en el directorio oculto /.android_secure en el SDCARD. Se trata de un archivo cifrado y comprimido.
- Cuando la aplicación crea archivos de datos en el "almacenamiento interno" se almacenan en la memoria interna del dispositivo, no en el SDCARD.
- El cuadro de diálogo Configuración / Administrar aplicaciones de la aplicación tiene un valor para "Datos": es la cantidad de datos que la aplicación está utilizando dentro de su almacenamiento interno, es decir, en la memoria interna que no está en el SDCARD
- El almacenamiento externo termina en el SDACRD en el directorio / Android / data
- El borrado de los datos del cuadro de diálogo Detalles de configuración / gestión de aplicaciones limpia todo, lo que significa que la aplicación instalada necesita tener suficiente conocimiento / lógica para manejar la situación de "no datos".
Mi aplicación es una aplicación para descargar contenido. Lo que todo esto significa para mí es que:
- Hay poco valor real en el almacenamiento de mi pequeña aplicación en el SDCARD dado que la mayor parte del almacenamiento que se consumen en el teléfono estará en la memoria interna del dispositivo. Excepto por supuesto que siempre es bueno permitir que la aplicación se instale en el SDCARD.
- El paquete de instalación debe ser capaz de recuperar el contenido descargado del usuario si es borrado por el usuario.
- El concepto de almacenar un identificador de instalación único en la memoria interna funciona bien hasta que un usuario elimina los datos de la aplicación y, por lo tanto, hace que se calcule un nuevo id de instalación. Así, para poder recordar qué contenido se ha descargado en un dispositivo, se requiere una cuenta de usuario en un servidor central que el usuario crea / inicia sesión cada vez que la aplicación se inicia desde cero.
- Determinar un geopunto de otro, una distancia y un ángulo polar
- Dividir la pantalla en la tableta android