Klonen einer Anwendung mit ihrem vollständigen Datenspeicher zwischen Geräten

Bei einer generischen Anwendung möchte ich diese komplett mit ihren eigenen Daten auf ein anderes Gerät oder auf den Emulator übertragen.

Nach dem Wiederherstellen der Anwendung und ihres /data/data/com.appVerzeichnisses sollte sie normal funktionieren, vorausgesetzt, ihre Geschäftslogik berücksichtigt nicht, dass sich die Geräte-ID geändert hat oder andere Einrichtungen (wie Konten) fehlen.

Brutales Kopieren /data/data/com.appkann zu Datenbeschädigung führen, wenn die App aktiv ist.

Wie mache ich das, mit oder ohne Root?

Antworten (1)

Lösung eins: TitaniumBackup

Beide Geräte müssen gerootet sein und die TitaniumBackup-Anwendung verwenden. Ich habe festgestellt, dass Titanium auf Emulator 2.1 nicht startet

Lösung zwei: adb-Sicherungsoptionen verwenden

Verwenden adb backupund adb restorerichtig. Dies würde bedeuten, das Backup auf die einzelne zu klonende App zu beschränken, einschließlich ihrer Daten, aber sonst nichts. Dies ist wichtig, da adb restore <file.ab>ein Alles-oder-Nichts, keine selektive Wiederherstellung möglich ist. Vollständige Syntax für adb backupist:

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

Um also nur unsere "Foobar"-App enthalten zu haben, müssen wir das Gerät verbinden und:

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

Dies erledigt und adbmit dem Emulator verbunden, kann die generierte Sicherungsdatei MyBackup.abdann wiederhergestellt werden

adb restore MyBackup.ab
Es gibt eine 1KB-Datei! Mit dem Inhalt von: ANDROID BACKUP 1 1 keine xÚc £ŒT