Installation sur SDCard par défaut

29

Je voudrais savoir s'il existe un moyen de dire à Android d'installer des applications sur la carte micro SD par défaut au lieu d'avoir à télécharger des applications dans la mémoire interne d'abord, puis de les déplacer manuellement sur la carte SD.

Merci

user2239505
la source
spécifiquement à cause de @Yeradis répondre android.stackexchange.com/a/4976/156
GAThrawn
4
@GAThrawn Non, ce n'est pas dupe de ça. La question que vous avez liée est plutôt "peut-on déplacer des applications vers SD". Celui-ci est "comment spécifier l'emplacement d'installation par défaut". Même rue, maison différente.
Izzy

Réponses:

33

Cet article de HowtoGeek décrit une manière possible d'utiliser l' :

  • Activer le débogage USB
  • connectez votre appareil à votre ordinateur
  • exécuter la commande adb shell pm setInstallLocation 2
    (ou, nouvelle syntaxe , adb shell pm set-install-location 2)
  • déconnecter, c'est fait.

Cette commande définira la cible d'installation par défaut des périphériques sur votre carte SD. Cela ne signifie pas nécessairement que tout y est installé: seules les applications prenant en charge cela y iront, et les développeurs peuvent «annuler» cela dans le manifeste de leurs applications s'ils pensent que cela est nécessaire. À partir de la référence de l'API liée :

Modifie l'emplacement d'installation par défaut. Valeurs d'emplacement:

  • 0: Auto: laissez le système décider du meilleur emplacement.
  • 1: Interne: installez sur le stockage interne de l'appareil.
  • 2: Externe: installez sur un support externe.

Remarque: Ceci est uniquement destiné au débogage; son utilisation peut entraîner la rupture des applications et d'autres comportements indésirables.

Pour plus de détails sur ADB, et comment vous pouvez, par exemple, en obtenir une version minimale sur votre ordinateur (sans l'excès d'installation du SDK entier), vous pouvez jeter un œil au tag-wiki .


Mise à jour: Pour éviter toute confusion avec la réponse de t0mm13b , un certain dégagement sur le processus d'installation:

  1. vous trouvez une application sur et décidez de l'installer
  2. Une fois que vous avez cliqué sur « installer » et convenu des conditions / autorisations, l' est téléchargé à/data/local , par exemple à votre . Tu ne peux pas changer ça.
  3. une fois le téléchargement terminé, le .apksera installé automatiquement. Où aller, dépend de plusieurs choses:
    • si le développeur n'a pas spécifié la android:installLocationpropriété dans ses applications Manifest, l'application sera installée dans l'histoire interne. Point final, pas d'autre choix (voir: référence API ).
    • si ce android:installLocationparamètre est défini sur preferExternalet que le stockage externe est disponible, il y ira.
    • s'il est défini sur auto, cela dépend à nouveau:
      1. l'application contient-elle des widgets, des services, veut-elle démarrer au démarrage, et plusieurs autres choses, elle va au stockage interne. Arrêt complet, pas d'autre choix.
      2. il va là où les appareils "emplacement d'installation par défaut" pointe vers
Izzy
la source
pourrait aider à inclure un avertissement - ce n'est pas garanti de fonctionner, surtout si une application a ses propres widgets ... :)
t0mm13b
Comme je l'ai écrit: seules les applications prenant en charge cela iront là :) Widgets, services, etc. disent qu'il ne le prend pas en charge :)
Izzy
après avoir exécuté la commande adb shell pm erreur setInstallLocation 2: périphérique introuvable
moudrick
1
Cela semble que vous avez sauté les deux premières étapes (activation du débogage USB et connexion de l'appareil après cela) - ou que vous êtes sous Windows et que vous n'avez pas installé les pilotes correspondants. Veuillez suivre le lien correspondant et continuer à partir de là, @moudrick.
Izzy
5

Cela ne peut pas être changé! Voilà comment fonctionne Android.

Tous les téléchargements depuis Google Play vont vers le système de fichiers interne, puis depuis:

  • Paramètres> Gérer les applications
  • Appuyez sur ladite application, vérifiez si le bouton Déplacer vers la carte SD est activé, vous pouvez le faire.

Si le bouton Déplacer vers la carte SD est désactivé ou grisé, c'est probablement pour empêcher l'application de fonctionner - comme leurs propres widgets sur l'écran d'accueil.

Consultez également cette réponse dans la barre latérale associée à droite de cette page. :)

