有没有办法在apk上使用adb卸载,但让数据持久化?我丢失了应用程序的原始密钥,现在我想更新它,但不会丢失以前的数据。所以我需要先卸载它以使用新密钥添加新的 apk。这可能吗?
我忘了提到我正在通过 .bat 文件执行命令。
编辑:应该指定,以下仅适用于 Android 4.0 及更高版本。
只需启用adb
访问权限,然后使用以下命令:
adb backup -noapk -f /backup/myAppBackup.ab com.yourapp.packagename
然后,您应该将一个文件存储在您的根目录(在 Windows 上,您的 C:\ 或等效目录)的一个名为 backup 的文件夹中。
一旦你有了这个文件,假设包名保持不变,你应该能够简单地使用命令
adb restore /backup/myAppBackup.ab
来恢复数据。
现在,我不确定这在您更改密钥后是否会起作用,但我相当确定它仅依赖于包名称,因此签名密钥无关紧要。更多信息在这里。
批处理友好的版本。
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
如果您的数据是公开存储的,卸载后会保留,但如果您的数据是私有存储,您的数据将在您卸载应用程序时被删除。
如果您的设备已植根,您可以访问/data/<package_name>
包含应用程序数据,并且可以对其进行备份。
如果您的设备没有植根,则您没有其他方法可以保留您的数据。