如何卸载android apk而不丢失数据?

如何卸载android apk而不丢失数据?,android,backup,storage,apk,Android,Backup,Storage,Apk,有没有办法在apk上使用adb卸载,但使数据持久化?我丢失了应用程序的原始密钥,现在我想更新它,但不丢失以前的数据。所以我需要先卸载它,用新密钥添加新的apk。这可能吗 我忘了提到我正在通过.bat文件执行命令。如果您的设备是根设备,您可以访问包含应用程序数据的/data/,并且可以对其进行备份 如果您的设备没有根目录,则您没有其他方法保存数据。如果您的数据存储为公共数据,则卸载后将保留该数据,但如果您的数据存储为私人数据,则卸载应用程序时将删除您的数据。批量友好型版本 My-make-clea

有没有办法在apk上使用adb卸载,但使数据持久化?我丢失了应用程序的原始密钥,现在我想更新它,但不丢失以前的数据。所以我需要先卸载它,用新密钥添加新的apk。这可能吗


我忘了提到我正在通过.bat文件执行命令。

如果您的设备是根设备,您可以访问包含应用程序数据的
/data/
,并且可以对其进行备份


如果您的设备没有根目录,则您没有其他方法保存数据。

如果您的数据存储为公共数据,则卸载后将保留该数据,但如果您的数据存储为私人数据,则卸载应用程序时将删除您的数据。

批量友好型版本

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

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

只需启用
adb
access,并使用以下命令:

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

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

一旦您有了这个文件,假设包名保持不变,您应该能够简单地使用命令

adb restore/backup/myAppBackup.ab

恢复数据


现在,我不确定一旦您更改了密钥,它是否会起作用,但我相当确定它只依赖于包名,所以签名密钥应该无关紧要。更多信息。

你不能先提取/data/data/files,然后卸载吗?@Shark我想我可以这样做,但我可以使用.bat文件吗?并以我使用push删除的方式插入设备?我看不出原因。谢谢,第一个命令创建了备份,但它似乎没有创建备份。我尝试通过adb shell,它说“无法连接进行备份”。奇怪的是,在你发布的指南中,我没有看到备份请求屏幕。你在运行什么操作系统?这仅适用于4.0及以上版本。