Instalación en tarjeta SD por defecto

29

Me gustaría saber si hay una manera de decirle a Android que instale aplicaciones en la tarjeta micro SD de forma predeterminada en lugar de tener que descargar las aplicaciones en la memoria interna primero y luego tener que moverlas a la tarjeta SD manualmente.

Gracias

usuario2239505
fuente
específicamente debido a la respuesta de @Yeradis android.stackexchange.com/a/4976/156
GAThrawn
44
@GAThrawn No, eso no es un engaño de eso. La pregunta que vinculó es más bien "¿se pueden mover aplicaciones a SD"? Este es "cómo especificar la ubicación de instalación predeterminada". Misma calle, casa diferente.
Izzy

Respuestas:

33

Este artículo en HowtoGeek describe una posible forma de utilizar el :

Este comando establecerá el objetivo de instalación predeterminado de los dispositivos en su tarjeta SD. Eso no significa necesariamente que todo se instale allí: solo las aplicaciones que admitan esto irán allí, y los desarrolladores pueden "anular" esto en su manifiesto de aplicaciones si creen que es necesario. De la referencia de API vinculada :

Cambia la ubicación de instalación predeterminada. Valores de ubicación:

  • 0: Automático: deje que el sistema decida la mejor ubicación.
  • 1: Interno: instalar en el almacenamiento interno del dispositivo.
  • 2: Externo: instalar en medios externos.

Nota: Esto solo está destinado a la depuración; usar esto puede causar que las aplicaciones se rompan y otros comportamientos indeseables.

Para obtener más detalles sobre ADB y cómo, por ejemplo, puede obtener una versión mínima de él en su computadora (sin la excesiva necesidad de instalar todo el SDK), puede consultar el tag-wiki .


Actualización: para evitar confusiones con la respuesta de t0mm13b, se debe aclarar el proceso de instalación:

  1. encuentra alguna aplicación en y decide instalarla
  2. después de haber hecho clic en "Instalar" y estuvo de acuerdo en términos / permisos, el se descarga a/data/local , es decir, para su . No puedes cambiar eso.
  3. cuando se complete la descarga, .apkse instalará automáticamente. A dónde, depende de múltiples cosas:
    • Si el desarrollador no especificó la android:installLocationpropiedad en sus aplicaciones Manifest, la aplicación se instalará en la historia interna. Punto final, no hay otra opción (ver: referencia de API ).
    • si android:installLocationestá configurado en preferExternaly hay almacenamiento externo disponible, irá allí.
    • si está configurado en auto, nuevamente depende de:
      1. ¿La aplicación contiene widgets, servicios, quiere comenzar en el arranque, y varias otras cosas, va al almacenamiento interno? Punto final, no hay otra opción.
      2. va donde apunta la "ubicación de instalación predeterminada" del dispositivo
Izzy
fuente
podría ayudar a incluir una advertencia: no está garantizado que funcione, especialmente si una aplicación tiene sus propios widgets ... :)
t0mm13b
Como escribí: solo las aplicaciones que admitan esto irán allí :) Los widgets, servicios, etc. dicen que no lo admite :)
Izzy
después de ejecutar el comando adb shell pm setInstallLocation 2 error: dispositivo no encontrado
moudrick
1
Parece que omitió los primeros dos pasos (habilitar la depuración de USB y conectar el dispositivo después de eso), o está en Windows y no instaló los controladores correspondientes. Por favor siga el enlace correspondiente e ir de allí, @moudrick.
Izzy
5

¡Eso no se puede cambiar! Así es como funciona Android.

Todas las descargas de Google Play van al sistema de archivos interno, luego desde:

  • Configuración> Administrar aplicaciones
  • Toque dicha aplicación, verifique si el botón Mover a tarjeta SD está habilitado, luego puede hacerlo.

Si el botón Mover a la tarjeta SD está deshabilitado o atenuado, probablemente sea para evitar que la aplicación funcione, como sus propios widgets en la pantalla de inicio.

Además, vea esta respuesta en la barra lateral relacionada a la derecha de esta página. :)

t0mm13b
fuente
1
¿Estás seguro, t0mm13b? ¿No había algún comando ADB para adb shell pm setInstallLocation 2(es decir, SDCard), como se describe aquí ?
Izzy
1
Un desarrollador puede especificar eso en el Manifiesto para darle a la aplicación la capacidad de moverse a la tarjeta SD. android:installLocation="auto"No lo he visto adb shell pm setInstallLocation 2, probablemente especifique el nombre del paquete en ese caso ...
t0mm13b
1
No, t0mm13b: vea mi respuesta y el artículo vinculado. Esto establece la ubicación de instalación predeterminada del dispositivo . Entonces, si Manifestdice "auto", ahí es donde va. Si el Manifestdice que no sea "auto", va donde Manifestdice. Ver también: API ref , también aquí para el pm set-install-locationcomando (nueva sintaxis).
Izzy
1
Izzy - lo que se especifica acerca de AndroidManifest android:installLocation- en realidad permite que el Mover a tarjeta SD de la configuración de la aplicación gestionar ... algunos desarrolladores no lo especifica y hace que el botón está deshabilitado pero conceden - nunca había visto el comando adb hacer que, o bien
t0mm13b
1
Ah, ahora lo entiendo: enfoque diferente: estabas diciendo "si una aplicación no está diseñada para instalarse en SD, no puedes hacerlo", mientras me enfocaba en dónde va por defecto a menos que se especifique lo contrario . Pero por favor verifique las primeras 4 líneas de su respuesta, dicen algo diferente. Sin embargo, tiene razón: la descarga se dirige primero /data/localy desde allí se instala la aplicación. Pero dependiendo de la configuración y el manifiesto, se instala desde adentro o directamente desde afuera. // Si te gusta discutir esto en detalle: ¿recuerdas nuestro pub, ejem, chat? :)
Izzy
4

Instale "Terminal Emulator for Android" en su dispositivo móvil y abra

$ su
# pm get-install-location
0[auto]
# pm set-install-location 2
# pm get-install-location
2[external]
Abhilash
fuente
2
interesante, pero debes tener raíces para que esto funcione
Robert S. Barnes
-2

Vaya a "Administrar aplicaciones" y luego seleccione la pestaña "Todos" y busque "Google Play Store". Tóquelo y luego presione el botón "Desinstalar actualizaciones". Después de eso, vaya a Play Store, todas las aplicaciones se instalarán en su tarjeta SD. Esto es lo que hice en mi QMobile A110 (Android 4.2).

zulqarnain
fuente
1
Creo que te estás perdiendo el paso intermedio en algún lugar donde configuras la ubicación de instalación predeterminada para que sea la tarjeta SD e incluso así, no siempre funciona de esta manera para todas las aplicaciones.
Enigma
-3

La cuestión es que puede cambiar el directorio de instalación predeterminado si su teléfono está rooteado. Descargue Lucky Patcher y toque en las herramientas allí puede encontrar la opción para cambiar el directorio de instalación predeterminado. ** No haga esto para Android 4 o superior o puede causar un cambio irreversible. ** **

Vibhor
fuente
2
Según la versión de Android Market Share 2016, el 97.7% de todos los usuarios de Android están usando Android 4.0 o posterior en la fecha en que se publicó esta respuesta y, por lo tanto, Lucky Patcher puede causar cambios irreversibles en casi todos los usuarios actuales de Android.
karel
2
¿Qué "cambios irreversibles" serían esos? No los noté en mis dispositivos Kitkat :) Pero como señaló @karel: si crees que no debería usarse, ¿por qué lo recomiendas?
Izzy