t0mm13b
la source
1
Êtes-vous sûr, t0mm13b? N'y avait-il pas une commande ADB adb shell pm setInstallLocation 2(c'est- à -dire SDCard), comme décrit ici ?
Izzy
1
Un développeur peut spécifier cela dans le manifeste pour donner à l'application la possibilité d'être déplacé vers la carte SD. android:installLocation="auto"Vous n'avez pas vu adb shell pm setInstallLocation 2, vous spécifiez probablement le nom du package dans ce cas ...
t0mm13b
1
Non, t0mm13b - voir ma réponse et l'article lié. Cela définit l' emplacement d'installation par défaut de l' appareil . Donc, si le Manifestdit "auto", c'est là que ça va. Si le Manifestdit autre que "auto", il va là où le Manifestdit. Voir aussi: ref API , également ici pour la commande pm set-install-location(nouvelle syntaxe).
Izzy
1
Izzy - ce que j'ai spécifié à propos d'AndroidManifest android:installLocation- permet en fait le déplacement vers la carte SD à partir des paramètres de l'application de gestion ... certains développeurs ne le spécifient pas et rendent le bouton désactivé mais je concède - je n'ai jamais vu la commande adb pour le faire non plus
t0mm13b
1
Ah, maintenant je comprends - objectif différent: vous disiez "si une application n'est pas destinée à être installée sur SD, vous ne pouvez pas le faire" - alors que je me concentrais sur où elle va par défaut, sauf indication contraire . Mais veuillez vérifier les 4 premières lignes de votre réponse, elles disent quelque chose de différent. Vous avez cependant raison: le téléchargement va d'abord sur /data/local, et à partir de là, l'application est installée. Mais en fonction des paramètres et du manifeste, il est installé soit en interne soit directement en externe à partir de là. // Si vous aimez en discuter en détail: vous vous souvenez de notre pub, ahem, chat? :)
Izzy
4

Installez "Terminal Emulator pour Android" dans votre mobile et ouvrez

$ su
# pm get-install-location
0[auto]
# pm set-install-location 2
# pm get-install-location
2[external]
Abhilash
la source
2
intéressant, mais vous devez avoir une racine pour que cela fonctionne
Robert S. Barnes
-2

Accédez à "Gérer les applications", puis sélectionnez l'onglet "Tous" et recherchez "Google Play Store". Appuyez dessus, puis appuyez sur le bouton "Désinstaller les mises à jour". Après cela, accédez au Play Store, toutes les applications seront installées sur votre carte SD. C'est ce que j'ai fait sur mon QMobile A110 (Android 4.2).

zulqarnain
la source
1
Je pense que vous manquez l'étape intermédiaire quelque part où vous définissez l'emplacement d'installation par défaut pour être la carte SD et même dans ce cas, cela ne fonctionne pas toujours de cette façon pour chaque application.
Enigma
-3

Le fait est que vous pouvez changer le répertoire d'installation par défaut si votre téléphone est enraciné. Téléchargez lucky patcher et appuyez sur les outils, vous pouvez trouver une option pour changer le directort d'installation par défaut. ** Ne faites pas cela pour Android 4 ou supérieur ou cela pourrait provoquer des changements irréversibles. **

Vibhor
la source
2
Selon Android Version Market Part 2016, 97,7% de tous les utilisateurs d'Android utilisent Android 4.0 ou version ultérieure à la date à laquelle cette réponse a été publiée et, par conséquent, Lucky Patcher peut provoquer des changements irréversibles pour presque tous les utilisateurs d'Android actuels.
karel
2
Quels seraient les «changements irréversibles»? Je ne les ai pas remarqués sur mes appareils Kitkat :) Mais comme @karel l'a souligné: si vous pensez qu'il ne devrait pas être utilisé, pourquoi le recommandez-vous?
Izzy