【问题标题】:Kivy on Android : How to keep local saved file after app update?Android 上的 Kivy:如何在应用更新后保留本地保存的文件?
【发布时间】:2019-01-17 19:53:49
【问题描述】:

我想知道在应用更新后保留本地保存数据的正确步骤。

我确认了以下旧问题,但我无法解决该问题。 Save app data in kivy on Android

我尝试了以下方法。

  1. 1-1:我用 buildozer(command:buildozer android debug) 制作了 android APK。 1-2:并使用'kivy.storage'执行'store.put'方法。然后在 './' 目录中创建了 'hello.json' 文件。 https://kivy.org/doc/stable/api-kivy.storage.html

    1-1: APK ver.1 中的'./' 目录

    main.pyo

    1-2: APK ver.1 中的'./' 目录

    main.pyo, hello.json(创建)

  2. 2-1:我制作了android APK ver.2(与1.APK同名)。 2-2:以更新模式安装后,使用'kivy.storage'只执行'store.get'方法。 then 方法失败,因为 'hello.json' 文件已随应用更新自动删除。

    2-1: APK ver.2 中的'./' 目录

    main.pyo(从 APK 版本 1 更改)

    2-2: 更新后的APK中的'./'目录

    main.pyo(ver.2)

  3. 我尝试更改“hello.json”文件的输出位置,但没有任何意义。 例如'./data/data/[app_name]/files/hello.json' 和 './data/data/[app_name]/shared_prefs/hello.json'

如何更新我的应用程序?

【问题讨论】:

  • 我认为更新不会删除您保存的数据。您确定要进行更新而不是卸载/安装吗?
  • 感谢您的评论。我想如果一个包名相同,就会自动更新模式。安装信息也描述为更新。
  • 我会放一个虚拟的 'hello.json' 文件并更新它并尝试确认结果。
  • 我在 './' 目录中放置了一个虚拟 json 文件并运行了更新。理所当然的,原来的文件没有留下,而是用一个虚拟文件代替……
  • hello.json 文件被替换了吗?您的 APK 中是否有 hello.json 文件?

标签: android kivy


【解决方案1】:

默认当前目录(名为app)中的所有内容都会在应用更新时被删除和替换。您可以将持久数据放在目录上面中,即../,它应该在更新之间保留。

您也可以使用应用的外部存储目录,使用 pyjnius 查询 Android API 的位置,但我现在没有代码。

这不是特别好的文档,我会尝试改进它。

【讨论】:

  • 哇!我成功地使用'../'保存了文件!我对基本机制还不够了解。非常感谢。
  • 感谢@inclement '../' 也与我合作。我在手机存储中找不到文件。虽然我打印操作系统路径,结果是(/data/data/package_name/files/app/.....)。当我检查 Internat 存储时,我发现 /data 文件夹是空的.. 我想检查文件只是出于好奇
  • 也许我必须根设备并检查。不是内部存储。
  • @KhaledAhmedSobhy 正如你猜想的那样,没有 root 用户无法访问此目录。
  • @inclement 我在文档中找不到这个信息,你能告诉我应该去哪里看吗?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
  • 1970-01-01
  • 2014-12-05
相关资源
最近更新 更多