J'ai créé un AVD en utilisant
bin/avdmanager create avd -d "Nexus 5" -c 2G -n nexus_5 -k "system-images;android-29;google_apis;x86_64"
Le site -c 2G
est censé créer une carte SD de 2 Go.
Quand je démarre l'émulateur, cependant, /sdcard
semble pointer vers le stockage interne sur /data/media
plutôt que sur le disque de 2 Go :
$ 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)
Quand j'essaie de adb push
données à /sdcard
cela échoue car il n'y a pas assez d'espace disponible (sur le stockage interne).
Comment puis-je dire à l'émulateur d'utiliser la carte SD externe à la place ?
3 votes
C'est normal.
/sdcard
n'est pas physiquement une carte SD externe. Il s'agit d'un lien symbolique vers le stockage partagé externe émulé principal. Voir les détails dans Android.stackexchange.com/a/218469/218526 , Android.stackexchange.com/a/205494/218526 et Android.stackexchange.com/a/218338/2185260 votes
Bon, je suppose que ma question est la suivante : comment faire pour qu'Android utilise l'appareil de 2 Go au lieu du plus petit. Comment puis-je configurer cela ?
1 votes
Si vous lisez les réponses que j'ai mises en lien, vous obtiendrez la réponse à votre question. Par défaut, Android n'utilise pas de stockage partagé externe secondaire. Mais les applications peuvent le faire, si elles le souhaitent.