如何卸载安卓应用程序而不丢失数据?

6
有没有办法在使用adb卸载apk的同时保留数据?我的应用程序原始密钥丢失了,现在我想更新它,但不想丢失以前的数据。因此,我需要先卸载它,然后添加具有新密钥的新apk。这种情况可能吗?
我忘记提到我是通过.bat文件执行命令的。

你不能使用adb pull /data/data/<package_name>命令拉取文件,然后卸载吗? - Shark
@Shark 我认为我可以做到这一点,但我能使用 .bat 文件来完成吗?并且通过使用 push 删除的方式将其插入设备中? - Comic Sans MS Lover
我不认为有任何理由不这样做。 - Shark
4个回答

4

编辑:应指定,以下方法仅适用于Android 4.0及以上版本。

只需启用adb访问,并使用此命令:

adb backup -noapk -f /backup/myAppBackup.ab com.yourapp.packagename

然后您将在根目录(在 Windows 上是您的 C:\ 目录或其等效目录)下的一个名为 backup 的文件夹中存储一个文件。

获取此文件后,假设包名称保持不变,则应该能够简单地使用以下命令:

adb restore /backup/myAppBackup.ab

来还原数据。

现在,我无法确定更改密钥后是否能够使用此方法,但我相当确定它仅依赖于包名称,因此签名密钥不应该有影响。更多信息请参见这里


谢谢,第一个命令创建了备份,但似乎没有进行备份。我尝试通过adb shell进行备份,但它显示“无法连接进行备份”。 - Comic Sans MS Lover
奇怪的是,我在您发布的指南中没有看到备份请求屏幕。 - Comic Sans MS Lover
你使用的是哪个操作系统?这只适用于4.0及以上版本。 - Kevin Coppock

2
批量处理友好版。
My-make-clean.bat:
adb pull /data/data/com.blah.bla/file1 file1
adb pull /data/data/com.blah.bla/file2 file2
adb pull /data/data/com.blah.bla/file3 file3
...
adb uninstall com.blah.bla
adb install YourApkFile.apk

0
如果您的数据是公开存储的,在卸载应用后仍将保留,但如果您的数据是私有存储的,则在卸载应用时将被删除。

-1
如果您的设备已经取得了root权限,您可以访问/data/<package_name>来获取应用数据,并且可以对其进行备份。
如果您的设备没有取得root权限,那么您将无法保留您的数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接