18 votes

Pourquoi la carte SD est-elle montée sur "/sdcard/external_sd" au lieu de "/sdcard" (ou "/mnt/sdcard") ?

J'ai récemment mis à niveau mon téléphone pour un LG Motion 4G (Android 4 ICS). Je vois que la carte SD est montée à l'emplacement suivant /sdcard/external_sd . J'ai également remarqué que cela semble être le cas avec d'autres modèles plus récents. Les applications s'attendent à ce que la carte SD soit à l'adresse /sdcard . Je suppose que les fabricants veulent inclure beaucoup de stockage interne, mais pourquoi monter le stockage interne à /sdcard ? Cela ne devrait-il pas être contraire à une certaine forme de norme de spécification Android ?

26voto

Flow Points 18254

La raison en est l'histoire d'Android : La première génération d'appareils Android ne disposait que d'une petite quantité de stockage interne (environ 100-400MiB) qui était montée sous /data .

Ensuite, des appareils dotés d'une carte SD, à l'époque externe, sont apparus. La carte SD était montée sous /mnt/sdcard .

Ensuite, des appareils dotés d'une grande capacité de stockage interne sont apparus sur le marché. Ce stockage était partagé, car /mnt/sdcard est devenu l'endroit par défaut pour les gros morceaux de données provenant d'applications, de photos et autres. Donc l'environnement Android devait avoir /data y /mnt/sdcard répertoire. Par conséquent, une partition était destinée à /data l'autre pour /mnt/sdcard . C'est la raison pour laquelle votre espace de stockage pourrait devenir faible (la /data ) même s'il y a beaucoup d'espace sur la partition /mnt/sdcard .

Cette situation a été améliorée avec Android 3.0 : /data y /mnt/sdcard pointent maintenant vers la même partition. Bon travail Google, cela aurait pu être fait il y a plusieurs années. C'est aussi la raison pour laquelle app2sd n'est plus nécessaire sur Android 3.0 ou plus : Vous ne déplacez les données qu'à l'intérieur du même volume.

Nous arrivons maintenant à la réponse à votre question : Depuis /mnt/sdcard est déjà monté sur le stockage interne, une carte SD externe doit utiliser un point de montage différent. Et ce point de montage n'est pas spécifié par Google. Il pourrait être

  • /mnt/sdcard/ext_sd
  • /mnt/external
  • /mnt/extSdCard
  • /mnt/sdcard/external_sd
  • etc.

L'appel API getExternalStorageDirectory() pointe généralement vers le répertoire de stockage interne. Ce comportement est documenté. Il existe des projets open source qui fournissent des outils pour trouver le répertoire externe de la carte SD d'une manière canonique.

4voto

Saaru Lindestøkke Points 5124

Forcer le support SD externe à s'éloigner de /mnt/sdcard n'a aucun mérite technique, c'est la façon dont Google aide les fournisseurs de matériel informatique à créer un point de différenciation pour les téléphones dotés d'une plus grande mémoire interne.

Il n'y a aucune raison pour que les applications doivent trouver un moyen de localiser la carte externe lorsque /mnt/sdcard était clairement l'endroit où la carte SD aurait dû être et la façon indéfinie de Google de charger la carte SD externe est un autre complot peu convivial pour rendre la carte SD externe moins utile dans les nouveaux appareils Android. Il n'y a AUCUNE raison pour que /data y /mnt/sdcard ont dû être fusionnés dans la même partition sur les versions plus récentes d'Android, sauf pour le fabricant, afin de différencier les téléphones dotés d'une plus grande mémoire interne des appareils moins coûteux dotés d'une mémoire interne moins importante. Même si la fusion devait être faite, Google aurait pu clairement définir une STANDARD un nouveau point de montage pour les cartes SD externes au lieu de le laisser complètement vague. Cela va complètement à l'encontre de la prévention d'une nouvelle "segmentation" de l'écosystème Android par une conception maladroite visant à aider les vendeurs à différencier les téléphones haut de gamme des appareils moins chers dotés d'une mémoire intégrée moins importante.

Les binaires d'applications Android sont minuscules, les téléphones dotés d'une mémoire interne de 1 à 2 gigaoctets devraient disposer d'un espace plus que suffisant pour des centaines d'applications, et toutes les données importantes pourraient être rangées en toute sécurité sur une carte SD externe. Mais les vendeurs ont réalisé qu'ils devaient avoir un moyen de différencier leurs produits haut de gamme, et revendiquer une mémoire interne plus élevée est devenu une partie de ce schéma et paralyser l'utilité de la mémoire externe est l'autre partie intégrée que ce schéma a exigé pour fonctionner pleinement d'où l'API moins utile pour trouver des cartes sd externes et les points de montage non standardisés.

Donc : Non, monter la carte SD à un endroit autre que /mnt/sdcard n'est rien d'autre qu'une stratégie commerciale visant à vendre de nouveaux téléphones plus chers sous une version plus récente d'Android, rien de plus. Imaginez, si le Nexus 4 8GB et le Nexus 16GB peuvent tous deux utiliser 64GB de carte SD externe pour les applications et les médias, y a-t-il une raison pour quiconque d'acheter la version 16 GB ? Ces 8 Go supplémentaires de mémoire NAND ne valent certainement pas 50 $ de différence de prix si des cartes SD externes sont utilisées. Puisque la plupart des composants d'un téléphone intelligent doivent être à peu près les mêmes (RAM, processeur, radios), le seul domaine laissé pour une plus grande marge de profit est l'espace de mémoire interne, et donc le point de montage bizarre de la mémoire externe.

Tout le monde a-t-il également remarqué l'absence de support de carte SD externe sur les appareils Android actuels de la marque "Google" ? Cette tendance va continuer à s'étendre aux appareils Android de "haut niveau". La prise en charge des cartes SD externes était un facteur de différenciation essentiel pour que les appareils Android dépassent la domination de l'iPhone sur le marché de la téléphonie mobile. Maintenant qu'Android règne en maître dans le jeu des chiffres, il n'est plus nécessaire que cette pratique de sape des profits soit maintenue encore longtemps.

Je ne serai pas surpris qu'avec Android 5.0, le support des cartes SD externes fasse partie du passé. Car s'il est difficile pour les applications de trouver une carte SD externe, alors la plupart des programmes utiliseront simplement la carte SD connue. /data y /mnt/sdcard La plupart des applications utilisant de plus en plus de données stockées pour leur fonctionnement, une stratégie dynamique de valorisation du produit est créée à partir de "rien", simplement en ne montant pas de carte SD externe sur le site. /mnt/sdcard .

2voto

Rudi Pittman Points 21

Vous devez savoir (si vous êtes rooté) que vous pouvez aller dans /system/etc/vold.fstab et échanger les points de montage pour /sdcard et /mnt/external_sd.... cela permettra à votre sdcard d'être sur /sdcard comme vous le souhaitez et le reste du "stockage interne" sera monté sur /mnt/external_sd ou si vous préférez /sdcard/external_sd/.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X