¿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 puedo mostrar la imagen en la aplicación de Android
- Donde el listview almacena la imagen en android cuando se descarga desde el servidor
- Solución al error INSTALL_FAILED_INSUFFICIENT_STORAGE en Android
- Copia de seguridad de Android y restauración de la base de datos desde y hacia la tarjeta SD
- ¿Cómo eliminar un archivo de la tarjeta SD?
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)?
- Problemas de lectura inputStream desde un Uri y envío a través de un outputStream android
- Cómo reproducir archivos mp3 de la tarjeta SD interna y externa en android?
- ¿Cómo puedo acceder y almacenar datos en la tarjeta sd en todos los dispositivos Android?
- Tratando de copiar SQLite DB desde datos a tarjeta SD
- Error al listar archivos con Android Storage Access framework en Lollipop
- No puedo obtener la ruta real de la tarjeta SD extraíble. ¿Hay alguna manera de conseguir?
- Cómo hacer un archivo oculto en la tarjeta android sd?
- Error que abre el archivo del rastro: Ningún archivo o directorio (2)
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.
- Cómo animar un marcador a través de un ArrayList de LatLng puntos?
- Android countdowntimer tick no es preciso