Clonación de una aplicación con su almacén de datos completo entre dispositivos

Dada una aplicación genérica me gustaría transferirla, llena con sus propios datos, a otro dispositivo o al emulador.

Después de restaurar la aplicación y su /data/data/com.appdirectorio, debería funcionar con normalidad, siempre que su lógica comercial no tenga en cuenta que la ID del dispositivo ha cambiado o que faltan otras funciones (como cuentas).

Copiar /data/data/com.appbrutalmente puede resultar en la corrupción de datos cuando la aplicación está activa.

¿Cómo hago eso, con o sin raíz?

Respuestas (1)

Solución 1: Copia de seguridad de titanio

Ambos dispositivos deben estar rooteados y usar la aplicación TitaniumBackup. Descubrí que Titanium no se inicia en Emulator 2.1

Solución 2: utilice las opciones de copia de seguridad de adb

Usar adb backupy adb restorecorrectamente. Esto significaría restringir la copia de seguridad a la única aplicación que se va a clonar, incluidos sus datos, pero nada más. Esto es importante, ya que adb restore <file.ab>es un todo o nada, no es posible una restauración selectiva. La sintaxis completa para adb backupes:

adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] [<packages...>]

Entonces, para tener solo nuestra aplicación "Foobar" incluida, necesitamos conectar el dispositivo y:

adb backup -f MyBackup.ab -apk com.foobar.app

Hecho esto, y adbconectado al emulador, el archivo de copia de seguridad generado MyBackup.abse puede restaurar usando

adb restore MyBackup.ab
¡Da un archivo de 1KB! Con el contenido de: ANDROID BACKUP 1 1 ninguno xÚc £ŒT