¿Cómo mover aplicaciones spcific a / de la tarjeta sd usando ADB?

Fondo

Es posible configurar la instalación predeterminada en la tarjeta SD usando (basado en este enlace ):

para pre- API14:

adb shell pm setInstallLocation 2 

para API 14 y superiores:

 adb shell pm set-install-location 2 (Android 4.x) 

El problema

Esto sólo funciona para las aplicaciones recién instaladas (o simplemente ir manualmente sobre cada una de ellas y establecer allí), pero me gustaría saber cómo volver a instalar una aplicación ya instalada en la tarjeta SD (y también de nuevo a la memoria interna ).

Lo que he intentado

Traté de leer los comandos disponibles a través de ADB, y trató de ejecutar el siguiente comando:

 adb shell pm install -s -r -i com.example.test 

Pero no funcionó

La pregunta

Supongamos que una aplicación ya está instalada en el almacenamiento interno (o en la tarjeta SD), ¿cómo puedo usar ADB para volver a instalarla en la tarjeta SD (o en la interna)?

One Solution collect form web for “¿Cómo mover aplicaciones spcific a / de la tarjeta sd usando ADB?”

Aparentemente, es necesario proporcionar la ubicación del APK en lugar del nombre del paquete.

Después trabajé en mi final para VLC que instalé desde Play Store y originalmente estaba en almacenamiento interno:

 $ adb shell pm install -s -r /data/app/org.videolan.vlc.betav7neon-1.apk pkg: /data/app/org.videolan.vlc.betav7neon-1.apk Success $ 

Y volviendo al almacenamiento interno:

 $ adb shell pm install -f -r /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk pkg: /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk Success $ 

Actualización 1

A continuación se muestran los comandos respectivos con -i: specify the installer package name opción del -i: specify the installer package name .

Mover a la tarjeta SD:

 $ adb shell pm install -i "com.android.vending" -s -r /data/app/org.videolan.vlc.betav7neon-1.apk pkg: /data/app/org.videolan.vlc.betav7neon-1.apk Success 

Mover a almacenamiento interno:

 $ adb shell pm install -i "com.android.vending" -f -r /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk pkg: /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk Success 

Actualización 2

El uso de -i es opcional, pero si no se utiliza la información del instalador se pierde durante el movimiento:

 $ adb shell pm list packages -3 -i package:org.videolan.vlc.betav7neon installer=com.android.vending $ adb shell pm install -s -r /data/app/org.videolan.vlc.betav7neon-1.apk pkg: /data/app/org.videolan.vlc.betav7neon-1.apk Success $ adb shell pm list packages -3 -i package:org.videolan.vlc.betav7neon installer=null 

Espero que esto ayude.

  • Reinicie el servicio para la aplicación en la tarjeta SD cuando se vuelve a cargar la tarjeta SD
  • ¿Existe alguna convención para el almacenamiento de tarjetas SD de Android?
  • establecer ubicación de instalación no funciona
  • Lectura de un archivo de imagen en mapa de bits de sdcard, ¿por qué estoy recibiendo una NullPointerException?
  • ¿Cómo puedo leer el archivo json de la tarjeta SD
  • Cómo guardar una imagen en una galería de almacenamiento externa en android
  • ¿Por qué getExternalFilesDirs () no funciona en algunos dispositivos?
  • Carpeta de Android KitKat 4.4 en la tarjeta sd
  • Impedir que otras aplicaciones accedan a la imagen de mi aplicación almacenada en la tarjeta sd
  • ¿Cómo conseguimos que nuestra aplicación también pueda pasar a SDCard?
  • Cómo obtener el nombre de archivo de la ruta del archivo en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.