【问题标题】:How to uninstall android apk without losing data?如何在不丢失数据的情况下卸载android apk?
【发布时间】:2012-09-26 18:27:48
【问题描述】:

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

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

【问题讨论】:

  • 你不能 adb 拉 /data/data/ 文件然后卸载吗?
  • @Shark 我想我可以做到这一点,但我可以使用 .bat 文件做到这一点吗?并以与我使用推送相同的方式插入设备?
  • 我没有看到为什么不这样做的原因。

标签: android backup storage apk


【解决方案1】:

编辑:应该指定,以下仅适用于 Android 4.0 及更高版本。

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

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

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

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

adb restore /backup/myAppBackup.ab

恢复数据。

现在,我不确定确定一旦您更改了密钥,这是否会起作用,但我相当确定它仅依赖于包名称,因此签名密钥应该没关系。更多信息here

【讨论】:

  • 谢谢,第一个命令创建了备份,但它似乎没有进行备份。我通过 adb shell 试过,它说“无法连接备份”
  • 奇怪的是我在您发布的指南中没有看到备份请求屏幕。
  • 您运行的是什么操作系统?这仅适用于 4.0 及更高版本。
【解决方案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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      如果您的设备已root,您可以访问包含应用数据的/data/<package_name>,并可以对其进行备份。

      如果您的设备没有植根,您就没有其他方法来保存您的数据。

      【讨论】:

        猜你喜欢
        • 2017-04-07
        • 1970-01-01
        • 1970-01-01
        • 2021-09-03
        • 1970-01-01
        • 2023-03-08
        • 2012-04-30
        • 2015-04-13
        • 1970-01-01
        相关资源
        最近更新 更多