¿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:
- Cambio de ruta de la tarjeta SD en Android Studio AVD Manager
- Instalar tarjeta SD Vs memoria del teléfono? Y por qué el tamaño de la aplicación es diferente?
- Java.Lang.RuntimeException, setParameters falló en la versión de android (4.1.1)
- ¿Cómo eliminar una imagen en miniatura mediante programación de galera después de eliminar una imagen?
- Base de datos SQLite en 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)?
- ¿Cómo puedo acceder y almacenar datos en la tarjeta sd en todos los dispositivos Android?
- ¿Cómo puedo mostrar la imagen en la aplicación de Android
- ¿Por qué getExternalFilesDirs () no funciona en algunos dispositivos?
- Tarjeta sd android
- Cómo guardar una imagen en una galería de almacenamiento externa en android
- Android 2.2 - ¿Cómo puedo detectar si estoy instalado en la tarjeta SD o no?
- Exportar archivo de base de datos sqlite en XML y luego en la hoja de cálculo de Excel
- Permiso de escritura de la tarjeta SD de Android mediante SAF (Storage Access Framework)
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