He creado un AVD utilizando
bin/avdmanager create avd -d "Nexus 5" -c 2G -n nexus_5 -k "system-images;android-29;google_apis;x86_64"
El -c 2G
se supone que crea una tarjeta sd de 2GB.
Sin embargo, cuando arranco el emulador, /sdcard
parece apuntar al almacenamiento interno en /data/media
más bien en el disco de 2GB:
$ adb shell df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 996M 604K 996M 1% /dev
tmpfs 996M 0 996M 0% /mnt
tmpfs 996M 0 996M 0% /apex
/dev/block/dm-2 2.4G 2.3G 64M 98% /
/dev/block/dm-1 124M 123M 444K 100% /vendor
/dev/block/vdc 775M 302M 473M 39% /data
/data/media 775M 302M 473M 39% /mnt/runtime/default/emulated
/dev/block/vold/public:253,80 1.9G 532M 1.4G 27% /mnt/media_rw/1400-1801
/mnt/media_rw/1400-1801 1.9G 532M 1.4G 27% /mnt/runtime/default/1400-1801
$ adb shell ls -l /sdcard /storage/self/primary /mnt/user/0/primary
lrwxrwxrwx 1 root root 19 2020-12-01 13:29 /mnt/user/0/primary -> /storage/emulated/0
lrw-r--r-- 1 root root 21 2020-07-21 03:02 /sdcard -> /storage/self/primary
lrwxrwxrwx 1 root root 19 2020-12-01 13:28 /storage/self/primary -> /mnt/user/0/primary
$ adb shell mount | grep storage/emulated
/data/media on /storage/emulated type sdcardfs (rw,nosuid,nodev,noexec,noatime,fsuid=1023,fsgid=1023,gid=1015,multiuser,mask=6,derive_gid,default_normal)
Cuando intento adb push
datos a /sdcard
esto falla porque no hay suficiente espacio disponible (en el almacenamiento interno).
¿Cómo puedo decirle al emulador que utilice la tarjeta sdcard externa en su lugar?
3 votos
Eso es lo que se espera.
/sdcard
no es físicamente una tarjeta SD externa. Es un enlace simbólico al almacenamiento compartido externo emulado primario. Ver detalles en Android.stackexchange.com/a/218469/218526 , Android.stackexchange.com/a/205494/218526 y Android.stackexchange.com/a/218338/2185260 votos
Bien, supongo que mi pregunta es: cómo puedo hacer que Android utilice el dispositivo de 2GB en lugar del más pequeño. ¿Cómo puedo configurar esto?
1 votos
Si lees las respuestas que he enlazado, tienes la respuesta a tu consulta. Android por defecto no utiliza el almacenamiento secundario externo compartido. Pero las aplicaciones pueden, si quieren.