Desinstalar aplicación sin borrar datos

Estoy creando una aplicación que recibe actualizaciones de un servidor. Entonces, al comienzo de la aplicación, se produce una descarga. Sin embargo, esto se está volviendo un poco molesto ya que cada vez que quiero probar una nueva versión, uso:

adb -d uninstall com.mycompany.myapp

Este comando elimina la aplicación, así como sus datos/caché almacenados. Ahora, cada vez que hago esto, tendría que pasar por el proceso de descargar las actualizaciones nuevamente y toma tiempo (mucho).

¿Hay algún adbcomando que desinstale la aplicación sin eliminar sus datos/caché? Eclipse ADT puede hacer esto, pero no quiero encender Eclipse cada vez que construyo.

EDITAR : he intentado usar adb uninstall -k com.mycompany.myapppero siempre responde con esto:

The -k option uninstalls the application while retaining the data/cache.
At the moment, there is no way to remove the remaining data.
You will have to reinstall the application with the same signature, and fully uninstall it.
If you truly wish to continue, execute 'adb shell pm uninstall -k com.mycompany.myapp'

Si lo pruebo adb shell pm uninstall -k com.mycompany.myappsolo dice Failed.

¿Por qué no puede proporcionar su aplicación revisada como una actualización que se instala sobre la nueva aplicación?
¿Cómo hago exactamente eso?
@LanceGray: actualice el código de versión en su AndroidManifest.xml

Respuestas (1)

Si ejecuta adbsin argumentos, el texto de ayuda le dirá la respuesta a esta pregunta.

adb uninstall -k com.mycompany.myapp

elimina la aplicación pero deja los directorios de datos y caché. Similarmente,

adb install -r myapp.apk

reinstala una aplicación existente con un nuevo archivo APK, manteniendo sus datos intactos.

Como nota al margen, no sé si esto te afecta, pero no olvides que los términos para desarrolladores de Google Play prohíben que las aplicaciones se actualicen (actualizar el archivo APK) a través de un canal que no sea de Google Play. Esto es para evitar que los desarrolladores eludan los términos de Google Play creando una aplicación 'stub' que, una vez instalada, se reemplaza con una aplicación que no cumple con los términos de Google Play. Actualizar archivos de datos y similares está perfectamente bien.

Gracias. Cada vez que lo intento adb uninstall -k com.mycompany.myapp, aparece un error que dice que se supone que no debe usarse y que si realmente quiero usarlo, debería usar la adb shell pmcontraparte, que no funciona en mí. La aplicación que estoy creando no es para Google Play, así que supongo que está bien. ¿Puede proporcionar un enlace para que pueda ver más en él?
La -ropción me funciona perfectamente cuando necesitaba actualizar el apk de una aplicación que tengo instalada (con la misma firma, eso sí) sin perder todos mis datos.