Ya leí que /sdcard/
es un enlace simbólico al camino real de /storage/emulated/0/
.
Soy un desarrollador de aplicaciones de Android que utiliza Apache Cordova, donde cordova.file.externalRootDirectory
es de hecho file:///storage/emulated/0/
.
¿Siempre es totalmente confiable guardar algunos archivos internos de la aplicación en /storage/emulated/0/path/to/app
, considerando que el usuario podría no tener una tarjeta de memoria externa en su teléfono?
1 votos
En cuanto al título de la pregunta, la respuesta es "No": emulado no es físico pero lo que a veces se llama la "tarjeta SD interna". El físico generalmente aparece en
/storage
por su etiqueta, por ejemplo/storage/DF8C-A1B1
. Además,emulado/0/
es lo que aparece en/sdcard
si el propietario del dispositivo está "conectado". Si hay otras cuentas, su "tarjeta SD interna" aparece comoemulado/1/
y así sucesivamente.1 votos
@Izzy las tarjetas SD externas también se emulan utilizando FUSE/
sdcardfs
de la misma manera que/data/media
. Además,/sdcard
(/storage/emulated/0
) puede apuntar a una tarjeta SD externa físicamente en al menos dos situaciones: 1) El usuario formateó la tarjeta SD como almacenamiento Adoptable y migró todos los datos a ella. 2) En un dispositivo con configuración de almacenamiento primario físico solo (que no es muy común).1 votos
@IrfanLatif nunca había oído hablar de eso, ¡gracias por la indicación! Pero si lees la página detrás del enlace, no dice una palabra sobre "emulado" para este caso raro – pero dice para todos los demás: "El almacenamiento compartido principal (/sdcard) se emula en la parte superior del almacenamiento interno." Y eso no es la "tarjeta física" – especialmente no con el Nexus 6 siendo nombrado como ejemplo (excepto por el Nexus 1, ningún Nexus tiene una ranura para tarjetas SD). Puede que tengas un punto con el almacenamiento adoptable, aunque, el cual nunca he usado (¿por qué debería; eso es solo un último recurso de emergencia de todos modos).
1 votos
@Izzy Las tarjetas SD siempre se emulan, ya sea que se utilicen como Almacenamiento Portátil o Almacenamiento Adoptable o con la configuración Physical Primary Only. Las aplicaciones nunca acceden directamente al sistema de archivos subyacente en el almacenamiento compartido. Y tampoco he utilizado ningún dispositivo con la configuración Physical Primary Only, ni he usado nunca almacenamiento Adoptable excepto para realizar experimentos. Pero desde la perspectiva de un desarrollador, todas las situaciones posibles deben ser consideradas.