我是Android应用程序开发的新手,也是stackoverflow的新成员.我目前正在尝试设计配方应用程序.我已经决定了应用程序的功能和它将涵盖的范围.就覆盖来自世界各地的所有食谱而言,范围对我来说非常广阔.我将在这个过程中处理大量数据.
我目前正在尝试在我的应用程序中找到一种处理数据的好方法.到目前为止,根据我在不同论坛中的介绍,我相信在数据库选择方面我有两个选择:1)SQLite 2)远程服务器上的数据库(MySql/Postgre)
以下是我们在两者之间做出决定时的一些想法:
1)SQLite:这可能是一个不错的选择,但由于需要访问文件系统,因此速度很慢.我可以通过在AsyncTask中执行DB数据获取任务来消除缓慢.但随后可能会限制不同手机上的存储空间.此外,我相信与使用远程数据库相比,使用SQLite会更容易.
2)远程数据库:我在这里看到的问题是多个数据库请求同时出现的速度很慢.我可以在某种程度上使用线程来排队多个请求并逐个处理它们吗?有没有一种有效的方法来做到这一点.
另外,一旦我从上面的数据库中取出数据,我的数据格式就会有另外一个问题.有没有办法可以保留我的数据格式?
如果有人能够就上述情况分享他们的知识渊博和专家意见,我将不胜感激.这也不是我的功课,我不是在寻找任何现成的代码解决方案.我只是在寻找能够帮助我清除思路并帮助我做出决定的提示/建议.我一直在寻找这个,但是找不到具体的信息.我希望我能从经验丰富的人那里得到一些好的建议.
感谢您阅读这篇长篇文章.
zap*_*apl 11
两种方法相结合怎么样?
一个本地SQLite数据库,它具有最近最少使用的receipes,因此您不需要一直使用网络.网络比访问文件系统慢.
通过某些HTTP接口访问某些远程数据库,您可以在其中读取/写入整个数据库.如果您希望用户能够为其他用户添加receipes,那么无论如何都需要外部数据库.
SQLite:这可能是一个不错的选择,但由于需要访问文件系统,因此速度很慢.
访问本地数据库非常快,5ms左右,如果它只是一个小型数据库上的简单只读查询.
但随后可能会限制不同手机上的存储空间
取决于您对庞大数据库的定义.如果它只有2MB就可以存储大量纯文本的配件.
此外,我相信与使用远程数据库相比,使用SQLite会更容易.
是的,Android有一个很好的内置SQLite API,但没有远程数据库API.而且您不需要设置数据库服务器和接口.
我在这里可以看到的问题是多个数据库请求同时出现的速度很慢.
一个体面的数据库服务器可以处理数千个请求 取决于您的服务器硬件和软件.https://dba.stackexchange.com/应该有更多信息.所需的性能取决于您拥有/期望的用户数量.
我建议为您的数据库建立一个简单的REST接口,因为它非常轻量级,但不会将您的数据库直接暴露给Web.有很多关于创建这种数据库接口的教程和书籍.甚至还有托管数据库服务,如nextDb,可以为您完成大部分工作.
有没有办法可以保留我的数据格式?
您可以将HTML格式的数据存储在数据库中并将其显示在a WebView
或TextView
(via Html#fromHtml()
)中 - 两者都可以显示格式化文本.
数据库不关心您存储的文本类型,通过互联网传输您可能需要对文本进行编码,因此它不会干扰传输格式(XML,JSON,...).
归档时间: |
|
查看次数: |
25334 次 |
最近记录: |