¿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:
- Cómo crear el directorio de Android automáticamente si aún no existe
- Donde el listview almacena la imagen en android cuando se descarga desde el servidor
- ¿Cómo quitar el archivo que se guarda en la tarjeta SD del emulador?
- Advertencia: File.mkdir () se ignora
- El desplazamiento de la aplicación de Android a la opción sdcard es deshabilitado
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)?
- Guardar Logcat en un archivo de texto en el dispositivo Android
- En Android: Cómo puedo volver a explorar una carpeta completa para ver los cambios en .nomedia
- No se puede ver un archivo en Windows escrito por una aplicación de Android en sd-card a menos que "Force Close" de la aplicación
- ¿Cómo acceder a elementos html contenidos dentro de una webview?
- Lectura de un archivo de imagen en mapa de bits de sdcard, ¿por qué estoy recibiendo una NullPointerException?
- Java.Lang.RuntimeException, setParameters falló en la versión de android (4.1.1)
- Cómo obtener el nombre de archivo de la ruta del archivo en android
- Copia los archivos de una carpeta de la tarjeta SD en otra carpeta de la tarjeta SD
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.
- Cómo animar un marcador a través de un ArrayList de LatLng puntos?
- Android countdowntimer tick no es preciso