在 Android 上的 kivy 中保存应用数据

Posted

技术标签:

【中文标题】在 Android 上的 kivy 中保存应用数据【英文标题】:Save app data in kivy on Android 【发布时间】:2014-12-05 00:39:25 【问题描述】:

假设我正在制作一个健身应用程序,您可以在其中进行锻炼。配置完锻炼后,您会想要保存它。如何添加此功能,以便当他退出应用程序并再次打开应用程序时,他可以查看他的锻炼情况?

我专门在 android 上工作。

这可用于保存本地游戏存档和数据。

【问题讨论】:

【参考方案1】:

我相信 Kivy 有一个模块可以处理这个问题。虽然它仍然(在撰写本文时)是实验性的。看这里:http://kivy.org/docs/api-kivy.storage.html#module-kivy.storage

根据this.,他们似乎正在使用 Pickle 来存储数据

如果由于某种原因这不起作用, 自己使用 Pickle/cPickle 怎么样?如果您不知道这些是什么,请立即使用 Google 搜索。 然后您可以将用户设置或锻炼存储在一个字典中并腌制该字典,保存 info 作为一个简单的文本文件到 sdcard,它根本不应该占用太多空间。

据我所知,cPickle 是一个更快的 Pickle 实现,因为它是用 C 或 Cython 编写的,我不确定。希望这对您有所帮助。

值得注意的是,可以将文本文件保存到 Android 设备。我最近使用 Kivy 制作了一个游戏,我就是这样做的,以纯文本形式存储高分。

【讨论】:

这可以用图片来完成吗?(例如游戏背景的图片) @Paarthri 我不确定,但我不这么认为。如果您将图像包含在 kivy 中,作为应用程序或游戏的一部分,那么无论如何我都认为尝试以这种方式存储它们没有意义……但是如果没有任何上下文,就很难回答这个问题。 在 Android 上,我们是否需要任何类型的权限才能将此泡菜保存到 SD 或内部存储器?我确实做了一个实现,将对象保存到“on_stop”方法上的文件中,并应该在“on_start”方法上恢复它。它在我的 PC 上运行良好,但是当我在 Android 上部署和运行它时,它总是以默认的“无保存数据”情况开始,我不知道应该保存泡菜文件的位置以检查它是否真的创建.有什么建议吗?? @Claudio 我已经有一段时间没有这样做了。但我相信你总是需要一定的权限才能在 Android 上做事,当然修改 SD 卡也需要权限。我会专门搜索该权限,并确保您考虑到您所针对的 Android 版本,因为有时我认为权限会发生变化。您还需要弄清楚在 Android 设备上实际可以保存到的位置.. 找出在 Android 上保存文件的正常位置应该不难。我不记得找到这些东西太难了。希望对您有所帮助。 @Totem,当然,一旦我发现我会在这里更新信息!

以上是关于在 Android 上的 kivy 中保存应用数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Kivy 应用程序上保存当前 URL

如何停止通过 buildozer 制作的 android 上的 kivy 应用程序崩溃。这些在计算机上运行良好

带有kivy的android上的后退按钮功能

代码运行良好,但不是 kivy 上的应用程序

保存 Kivy 应用程序的登录屏幕用户名和密码

第一个 Python/Kivy/KivyMD 应用程序。无法将文本字段中的数据保存到变量 + 数据绑定到 MDList