Android 在Kivy移动应用程序中使用Redis?

Android 在Kivy移动应用程序中使用Redis?,android,python-2.7,redis,kivy,Android,Python 2.7,Redis,Kivy,我已经安装了redis和redis py,我的代码在桌面上运行得非常好,因为我已经安装并运行了redis服务器,但是我知道如何在我的手机上移植相同的代码并通过Kivy launcher进行测试吗?在通过buildozer创建.apk时,我还需要做些什么 from kivy.storage.redisstore import RedisStore params = dict(host='localhost', port=6379, db=14) store = RedisStore(params)

我已经安装了redis和redis py,我的代码在桌面上运行得非常好,因为我已经安装并运行了redis服务器,但是我知道如何在我的手机上移植相同的代码并通过Kivy launcher进行测试吗?在通过buildozer创建.apk时,我还需要做些什么

from kivy.storage.redisstore import RedisStore
params = dict(host='localhost', port=6379, db=14)
store = RedisStore(params)

我得到了“ImportError:没有名为redis的模块”

关于这个问题有一些一般性的想法:

我不知道您是否在使用Java、Python或Jiton,但这可能会有所帮助

您可能会以某种方式安装redis库——因为jvm是虚拟机,所以我看不出有任何问题,即使体系结构不是x86而是Arm

如果这个库是python,那么它就更简单了——大多数用于python的redis库都是基于“telnet”的,并且没有ay C代码


然而,还有另一个更重要的问题——要使用redis,服务器必须具有开放的、非防火墙的redis端口

此外,redis密码必须位于应用程序内部。如果是Java或Jiton,则反编译并查看密码并不困难。在python的情况下——同样要简单得多——这些应该是明文文件

我们对Java+Android也有类似的问题,不是redis,而是SMS帐户——我们的dit是,我们要求每个用户注册自己的帐户,并在应用程序中填写。所以如果你反编译,你什么也看不到

更新

为了让应用程序连接到Redis,您需要让Redis服务器在某处运行

如果您的应用程序用于internet,则Redis服务器必须在internet上可见

您可能会在没有SSL的情况下连接到服务器。这意味着Redis密码将以明文形式传输,并且“坏人”可以看到,然后他们将能够连接到服务器并操作/删除数据

另一方面,即使存在SSL,“坏”应用程序客户也可以尝试反编译应用程序并找到密码。然后这个“坏”客户就可以操纵数据了

您还需要考虑如果出于某种原因需要更改Redis密码会发生什么情况-如果密码是应用程序的一部分,则需要更新所有用户


您可能希望使用终端客户用户/密码而不是普通的Redis来实现HTTP API。

我在应用程序中使用的Python+kivy我相信注释仍然是相关的,只需忽略java部分“服务器必须具有开放的、非防火墙的Redis端口”???在运行之前,请您深入了解或指向如何在android上运行服务器redis server以及如何安装它的链接,我会这样做,但在此之前请告诉我-您是否正在开发android应用程序?如果是这样的话,谁将是用户信任的人,例如你,你的“组织”或任何人,比如谷歌play用户。我正在开发Android应用程序及其类似的POC项目,但最终它将在组织中使用